好友
阅读权限20
听众
最后登录1970-1-1
|
声明:QQ棋牌游戏伴侣3.5.2,这个记牌功能比较强大(个人观点),不过广告太多了,看着烦,由此有了此破解;
本人菜鸟一个,高手路过~~~~~
[写此文章本来为了让大家动手练习,但大家都要求成品,故再贴上附件,
程序太大,我加上PESpin 0.3x - 1.xx -> cyberbob [Overlay]压缩壳
昨天加的壳,杀毒软件显示有毒,现在重新加了个,做个免杀的,放心使用吧,
本人不才,承蒙老大厚爱评为精华,感激之情难以表达,
一、脱壳
用PEID查壳:ASPack 2.12 -> Alexey Solodovnikov [Overlay]
脱壳方法ESP定律,在这就不罗嗦了,怕被人扔鸡蛋,
不过脱好要处理下附加数据,
双击运行,点了没反应,看来有文件有自校验;
二、去自校验
先看看脱壳前的程序大小和脱壳后的程序大小,发现脱壳后的程序比脱壳前大很多(脱壳前只有660KB,脱壳后有7.8M)
由此想到此自校验是程序大小校验,用2 OD进行比较,关注je,jne等跳转,跳转以原程序为准,
用2个OD分别载入脱壳后及未脱壳的程序,下bp CreateFileA断点(原程序需到达OEP后下bp CreateFileA断点),
再单步走,注意看je,jne跳转,看哪个没跳;
下面是原程序部分:
004B98D8 8B45 E4 mov eax,dword ptr ss:[ebp-1C]
004B98DB 8B55 F8 mov edx,dword ptr ss:[ebp-8]
004B98DE 8B12 mov edx,dword ptr ds:[edx]
004B98E0 E8 ABB5F4FF call QQ棋牌游.00404E90
004B98E5 75 12 jnz short QQ棋牌游.004B98F9 ; 原程序跳转没实现
004B98E7 B8 E0930400 mov eax,493E0
004B98EC E8 0B9AF4FF call QQ棋牌游.004032FC
004B98F1 C1E0 02 shl eax,2
004B98F4 8945 F0 mov dword ptr ss:[ebp-10],eax
下面是脱壳后部分:
004B98D8 > \8B45 E4 mov eax,dword ptr ss:[ebp-1C]
004B98DB . 8B55 F8 mov edx,dword ptr ss:[ebp-8]
004B98DE . 8B12 mov edx,dword ptr ds:[edx]
004B98E0 . E8 ABB5F4FF call unpack1.00404E90
004B98E5 75 12 jnz short unpack1.004B98F9 ; 脱壳后程序跳转实现,此处NOP
004B98E7 . B8 E0930400 mov eax,493E0
004B98EC . E8 0B9AF4FF call unpack1.004032FC
004B98F1 . C1E0 02 shl eax,2
004B98F4 . 8945 F0 mov dword ptr ss:[ebp-10],eax
发现有一处跳转在原程序未跳,但在脱壳后程序跳转,此处NOP掉;
双击可以运行,发现过一段时间,程序就自动更新,看来也是程序大小变了,产生的自动更新校验;
三、去自动更新校验
OD载入,查找ASCII码:
地址=00502461
反汇编=mov ecx,unpack1.005025AC
文本字串=发现新的版本,软件开始自动升级。正在下载升级文件...
双击进去,往上拉,发现有个跳可以跳过去,改JMP后可以去掉自动更新;
005023E5 |. 833D 80E45000>cmp dword ptr ds:[50E480],0
005023EC |. 0F85 74010000 jnz unpack1.00502566 ; 此处可以跳过自动更新,改JMP
005023F2 |. 8D55 F0 lea edx,[local.4]
005023F5 |. A1 ECE95000 mov eax,dword ptr ds:[50E9EC]
005023FA |. 8B00 mov eax,dword ptr ds:[eax]
005023FC |. E8 3FEEF5FF call unpack1.00461240
00502401 |. 8B45 F0 mov eax,[local.4]
00502404 |. 8D55 F4 lea edx,[local.3]
00502407 |. E8 FC76F0FF call unpack1.00409B08
0050240C |. 8B45 F4 mov eax,[local.3]
0050240F |. 8D55 FC lea edx,[local.1]
00502412 |. E8 D16EF0FF call unpack1.004092E8
00502417 |. 8B45 FC mov eax,[local.1]
0050241A |. E8 2D29F0FF call unpack1.00404D4C
0050241F |. 8B55 FC mov edx,[local.1]
00502422 |. 807C02 FF 5C cmp byte ptr ds:[edx+eax-1],5C
00502427 |. 74 0D je short unpack1.00502436
00502429 |. 8D45 FC lea eax,[local.1]
0050242C |. BA A0255000 mov edx,unpack1.005025A0 ; \
00502431 |. E8 1E29F0FF call unpack1.00404D54
00502436 |> 8B87 28020000 mov eax,dword ptr ds:[edi+228]
0050243C |. 33D2 xor edx,edx
0050243E |. 8B08 mov ecx,dword ptr ds:[eax]
00502440 |. FF51 64 call dword ptr ds:[ecx+64]
00502443 |. 8B87 3C020000 mov eax,dword ptr ds:[edi+23C]
00502449 |. B2 01 mov dl,1
0050244B |. 8B08 mov ecx,dword ptr ds:[eax]
0050244D |. FF51 64 call dword ptr ds:[ecx+64]
00502450 |. 6A 01 push 1
00502452 |. 6A 3C push 3C
00502454 |. A1 90E85000 mov eax,dword ptr ds:[50E890]
00502459 |. 8B00 mov eax,dword ptr ds:[eax]
0050245B |. 8B80 08030000 mov eax,dword ptr ds:[eax+308]
00502461 |. B9 AC255000 mov ecx,unpack1.005025AC ; 发现新的版本,软件开始自动升级。正在下载升级文件...
00502466 |. BA E8255000 mov edx,unpack1.005025E8 ; QQ 棋牌游戏伴侣
0050246B |. E8 EC21F9FF call unpack1.0049465C
00502470 |. 8B87 24020000 mov eax,dword ptr ds:[edi+224]
00502476 |. BA 00265000 mov edx,unpack1.00502600 ; 正在下载升级文件...
四、去网页
网页是在中间跳出,没规律且次数多
OD载入,下bp ShellExecuteExA,运行,过一会才能断下(因为在程序运行中跳出网页)
找到段首下断,shift+F9运行,慢慢跟,把调用此API 的CALL nop掉
0048C702 |. 8A55 FB mov dl,byte ptr ss:[ebp-5]
0048C705 |. 8B45 FC mov eax,[local.1]
0048C708 |. 8B30 mov esi,dword ptr ds:[eax]
0048C70A |. FF96 A0000000 call dword ptr ds:[esi+A0] ; 此CALL NOP
0048C710 |. E9 9B000000 jmp unpack去.0048C7B0
0048C715 |> 8B45 FC mov eax,[local.1]
0048C718 |. 8B88 D0000000 mov ecx,dword ptr ds:[eax+D0]
0048C71E |. 8D55 F0 lea edx,[local.4]
再运行程序,这世界清净了,only you!---------引用大话西游的话!
此篇破解到此为止,感谢各位大大门能看完;
本人菜鸟一个,有问题欢迎交流!
[ 本帖最后由 8568309 于 2009-2-11 09:01 编辑 ] |
|