![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
逆向学习
v寰宇
这个作者很懒,什么都没留下…
展开
-
PE结构-合并节(附实例代码)
合并节: 1、拉伸到内存 2、将第一个节的内存大小、文件大小改成一样 Max = SizeOfRawData>VirtualSize?SizeOfRawData:VirtualSize SizeOfRawData = VirtualSize = 最后一个节的VirtualAddress + Max - SizeOfHeaders内存对齐后的大小 3、将第一个节的属性改为包含所有节的属性 (重点) 4、修改节的数量为1...原创 2020-10-24 11:34:02 · 444 阅读 · 0 评论 -
PE结构-扩大节区(附实例代码)
1、拉伸到内存2、分配一块新的空间:SizeOfImage + Ex3、将最后一个节的SizeOfRawData和VirtualSize改成NSizeOfRawData = VirtualSize = NN = (SizeOfRawData或者VirtualSize 内存对齐后的值) + Ex4、修改SizeOfImage大小SizeOfImage = SizeOfImage + Ex5.添加节表属性...原创 2020-10-24 11:31:59 · 399 阅读 · 0 评论 -
__declspec(dllimport)与__declspec(dllexport)及__stdcall 作用总结
调用协议常用场合__stdcall:Windows API默认的函数调用协议。__cdecl:C/C++默认的函数调用协议。__fastcall:适用于对性能要求较高的场合。函数参数入栈方式__stdcall:函数参数由右向左入栈。__cdecl:函数参数由右向左入栈。__fastcall:从左开始不大于4字节的参数放入CPU的ECX和EDX寄存器,其余参数从右向左入栈。问题一:__fastcall在寄存器中放入不大于4字节的参数,故性能较高,适用于需要高性能的场合。栈内数据清除方式_.原创 2020-10-09 10:51:51 · 2848 阅读 · 3 评论 -
PE结构-添加节表和节(附实例代码)
文章目录预备知识添加节表和节的步骤说明:手工添加步骤1.检查是否有足够空间预备知识文件结构示意图:添加节表和节的步骤说明:1、判断是否有足够的空间,可以添加一个节表.判断条件:SizeOfHeader - (DOS + 垃圾数据 + PE标记 + 标准PE头 + 可选PE头 + 已存在节表) >= 2个节表的大小 (如果只有一个节表以上的空间也可以加不会报错,但是会有安全隐患)2、需要修改的数据添加一个新的节(可以copy一份)在新增节后面 填充一个节大小的000原创 2020-07-30 12:16:25 · 1192 阅读 · 0 评论 -
PE结构-空白区手动添加任意代码(附实例代码)
PE之添加任意代码到空白区预备知识1.查找本机MessageBoxA地址1.打开OD调试工具拖入要添加的exe程序。2.在命令中输入 : (输入后按下回车键)3.点击断点页面即可看到MessageBoxA 的地址开始添加代码1.查看要添加的文件空白区大小是否足够2.打开16进制编辑器,载入要修改的EXE。找到文件中的大小(对齐后的长度的位置+ 文件中偏移的位置) (1C000 + 1000 = 1d000)3.在1d000位置上面找任意一段空白区添加上代码 (最好是添加到 空白区开始的位置,便于以后再添加更原创 2020-07-12 14:32:27 · 1581 阅读 · 1 评论