联系深圳网站制作公司,漳州开发区人事人才网,wordpress 4.9中文版,济南做网站的高端品牌第十六章 脱壳技术 16.1 基础知识
壳的加载过程#xff1a;保存入口参数、获取壳本身需要使用的API地址、解密原程序各个区块的数据、IAT的初始化、重定位项的处理、HOOK API、跳转到程序原入口点
手动脱壳步骤#xff1a;查找真正的入口点、抓取内存映像文件、重建PE文件保存入口参数、获取壳本身需要使用的API地址、解密原程序各个区块的数据、IAT的初始化、重定位项的处理、HOOK API、跳转到程序原入口点
手动脱壳步骤查找真正的入口点、抓取内存映像文件、重建PE文件修复OEP、IAT的RVA和Size 16.2 寻找OEP 根据跨段指令寻找OEP单步跟踪
用内存访问断点寻找OEP两次断点
根据栈平衡原理寻找OEPESP定律
根据编译语言特点寻找OEP常见函数入口代码特征 16.3 抓取内存映像
使用OllyDump插件
反Dump技术纠正SizeOfImage、修改内存属性 16.4 重建输入表
确定IAT的地址和大小 用ImportREC重建输入表 16.5 DLL文件脱壳 16.6 附加数据
在某些特殊的 PE 文件中在各个区块的正式数据之后还有一些数据这些数据不属于任何区块。因为PE文件被映射到内存中时是按区块映射的所以这些数据是不能被映射到内存中的。这些额外的数据称为附加数据(overlay)。以认为附加数据的起点是最后一个区块的末尾终点是文件的末尾。 16.7 PE文件的优化
优化输入表存放位置、资源的重建、装配文件、修正PE文件头 16.8 压缩壳
UPX注意UPXPR、UPX-Scrambler软件的保护 16.9 加密壳
ASProtect已经有脱壳机了
“stolen bytes”是指外壳将程序的部分代码变形并搬到外壳段中 16.10 静态脱壳