首页
社区
课程
招聘
[原创]某游戏客户端脱壳(双层壳yoda's 1.x+asp1.2x)+爆破
发表于: 2007-9-29 16:28 12840

[原创]某游戏客户端脱壳(双层壳yoda's 1.x+asp1.2x)+爆破

2007-9-29 16:28
12840
最近朋友在玩这个游戏,拿来以后觉得还不错,因为游戏不能双开。。。所以额。。

本人也菜,除了用工具脱基本手动就是白痴。。。对于我这样的菜鸟,只能马马虎虎脱脱小软件咯~~

不多说了,程序分析如下:

程序直接OD载入,取消分析,经PEID查看为 yoda's cryptor 1.x / modified

00647060 > pushad
00647061    call    00647066
00647066    pop     ebp
00647067    sub     ebp, 00401E0F
0064706D   mov     ecx, 957
00647072    lea     edi, dword ptr [ebp+401E57]
00647078    mov     esi, edi
0064707A   lods    byte ptr [esi]
0064707B   clc
0064707C   rol     al, 4E
0064707F   sub     al, 0DC
00647081   rol     al, 42
00647084   rol     al, 85
00647087  sub     al, cl
00647089  jmp     short 0064708C
0064708B  retn    90F9

怎么办呢,找工具去,名字叫 CDW's Dark Side Stealth Detector & Shield Destroyer 可以轻松脱掉yoda这个恶心的壳壳。。

接着重新打开我们脱好的主程序,又要求分析。。。难道是双重壳?于是又用PEiD打开了一下。。。

果然发现ASProtect 1.2X,这个嘛,继续找工具stripper v2.07 (final with HT)。脱完以后再用OD载入就正常了。。

双层壳到此脱掉~~~~~~

------------------------------------------------华丽的分割线-------------------------------------------------
OD载入最终的EXE,后

0064A000 >mov     ebx, 320
0064A005  jmp     0064A073
0064A00A  nop
0064A00B  nop
0064A00C  nop

奇怪的OEP入口点,怀疑是脱壳之后有问题,但是程序照样可以正常执行。

我们既然要双开,就肯定要查找模块名称的,程序经过我的分析,不是通过CreateMutex互斥来防止多开,而是使用了FindWindow。。。

我们在命令行里面输入 bpx FindWindowA 然后F9

程序跳到这里

004039C8   jmp     short 004039CA
004039CA   mov     esi, dword ptr [<&user32.Fi>;  USER32.FindWindowA
004039D0   push    ebx                         ; /Title => NULL
004039D1   push    005CEA78                    ; |Class = "D2MainWindow"
004039D6   call    esi                         ; \FindWindowA
004039D8   test    eax, eax
004039DA   jmp     short 004039DC
004039DC   lea     ecx, dword ptr [ebp-294]
004039E2   push    ecx                         ; /Title
004039E3   push    ebx                         ; |Class => 0
004039E4   call    esi                         ; \FindWindowA
004039E6   test    eax, eax
004039E8   jmp     short 004039F1
004039EA   mov     byte ptr [ebp-295], 1
004039F1   mov     eax, dword ptr [6262C0]

大家的程序也许和我看到的会不一样,对,因为蓝色部分是我已经修改好的代码,改成这个样子程序最后就可以双开了

这段代码的大概意思就是查找窗口如果有相同的标题或Class,就跳出返回并连续弹出了三个恶心的对话框。。。

其实,最终的主要目的还是红色的那一句,要把006262C0地址里面的数据传入eax

这样,程序终于可以双开,大功告成^^

总结:双层壳比较恶心,尝试了手脱一直不会搞,都脱了以后的话,双开自然就好搞了,无非就是那几个函数,高级一点的会QueryProcess,无所谓啦,好象CreateMutexA也可以拦截,大家多试试呗,不行就用我这个笨方法吧^^

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
不是通过CreateMutex互斥来防止多开,而是使用了FindWindow
学习这个  
收藏了  
谢谢lz
2007-9-29 16:43
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
CDW's Dark Side Stealth Detector & Shield Destroyer  是什么咚咚,没找到。。。
2007-9-29 21:28
0
雪    币: 257
活跃值: (56)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
4
2层壳都能机器脱。。。
真是少见
支持一下
2007-9-30 13:26
0
雪    币: 226
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
搂主所说的这个软件哪儿有下载,我google baidu了半天也没找到,能否给个下载地址
2007-12-14 20:55
0
雪    币: 427
活跃值: (412)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
好像是NP反外挂的游戏
2007-12-14 21:07
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
能详细的讲解下 蓝色的为什么这样改吗?

红色的数值是如何得到的?
2007-12-15 12:03
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
能不能帮偶脱一个壳啊????谢谢了!!!kedanmao@163.com
2007-12-15 20:33
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
就是某NP反外挂的游戏
2007-12-16 11:28
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
有意义的东西哈,收藏了
2007-12-16 11:54
0
雪    币: 1343
活跃值: (2842)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
11
这壳不算太难,我以前脱过好几个.
比如以前的《跑跑卡丁车》,《惊天动地》,《神泣》等好我游戏都加了这壳。不知道现在换了壳不。
BTW:e36K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4y4Z5k6h3g2H3K9r3g2J5k6r3g2J5i4K6u0W2P5i4x3I4y4U0S2Q4x3X3g2U0L8$3#2Q4x3V1k6Q4c8e0c8Q4b7U0W2Q4z5f1k6Q4c8e0k6Q4z5o6y4Q4b7U0y4Q4c8e0N6Q4z5p5g2Q4b7e0W2Q4c8e0N6Q4z5p5g2Q4b7e0W2Q4c8e0S2Q4b7V1k6Q4z5e0W2Q4c8e0c8Q4b7U0S2Q4b7f1p5`.
目录里有简单脱壳记录
我也是学习了老外的的脱文才搞定的。
2007-12-20 10:32
0
游客
登录 | 注册 方可回帖
返回