动画介绍:脱壳方法:1、手动 我们先来运行一下原程序,看看效果。 查下壳 什么都没找到 [Overlay] * 是未知壳而且有附加数据。 这个是我处理好后的程序 Microsoft Visual C++ 6.0 [Overlay]
好,我正式开始脱壳 入口点: 00427EF0 > 60 pushad 00427EF1 BE 00A04100 mov esi, 0041A000 00427EF6 8DBE 0070FEFF lea edi, dword ptr [esi+FFFE7000] 00427EFC 57 push edi 00427EFD 83CD FF or ebp, FFFFFFFF 00427F00 89E5 mov ebp, esp 00427F02 8D9C24 80C1FFFF lea ebx, dword ptr [esp-3E80]
我们单步走,可以用ESP定律 继续单步 这是有个跳。我们不让它实现 马上就到OEP了。 OEP: 0040389F 55 push ebp //vc++的程序 004038A0 8BEC mov ebp, esp 004038A2 6A FF push -1 004038A4 68 F8724000 push 004072F8 004038A9 68 04554000 push 00405504 004038AE 64:A1 00000000 mov eax, dword ptr fs:[0] 004038B4 50 push eax 004038B5 64:8925 0000000>mov dword ptr fs:[0], esp 004038BC 83EC 58 sub esp, 58 004038BF 53 push ebx 004038C0 56 push esi
脱壳。用插件就行,用LORDPE和IMportrec效果也是一样的。 Microsoft Visual C++ 6.0 Microsoft Visual C++ 6.0 [Overlay] 相比一下就发现,少了[Overlay]。显然 是附加数据处理。
2、插件 我们用插件来脱一下,用PEID的插件
附加数据处理:
我们运行一下,刚脱好的程序。 invalid data in the file! 比较脱壳前后文件的大小,通过对比发现,小了太多。看下我修复好的程序的大小
现在来处理附加数据。用到工具 HWorks 打开没有脱壳的文件。先找下 附加数据的位置为 R.偏移+R.大小即 0000F000+00000C000=0000FC00 CTRL+G 输入FC00 然后按下SHFIT 再打开脱壳后的文件 好了,成功了。 |