编程
文章平均质量分 56
Mikasys
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Msf木马偷其他程序的Token 实现提权
#include <windows.h> #include <TlHelp32.h> #include <iostream> DWORD getParentProcessID() { //返回explorer.exe的pid HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); PROCESSENTRY32 process = { 0 }; process.dwSize = sizeo原创 2021-10-20 13:38:50 · 2287 阅读 · 0 评论 -
C++ 底层分析 7.malloc free new delete
1.malloc和free底层调用 malloc->_nh_malloc_dbg->_heap_alloc_dbg->_heap_alloc_base->HeapAlloc free->_free_dbg->_free_base->HeapFree原创 2021-04-27 21:46:01 · 217 阅读 · 0 评论 -
C++ 底层分析 6.模板、引用、友元、运算符重载
1.模板 #include <iostream> using namespace std; template<class T> void Swap(T &a,T &b) { a = a + b; b = a - b; a = a - b; } int main() { double a = 1.5456456456,b = 2.5456546546; printf("%lf %lf\n",a,b); Swap(a,b); printf("%lf %原创 2021-04-27 21:45:27 · 356 阅读 · 0 评论 -
C++ 底层分析 5.动态绑定、多态
1.多继承无函数覆盖 struct Base1 { public: virtual void Fn_1() { printf("Base1:Fn_1...\n"); } virtual void Fn_2() { printf("Base1:Fn_2...\n"); } }; struc原创 2021-04-27 21:44:45 · 238 阅读 · 0 评论 -
C++ 底层分析 4.虚函数表
kd> u IopCreateFile l200 nt!IopCreateFile: 80576c2c 6a3c push 3Ch 80576c2e 6898a14d80 push offset nt!GUID_DOCK_INTERFACE+0x54 (804da198) 80576c33 e8485ffcff call nt!_SEH_prolog (8053cb80) 80576c38 64a124010000 mov ea原创 2021-04-27 21:44:20 · 215 阅读 · 0 评论 -
C++ 堆栈小问题
下面两个程序最终i的值不一样,但是反汇编居然一样,太诡异了 #include <iostream> using namespace std; int main() { int i = 10; &i; if(i == 10) { int i = 3; //最终i=10 //i = 3 //最终i = 3 } return 0; vs2010使得上述代码的反汇编完全一样,让人琢磨不透,最终还是用vc6发现了端倪 结论:以这原创 2021-04-27 21:43:44 · 189 阅读 · 0 评论 -
C++ 底层分析 3.权限控制 Class
1.将定义与实现分开 将定义与实现分离,代码会有更好的可读性,但不是必须的 xxx.h 只是一个文件,可以是任何的后缀名,如果你愿意,可以叫xxx.exe #include 的作用只是把里面的内容复制过来 仅此而已. 如:#include "abc.exe xxx.h 与 xxx.cpp并不要求一定同名 2.public private的使用 public:这个成员哪里都可以用,不用担心被修改,所以,一旦发布成public的成员,是不能够改名字的. private:这个成员只用于内部使用,不要在其他的地原创 2021-04-27 21:43:07 · 381 阅读 · 0 评论 -
C++ 底层分析 2.构造-析构,继承
析构函数(初始) 可以没有,有了必须按照规则用 作用:初始化对象用的,创造对象的时候调用 特点:3个 重载:函数名字一样 参数个数或者类型不一样 析构函数(清理)原创 2021-04-27 21:42:30 · 375 阅读 · 0 评论 -
C++ 底层分析 1.this 指针
1.结构体参数传递:相当于复制一份,浪费空间 struct Base { int x; int y; int z; }; void function(Base b){} int main(int argc, char* argv[]) { Base base; function(base); return 0; } 2.结构体指针参数传递:只传结构体首地址,节省空间 struct Base { int x; int y; }; int Max(Base* pb) { if (pb-&g原创 2021-04-27 21:42:05 · 331 阅读 · 0 评论
分享