手工打造穿山甲脱壳教程适合初学者
本帖最后由 wangdongdexin 于 2013-11-22 13:07 编辑手工打造穿山甲脱壳适合初学者 闲话不多说!!
目标程序:gua8.0.0423.545.2
下载页面:http://www.qqhxwg.com
软件大小:25 MB
软件类别:国产软件 / 收费 /游戏外挂
应用平台:Windows2000/XP/2000
软件介绍:华夏猎手
[*]为避免杀毒软件误杀,在下载前最好先将杀软关闭,下载后将软件解压缩,要记住软件所在的目录,然后将gua.exe和gua.dll放入杀软的白名单;
[*]使用时先打开游戏,在出现人物选择时再开外挂,即gua.exe,如果要开多个游戏就再这样执行一次操作,开一个游戏,开一个外挂;
[*]猎手是绑定游戏帐号的,也就是只认游戏帐号,同一帐号在不同区都可以使用猎手;
[*]人物进入游戏后会出现以下资料,游戏界面上也会有状态显示
【作者声明】:只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教
一、先用PEID查壳
很清楚Armadillo 1.xx - 2.xx -> Silicon Realms Toolworks
二、开始脱壳
首先用OD载入设置OllyDBG忽略所有异常选项。用IsDebug插件去掉OllyDBG的调试器标志。
00732379 >/$55 push ebp //载入OllyDBG后暂停在这
0073237A|.8BEC mov ebp,esp
0073237C|.6A FF push -0x1
0073237E|.68 78727500 push Gua.00757278
00732383|.68 601D7300 push Gua.00731D60 ;SE 处理程序安装
00732388|.64:A1 0000000>mov eax,dword ptr fs:
0073238E|.50 push eax
0073238F|.64:8925 00000>mov dword ptr fs:,esp
00732396|.83EC 58 sub esp,0x58
00732399|.53 push ebx
0073239A|.56 push esi
0073239B|.57 push edi ;ntdll.7C930228
0073239C|.8965 E8 mov ,esp
0073239F|.FF15 4C417500 call dword ptr ds:[<&KERNEL32.GetVersion>;kernel32.GetVersion
007323A5|.33D2 xor edx,edx ;ntdll.KiFastSystemCallRet
007323A7|.8AD4 mov dl,ah
007323A9|.8915 447C7500 mov dword ptr ds:,edx ;ntdll.KiFastSystemCallRet
007323AF|.8BC8 mov ecx,eax
007323B1|.81E1 FF000000 and ecx,0xFF
007323B7|.890D 407C7500 mov dword ptr ds:,ecx
下断:HE GetModuleHandleA+5
Shift+F9,注意观察中断时的堆栈
7C80B746 837D 08 00 cmp dword ptr ss:,0x0 //Shift+F9,断在这里
7C80B74A 74 18 je short kernel32.7C80B764
7C80B74C FF75 08 push dword ptr ss:
7C80B74F E8 C0290000 call kernel32.7C80E114
7C80B754 85C0 test eax,eax
7C80B756 74 08 je short kernel32.7C80B760
7C80B758 FF70 04 push dword ptr ds:
7C80B75B E8 7D2D0000 call kernel32.GetModuleHandleW
7C80B760 5D pop ebp ; 0012FFC0
7C80B761 C2 0400 retn 0x4
7C80B764 64:A1 18000000mov eax,dword ptr fs:
7C80B76A 8B40 30 mov eax,dword ptr ds:
7C80B76D 8B40 08 mov eax,dword ptr ds:
7C80B770^ EB EE jmp short kernel32.7C80B760
7C80B772 90 nop
0012C27C/0012C508 //N次F9后堆栈显示(我的是6次以后到了这里)
0012C280|00F05331返回到 00F05331 来自 kernel32.GetModuleHandleA
0012C284|0012C3BCASCII "kernel32.dll"
0012C288|00000002
0012C28C|00F91A28
0012C290|00000000
0012C294|80000000
是时候该ALT+F9返回了
F2取消断点 ALT+F9返回 程序到这来:
00F0534A 50 push eax ; kernel32.7C800000
00F0534B FF15 B850F200 call dword ptr ds: ; kernel32.LoadLibraryA
00F05351 8B0D 60D8F200 mov ecx,dword ptr ds:
00F05357 89040E mov dword ptr ds:,eax ; kernel32.7C800000
00F0535A A1 60D8F200 mov eax,dword ptr ds:
00F0535F 393C06 cmp dword ptr ds:,edi
00F05362 0F84 AD000000 je 00F05415 //这就是我们要找的Magic Jump跳了
00F05368 33C9 xor ecx,ecx ; kernel32.7C80E6CB
00F0536A 8B03 mov eax,dword ptr ds:
00F0536C 3938 cmp dword ptr ds:,edi
00F0536E 74 06 je short 00F05376
00F05370 41 inc ecx ; kernel32.7C80E6CB
00F05371 83C0 0C add eax,0xC
00F05374^ EB F6 jmp short 00F0536C
00F05362 0F84 AD000000 je 00F05415把JE改成JMP
下断:BP GetCurrentThreadId
也可以使用Second段内存断点大法走至OEP啦。
Shift+F9 运行 继续N次(本人的3次)后堆栈显示:
0012F5A8 00F1CF2D/CALL 到 GetCurrentThreadId 来自 00F1CF27
0012F5AC 0012FF2C
0012F5B0 00000000
0012F5B4 7FFD4000
0012F5B8 007294E9返回到 Gua.007294E9 来自 00F1CEBA
0012F5BC 00757718Gua.00757718
按ALT+F9返回 来到:
00F1CF2D A3 F018F300 mov dword ptr ds:,eax
00F1CF32 E8 2487FEFF call 00F0565B
00F1CF37 6A 00 push 0x0
00F1CF39 E8 4BD9FEFF call 00F0A889
00F1CF3E 59 pop ecx ; 0012FF2C
00F1CF3F E8 7D39FFFF call 00F108C1
00F1CF44 8BF8 mov edi,eax
00F1CF46 A1 E018F300 mov eax,dword ptr ds:
00F1CF4B 8B48 74 mov ecx,dword ptr ds:
00F1CF4E 3348 5C xor ecx,dword ptr ds:
00F1CF51 3308 xor ecx,dword ptr ds:
00F1CF53 03F9 add edi,ecx
00F1CF55 8B0E mov ecx,dword ptr ds:
00F1CF57 85C9 test ecx,ecx
00F1CF59 75 2E jnz short 00F1CF89
接着我们就F8慢慢跟踪吧!!!!
当看到:
0F1CFAC FFD7 call edi //这里按F7进入 哈哈就是OEP了 接下来就可以脱壳了(*^__^*) 嘻嘻……
00F1CFAE 8BD8 mov ebx,eax
004018B8 /EB 10 jmp short Gua.004018CA //传说中的OEP了 (哈哈终于找到你了,心中暗喜…………)
004018BA |66:623A bound di,dword ptr ds:
004018BD |43 inc ebx
004018BE |2B2B sub ebp,dword ptr ds:
004018C0 |48 dec eax ; Gua.00754258
004018C1 |4F dec edi ; Gua.004018B8
004018C2 |4F dec edi ; Gua.004018B8
004018C3 |4B dec ebx
004018C4 |90 nop
004018C5-|E9 98006300 jmp 00A31962
004018CA \A1 8B006300 mov eax,dword ptr ds:
004018CF C1E0 02 shl eax,0x2
004018D2 A3 8F006300 mov dword ptr ds:,eax ; Gua.00754258
004018D7 52 push edx
004018D8 6A 00 push 0x0
004018DA E8 BDCB2200 call Gua.0062E49C
004018DF 8BD0 mov edx,eax ; Gua.00754258
表示在看雪看见你了。。 本帖最后由 wangdongdexin 于 2013-11-22 11:36 编辑
顺利找到OEP了 但是脱壳却出现了问题 程序一直运行不起来 希望高手们指点 看起来好牛逼的样子 帮你顶起来,等大牛 我还是个初学者,只能帮你顶起 本帖最后由 5203366 于 2013-11-22 14:23 编辑
wangdongdexin 发表于 2013-11-22 11:35 static/image/common/back.gif
顺利找到OEP了 但是脱壳却出现了问题 程序一直运行不起来 希望高手们指点
PEID查壳,那版本有点低哟,你再用FI查下看看呢
5203366 发表于 2013-11-22 13:59 static/image/common/back.gif
PEID查壳,那版本有点低哟,你再用FI查下看看呢
是呀在看雪露个脸
页:
[1]
2