脱MoleBox V2.X+手动查找IAT
在unpack的『 脱壳申请 』区看见有人求脱MoleBox 的壳,我看了一下,还能脱,跟大家分享一下http://www.unpack.cn/viewthread.php?tid=39091&extra=page%3D1
1脱壳
OD载入,入口如下:
00B34BD3 > B8 00000000 mov eax,0
00B34BD8 60 pushad
00B34BD9 E8 4F000000 call LUNAClie.00B34C2D
F8单步到call LUNAClie.00B34C2D后在命令窗口 hr ESP下一个硬件断点
先不要运行,在下一 BP VirtualProtect断点
然后Shift+F9运行,看堆栈,出现"KERNEL32.dll"(Shift+F9 8次)
取消断点,Alt+F9返回
来到
00B3C66C 85C0 test eax,eax
00B3C66E 75 0A jnz short LUNAClie.00B3C67A
Ctrl+B,在HEX+02 右边的那个框里面输入8901(注意整个段块前面的复选框不要选上)
搜索到:
00B3C682 8901 mov dword ptr ds:,eax
把这句NOP掉
Shift+F9 运行(此时的硬件断点还在),来到
00B347B1 58 pop eax ; kernel32.7C816FE7
00B347B2 58 pop eax
00B347B3 FFD0 call eax
00B347B5 E8 F5CB0000 call LUNAClie.00B413AF
在call eax 处F7进入
005B2FA0 /E9 AB8C3000 jmp LUNAClie.008BBC50
跳向OEP
008BBC50 55 push ebp
008BBC51 8BEC mov ebp,esp
008BBC53 6A FF push -1
008BBC55 68 783D9200 push LUNAClie.00923D78
008BBC5A 68 E0775A00 push LUNAClie.005A77E0
用LoadPe脱壳
2手动查找IAT
在008BBC99 FF15 40F8B200 call dword ptr ds: ; kernel32.GetVersionExA
处右键->数据窗口中跟随->内存地址
此时保证数据窗口的显示方式是地址形式(如果不是,右键->长型->地址)
往上翻,直到:
00B2F5E4 00000000
00B2F5E8 6D18D926 DINPUT8.DirectInput8Create
再往上就没有系统API了,记录数据1:00B2F5E4
再往下翻,直到:
00B2FAC4 769B2A54 ole32.CoInitialize
00B2FAC8 00000000
再往下就没有系统API了,记录数据2:00B2FAC8
我们的RVA=00B2F5E4-00400000=72F5E4
IAT大小=00B2FAC8-00B2F5E4=4E4
OEP=4BBC50
用importRec修复,指针全部有效 我就喜欢原创的教程,前来支持 顶你一个呵呵/:014 支持下,大侠啊,牛
页:
[1]