吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 15032|回复: 15
收起左侧

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

  [复制链接]
wangdongdexin 发表于 2013-11-22 11:34
本帖最后由 wangdongdexin 于 2013-11-22 13:07 编辑

手工打造穿山甲脱壳适合初学者 闲话不多说!!
IDA,">目标程序:  gua8.0.0423.545.2
下载页面:  http://www.qqhxwg.com
软件大小:  25 MB
软件类别:  国产软件 / 收费 /游戏外挂
应用平台:  Windows2000/XP/2000

软件介绍:华夏猎手
  • 为避免杀毒软件误杀,在下载前最好先将杀软关闭,下载后将软件解压缩,要记住软件所在的目录,然后将gua.exe和gua.dll放入杀软的白名单;
  • 使用时先打开游戏,在出现人物选择时再开外挂,即gua.exe,如果要开多个游戏就再这样执行一次操作,开一个游戏,开一个外挂;
  • 猎手是绑定游戏帐号的,也就是只认游戏帐号,同一帐号在不同区都可以使用猎手;
  • 人物进入游戏后会出现以下资料,游戏界面上也会有状态显示


【作者声明】:只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教

一、先用PEID查壳

查壳.JPG
很清楚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:[0]
0073238E  |.  50            push eax
0073238F  |.  64:8925 00000>mov dword ptr fs:[0],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 [local.6],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:[0x757C44],edx          ;  ntdll.KiFastSystemCallRet
007323AF  |.  8BC8          mov ecx,eax
007323B1  |.  81E1 FF000000 and ecx,0xFF
007323B7  |.  890D 407C7500 mov dword ptr ds:[0x757C40],ecx

下断:HE GetModuleHandleA+5
Shift+F9,注意观察中断时的堆栈

7C80B746    837D 08 00      cmp dword ptr ss:[ebp+0x8],0x0    //Shift+F9,断在这里
7C80B74A    74 18           je short kernel32.7C80B764
7C80B74C    FF75 08         push dword ptr ss:[ebp+0x8]
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:[eax+0x4]
7C80B75B    E8 7D2D0000     call kernel32.GetModuleHandleW
7C80B760    5D              pop ebp                                  ; 0012FFC0
7C80B761    C2 0400         retn 0x4
7C80B764    64:A1 18000000  mov eax,dword ptr fs:[0x18]
7C80B76A    8B40 30         mov eax,dword ptr ds:[eax+0x30]
7C80B76D    8B40 08         mov eax,dword ptr ds:[eax+0x8]
7C80B770  ^ EB EE           jmp short kernel32.7C80B760
7C80B772    90              nop


0012C27C  /0012C508               //N次F9后堆栈显示(我的是6次以后到了这里)
0012C280  |00F05331  返回到 00F05331 来自 kernel32.GetModuleHandleA
0012C284  |0012C3BC  ASCII "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:[0xF250B8]             ; kernel32.LoadLibraryA
00F05351    8B0D 60D8F200   mov ecx,dword ptr ds:[0xF2D860]
00F05357    89040E          mov dword ptr ds:[esi+ecx],eax           ; kernel32.7C800000
00F0535A    A1 60D8F200     mov eax,dword ptr ds:[0xF2D860]
00F0535F    393C06          cmp dword ptr ds:[esi+eax],edi
00F05362    0F84 AD000000   je 00F05415                    //这就是我们要找的Magic Jump跳了
00F05368    33C9            xor ecx,ecx                              ; kernel32.7C80E6CB
00F0536A    8B03            mov eax,dword ptr ds:[ebx]
00F0536C    3938            cmp dword ptr ds:[eax],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   00757718  Gua.00757718

按ALT+F9返回 来到:
00F1CF2D    A3 F018F300     mov dword ptr ds:[0xF318F0],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:[0xF318E0]
00F1CF4B    8B48 74         mov ecx,dword ptr ds:[eax+0x74]
00F1CF4E    3348 5C         xor ecx,dword ptr ds:[eax+0x5C]
00F1CF51    3308            xor ecx,dword ptr ds:[eax]
00F1CF53    03F9            add edi,ecx
00F1CF55    8B0E            mov ecx,dword ptr ds:[esi]
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:[edx]
004018BD   |43              inc ebx
004018BE   |2B2B            sub ebp,dword ptr ds:[ebx]
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:[0x63008B]
004018CF    C1E0 02         shl eax,0x2
004018D2    A3 8F006300     mov dword ptr ds:[0x63008F],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

132140ag2sf4xg21xnzhr5.gif

免费评分

参与人数 1热心值 +1 收起 理由
a175676 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

吾爱扣扣 发表于 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
顺利找到OEP了 但是脱壳却出现了问题 程序一直运行不起来 希望高手们指点

PEID查壳,那版本有点低哟,你再用FI查下看看呢


 楼主| wangdongdexin 发表于 2013-11-22 14:25
5203366 发表于 2013-11-22 13:59
PEID查壳,那版本有点低哟,你再用FI查下看看呢

查壳.JPG
 楼主| wangdongdexin 发表于 2013-11-22 19:15
是呀在看雪露个脸
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-17 15:46

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表