【文章标题】: 简单手脱未知壳 - 菜鸟文章,大侠跳过
【文章作者】: A-new
【作者主页】: http://my.comvan.com
【作者QQ号】: 83540302
【软件名称】: Poison Ivy 2.1.2.exe
【软件大小】: 1.69M
【下载地址】: 自己搜索下载
【编写语言】: Borland Delphi 6.0 - 7.0
【使用工具】: OllyICE,LordPE,Import REC
【操作平台】: XP
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
1.OD载入,停留在 005B7060
005B7060 > 60 pushad
005B7061 E8 00000000 call Poison_I.005B7066
005B7066 5D pop ebp
005B7067 81ED 725B4000 sub ebp, Poison_I.00405B72
005B706D 64:A1 30000000 mov eax, fs:[30]
005B7073 0FB640 02 movzx eax, byte ptr [eax+2]
005B7077 0AC0 or al, al
005B7079 74 04 je short Poison_I.005B707F
005B707B 33C0 xor eax, eax
005B707D 8700 xchg [eax], eax
然后一直F8,注意不要回调,直到 005B764C
005B7636 8339 00 cmp dword ptr [ecx], 0
005B7639 ^ 0F85 34FFFFFF jnz Poison_I.005B7573
005B763F 83C6 0C add esi, 0C
005B7642 837E 04 00 cmp dword ptr [esi+4], 0
005B7646 ^ 0F85 B4FEFFFF jnz Poison_I.005B7500
005B764C 33C0 xor eax, eax ----------------→这里哦
005B764E 40 inc eax
005B764F 83F8 01 cmp eax, 1
005B7652 74 02 je short Poison_I.005B7656
005B7654 61 popad
alt+M打开内存镜像,在 00401000 处F2,下断点,F9,
然后shift+F9,吼吼,看到了我们熟悉的Delphi入口点代码
00525DE8 55 push ebp ----------------→shift+F9后就到了这里,传说中的OEP
00525DE9 8BEC mov ebp, esp
00525DEB 83C4 F0 add esp, -10
00525DEE B8 A85A5200 mov eax, Poison_I.00525AA8
00525DF3 E8 800DEEFF call Poison_I.00406B78
00525DF8 A1 04AB5200 mov eax, [52AB04]
00525DFD 8B00 mov eax, [eax]
2.dump
打开LordPE选择进程,首先修正镜像大小,然后在完整转存(不修正dump下来的有问题)。
3.修复IAT
打开Import REC选择进程 → OEP处填 125DE8 → IAT AutoSearth → Get Imports → Show Invalid
→ 右键Trave Level1 (Disasm) → Fix dump
呵呵,大功告成!
--------------------------------------------------------------------------------
【经验总结】
真是菜啊,这么简单个壳,偶搞了一中午。
偶有时候脱壳修复的时候Import REC自动找不到IAT,
不会手工修复IAT,哪位大哥有手工修复IAT,给个链接,谢了 ^_^
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!
2006年12月05日 13:43:10
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)