🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
**1.单步法** OD载入,不分析代码 近CALL-F7,远CALL-F8,实现向下跳转 有回跳处,下一句代码处F4(向上跳不实现) 大的跳转,很快就会到OEP(大跨段,JMP***或JE***或RETN、CALL) **2.一步直达法** 只适合少数壳,如UPX,ASPACK CTRL+F—输入:POPAD. 回车查找—F2下断—F9运行到此处. 来到大跳转处,F8到OEP. **3.ESP定律法** F8,观察OD右上角寄存器中ESP有没有实现(红色突变) 通常在pushad等关键句之下 命令行下 DD xxxxx(当前代码ESP值)或者数据窗口跟随,回车 DD选中的下端地址,断点—硬件访问—DWORD断点,shift+F9运行,到跳转处F8 到OEP **4.内存镜像法** OD载入软件,点选项—调试选项—忽略全部—CTRL+F2重载 ALT+M打开内存镜像,找程序第一个.rsrc; F2下断—SHIFT+F9运行到断点, 再打开找到程序第一个.rsrc上面的.code处(就是00401000处), F2下断—SHIFT+F9或无异常按F9,到OEP **5.SFX自解压法(压缩壳**) 设置OD,忽略所有异常. 切换到SFX选项卡,选择“字节模式跟踪实际入口”,确定. 重载—“否”压缩代码,到OEP. **6.最后一次异常法** OD打开—点选项—调试选项—去掉所有异常勾选—CTRL+F2重载. SHIFT+F9.直到程序跑飞,记下次数M CTRL+F2重载—按SHIFT+F9(次数为M-1次) 按CTRL+G—输入堆栈右下角的SE句柄值的地址. 往下走,retn下一语句F2下断—SHIFT+F9到断点处. 去断按F8,到OEP. **Overlay处理** 用查壳工具查壳后,壳类型后边有[Overlay]这样的说明,软件就是含有附加数据 工具处理:Overlay最终版 **手工处理**: ~~~ 1.用PE分析工具打开区段界面,看最后一行数据或者name一栏中名为'ExtraDat'的 2.该数据段,没有虚拟偏移地址。也没有虚拟大小,因而不会映射到内存中。 3.用实际大小减去实际偏移得到XXXX,用16进制编辑工具打开原程序找到该地址 4.在此处右键,选块开始-拉倒最后-选块结束;复制到脱壳后文件的结尾 ~~~