wangdongdexin 发表于 2013-11-22 11:34

手工打造穿山甲脱壳教程适合初学者

本帖最后由 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

吾爱扣扣 发表于 2013-11-22 17:38

表示在看雪看见你了。。

fandy 发表于 2013-11-22 12:29

wangdongdexin 发表于 2013-11-22 11:35

本帖最后由 wangdongdexin 于 2013-11-22 11:36 编辑

顺利找到OEP了 但是脱壳却出现了问题 程序一直运行不起来 希望高手们指点

likix 发表于 2013-11-22 12:58

看起来好牛逼的样子

吾爱师姐! 发表于 2013-11-22 12:52

帮你顶起来,等大牛

liuzixue 发表于 2013-11-22 13:02

我还是个初学者,只能帮你顶起

5203366 发表于 2013-11-22 13:59

本帖最后由 5203366 于 2013-11-22 14:23 编辑

wangdongdexin 发表于 2013-11-22 11:35 static/image/common/back.gif
顺利找到OEP了 但是脱壳却出现了问题 程序一直运行不起来 希望高手们指点
PEID查壳,那版本有点低哟,你再用FI查下看看呢


wangdongdexin 发表于 2013-11-22 14:25

5203366 发表于 2013-11-22 13:59 static/image/common/back.gif
PEID查壳,那版本有点低哟,你再用FI查下看看呢


wangdongdexin 发表于 2013-11-22 19:15

是呀在看雪露个脸
页: [1] 2
查看完整版本: 手工打造穿山甲脱壳教程适合初学者