上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 39 下一页

2021年2月25日

摘要: 1 #include<iostream> 2 #include<Windows.h> 3 using namespace std; 4 5 /* 6 获取可执行程序PE结构的流程 7 1 将一个可执行程序完整拷贝给一个缓冲区来处理 8 2 获取DOS头内容 9 3 利用DOS头中的lfanew偏移找 阅读全文
posted @ 2021-02-25 15:31 Sna1lGo 阅读(189) 评论(0) 推荐(0)
 
摘要: PE文件解析-PE头解析-2-可选PE头 其中的空白是为了对齐时的填充值。默认硬盘的对齐是200H,在内存中的默认对齐是1000H 可选PE头 typedef struct _IMAGE_OPTIONAL_HEADER { // // Standard fields. //​ WORD Magic; 阅读全文
posted @ 2021-02-25 15:22 Sna1lGo 阅读(720) 评论(0) 推荐(0)
 
摘要: PE文件解析-PE头解析 PE头又叫NT头,是PE文件真正的头部,DOS头只是用来为了兼容以前的DOS系统。 PE头位于DOS Stub后面,以PE00作为起始标记 类似于DOS头的MZ DOS Stub DOS Stub就是DOS头结束到PE头的开始中间的区域,基本上是垃圾区域没啥用,但是加壳的时 阅读全文
posted @ 2021-02-25 00:44 Sna1lGo 阅读(357) 评论(0) 推荐(0)
 
摘要: 1 #include<iostream> 2 #include<Windows.h> 3 using namespace std; 4 5 int main() 6 { 7 HANDLE hFile = CreateFile(L"E:\\Project_Sum\\CC++\\test\\test\\ 阅读全文
posted @ 2021-02-25 00:42 Sna1lGo 阅读(131) 评论(0) 推荐(0)

2021年2月24日

摘要: PE文件解析-DOS头解析 PE文件是指windows下的可执行文件:.exe .dll(动态链接库) .sys(驱动程序)这类文件 PE文件概览 PE文件大致分类 可以分为DOS头,PE头和区块 DOS头 DOS头对于现在的Windows已经没啥用了,只是用来标记后面的。 DOS头其实就是一个结构 阅读全文
posted @ 2021-02-24 13:25 Sna1lGo 阅读(381) 评论(1) 推荐(0)
 
摘要: 1 #include<iostream> 2 #include<Windows.h> 3 using namespace std; 4 5 int main() 6 { 7 HANDLE hFile = CreateFile(L"E:\\Project_Sum\\CC++\\test\\test\\ 阅读全文
posted @ 2021-02-24 12:49 Sna1lGo 阅读(478) 评论(0) 推荐(0)

2021年2月21日

摘要: 虚函数逆向分析 虚函数的机制 在C++中的类中有虚函数时,编译器会将该类的所有虚函数首地址保存在一张表里面,这张表被称为虚函数地址表,同时会在类中的首四个字节添加一个虚表指针来指向虚函数表的首地址。 分析构造函数可以很清楚的看到: 00F718D0 push ebp 00F718D1 mov ebp 阅读全文
posted @ 2021-02-21 15:37 Sna1lGo 阅读(281) 评论(0) 推荐(0)
 
摘要: 虚函数内存模型 纯虚函数 在有些情况下,在基类中不对虚函数给出有意义的实现,仅当做统一的变成接口来使用,它的实现留给该基类的派生类去做,这种称为纯虚函数 纯虚函数相当于一个接口模板,一个类中如果定义了纯虚函数,则这个类被称为抽象类,C++规定抽象类不能直接实例化对象 派生类继承父类的纯虚函数后,若给 阅读全文
posted @ 2021-02-21 01:48 Sna1lGo 阅读(179) 评论(0) 推荐(0)
 
摘要: C++——多态(虚函数) 多态是面向对象程序设计语言中数据抽象和继承之外的第三个基本特征。 多态的目的就是为了接口重用,也就是说不管传进来的是什么对象,函数都能通过同一个接口调用到适应各自对象的实现方法。 c++支持编译时多态(静态多态)和运行时多态(动态多态),运算符重载和函数重载就是编译时多态, 阅读全文
posted @ 2021-02-21 00:52 Sna1lGo 阅读(219) 评论(0) 推荐(0)
 
摘要: C++继承——特殊点 同名成员 当父子有相同的成员的时候,加上作用域::可以来选择访问具体的成员。 同名函数 如果子类中出现父类同名的函数,那么子类会隐藏掉父类的所有同名函数,如果想要访问的话也添加作用域就好了 同名静态成员 静态成员是在类初始化前就初始化,属于类外的东西,静态成员函数只能使用静态成 阅读全文
posted @ 2021-02-21 00:31 Sna1lGo 阅读(79) 评论(0) 推荐(0)
上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 39 下一页