![](https://img-blog.csdnimg.cn/20190918140145169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
逆向工程核心原理
文章平均质量分 69
《逆向工程工程核心原理》2014——李承远
RE大猩猩verse
毕业毕业毕业
展开
-
第十六、十七章 基址重定位
每个模块都会默认加载到PE头的Image Base的虚拟地址处,如果多个模块的默认基址相同,那么会发生冲突。假设一个模块内部的汇编指令引用了一个“绝对地址”(虚拟地址VA),这条汇编指令正确引用数据当且仅当这个模块按照Image Base加载进内存。但是由于冲突的存在,我们需要修改这条指令所引用的数据的虚拟地址,这就是基址重定位。原创 2024-06-08 14:37:27 · 193 阅读 · 0 评论 -
第十四、十五章 运行时压缩、调试UPX压缩的Notepad.exe
1.压缩后的PE文件仍然是PE文件,因为要执行解压操作就必须是可执行文件;2.解压代码到某段虚拟空间后该空间就变为新的.text段,跳到该段的入口处就能与原来的文件一样开始执行原来的代码。原创 2024-05-20 03:02:51 · 921 阅读 · 0 评论 -
第十三章 PE文件格式
PE文件是Windows下的可执行文件格式,一般来说指的是32位的可执行文件,而64位的可执行文件称为PE+或PE32+。PE文件分为以下几种:1.可执行系列(.exe, .scr);2. 库系列(.dll, .ocx, .cpl, .drv);3.驱动程序系列(.sys, .vxd);4.对象文件系列(.obj)。除了对象文件之外的其他PE文件都是可执行的,所以我们需要重点关注除了对象文件之外的其他文件,下面是PE文件的结构图。原创 2024-05-15 03:13:11 · 865 阅读 · 0 评论 -
第十章 函数调用约定
函数调用约定(Calling Convention)是对函数调用时如何传递参数的一种约定,包括1.传递参数方式;2.堆栈平衡方式。主要的函数调用约定有:1.cdecl;2.stdcall;3.fastcall传递参数方式:函数参数按照何种顺序进入栈;堆栈平衡方式:从栈帧的角度看,main函数内部完成add函数的调用后栈帧要恢复到main调用add前的状态,即恢复esp和ebp指针。原创 2024-04-28 21:57:55 · 314 阅读 · 0 评论 -
第七章 栈帧
《逆向工程核心原理》第7章原创 2024-04-27 20:05:07 · 134 阅读 · 0 评论