99奇迹2.6B破解全攻略--关于网络验证
至于软件的脱壳问题,在此不过多说明,无非就是ARM的壳。如果大家有这样的朋友,可以让他们代劳一下了 www.haosf.com
www.haosf.com
一、将远程验证改为本地验证。 www.haosf.com
软件脱壳后,用ultraedit(或其它32位)工具将文件打开,查收字符串210.17.189.108或210.17.189.111,将其改为本地验证,即127.0.0.1,不足的地方添加内码0 www.haosf.com
www.haosf.com
由于原软件采用的是随机端口9825-9809,所以我们也还固定端口 www.haosf.com
www.haosf.com
www.haosf.com
0042AC39 81C2 61260000 ADD EDX, 2661 //9825-9829 www.haosf.com
www.haosf.com
改为: www.haosf.com
0042AC39 90 NOP www.haosf.com
0042AC3A BA 61260000 MOV EDX,2661 //改为固定的端口9825 www.haosf.com
www.haosf.com
www.haosf.com
二、验证服务器的编写 www.haosf.com
注:所有说明均以验证服务器角度。 www.haosf.com
www.haosf.com
www.haosf.com
1、客户端发来第一次数据(定长13个字节) www.haosf.com
例: www.haosf.com
0000 21 21 22 23 30 00 00 00 00 27 30 30 30 !!"#0....’000 www.haosf.com
www.haosf.com
将第5位(0x30)依次异或6-13位,得到结果(内存的显示结果): www.haosf.com
30 30 30 30 17 00 00 00 www.haosf.com
其中,后四位代表客户端版本编号,0x17为2.6A版,0x15为2.6版 www.haosf.com
www.haosf.com
www.haosf.com
2、服务器发回第一次验证值(定长24字节) www.haosf.com
24字节分成两部分,前16个字节为第二次验证数据的加密密钥,后8个字节为本次验证的合法性校验值! www.haosf.com
www.haosf.com
a、前16位生成原理: www.haosf.com
随机生成四个值: 00000A18 00000F86 00007A1C 000027AC www.haosf.com
内存显示结果:18 0A 00 00 86 0F 00 00 1C 7A 00 00 AC 27 00 00 www.haosf.com
www.haosf.com
b、后8位生成原理: www.haosf.com
加密数据: www.haosf.com
30 30 30 30 17 00 00 00 www.haosf.com
www.haosf.com
将数据合并为24位待加密数据: www.haosf.com
18 0A 00 00 86 0F 00 00 1C 7A 00 00 AC 27 00 00 www.haosf.com
30 30 30 30 17 00 00 00 www.haosf.com
www.haosf.com
www.haosf.com
然后用加密密钥(固定,内存显示结果) www.haosf.com
51 EA 98 26 FA 75 42 71 5E 72 FA 53 EC 43 AB 69 www.haosf.com
①2698EA51 www.haosf.com
②714275FA www.haosf.com
③53FA725E www.haosf.com
④69AB43EC www.haosf.com
www.haosf.com
经过加密(具体加密原理,见三“加密函数”,分段加密,每次处理8位) www.haosf.com
得到结果(内存显示结果): www.haosf.com
97 BA DB A9 6A C7 62 15 3B AB 0E 10 DA 93 55 27 www.haosf.com
D1 F8 F5 63 C1 ED 9B 90 www.haosf.com
www.haosf.com
将此24位数据发送出去,第一次验证通过 www.haosf.com
www.haosf.com
www.haosf.com
3、客户端发来第二次验证数据(定长176位,包含帐号密码等信息) www.haosf.com
其实这个数据也是用刚才随机生成四个值(00000A18 00000F86 00007A1C 000027AC)为密钥加密成的, www.haosf.com
例: www.haosf.com
0000 51 08 24 BC 97 2B AB C8 E2 C5 6E BA F6 2A 0E 4F Q.$..+....n..*.O www.haosf.com
0010 97 D6 CD 8D 83 24 B2 D6 E2 C5 6E BA F6 2A 0E 4F .....$....n..*.O www.haosf.com
0020 25 33 17 53 31 34 68 5E 5B 5F FB 06 B0 A9 1D 90 %3.S14h^[_...... www.haosf.com
0030 62 9E 41 1E 6B 68 06 C3 E2 C5 6E BA F6 2A 0E 4F b.A.kh....n..*.O www.haosf.com
0040 E2 C5 6E BA F6 2A 0E 4F E2 C5 6E BA F6 2A 0E 4F ..n..*.O..n..*.O www.haosf.com
0050 E2 C5 6E BA F6 2A 0E 4F E2 C5 6E BA F6 2A 0E 4F ..n..*.O..n..*.O www.haosf.com
0060 E2 C5 6E BA F6 2A 0E 4F E2 C5 6E BA F6 2A 0E 4F ..n..*.O..n..*.O www.haosf.com
0070 57 84 5A 57 A6 71 38 62 A8 97 0F 99 7B 0C 37 A5 W.ZW.q8b....{.7. www.haosf.com
0080 E2 C5 6E BA F6 2A 0E 4F E2 C5 6E BA F6 2A 0E 4F ..n..*.O..n..*.O www.haosf.com
0090 E2 C5 6E BA F6 2A 0E 4F E2 C5 6E BA F6 2A 0E 4F ..n..*.O..n..*.O www.haosf.com
00A0 E2 C5 6E BA F6 2A 0E 4F E2 C5 6E BA F6 2A 0E 4F ..n..*.O..n..*.O www.haosf.com
www.haosf.com
www.haosf.com
服务器解密这段数据,正好是“加密函数”的逆运算(具体解密原理,见四“解密函数”)。也是分段解密,每次处理8位 www.haosf.com
解密密钥就是(四个刚才生成的随机值) www.haosf.com
18 0A 00 00 86 0F 00 00 1C 7A 00 00 AC 27 00 00 www.haosf.com
www.haosf.com
得到结果: www.haosf.com
39 39 71 6A 00 00 00 00 00 00 00 00 00 00 00 00 99qj............ www.haosf.com
41 55 54 48 45 4E 00 00 00 00 00 00 00 00 00 00 AUTHEN.......... www.haosf.com
77 77 77 2E 39 39 71 6A 2E 63 6F 6D 00 00 00 00 .... www.haosf.com
61 62 63 64 65 66 00 00 00 00 00 00 00 00 00 00 abcdef.......... www.haosf.com
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ www.haosf.com
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ www.haosf.com
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ www.haosf.com
63 6E 68 65 72 6F 30 30 37 00 00 00 00 00 00 00 51pywg.......... www.haosf.com
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ www.haosf.com
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ www.haosf.com
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ www.haosf.com
www.haosf.com
第一行为九九奇迹(外挂)的帐号 www.haosf.com
第二行为用于校验(固定) www.haosf.com
第三行为九九奇迹(外挂)的密码 www.haosf.com
第四行为用于校验(固定) www.haosf.com
第八行为奇迹(游戏)的帐号 www.haosf.com
www.haosf.com
www.haosf.com
4、服务器返回第二次验证数据(定长48位): www.haosf.com
0000 A7 80 7E 44 AF E6 59 59 00 00 00 00 00 00 00 00 ..~D..YY........ www.haosf.com
0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ www.haosf.com
0020 32 2E 36 61 00 00 00 00 00 00 00 00 B1 C4 FD 4B 2.6a...........K www.haosf.com
www.haosf.com
这里只有前8位有效,其余均为固定(对于2.6A版本而言) www.haosf.com
前8位生成原理: www.haosf.com
加密数据(内存显示结果),即"SUCCESS"字符串 www.haosf.com
53 55 43 43 45 53 53 00 www.haosf.com
加密密钥(内存显示结果),还是刚才生成的4个随机值 www.haosf.com
18 0A 00 00 86 0F 00 00 1C 7A 00 00 AC 27 00 00 www.haosf.com
www.haosf.com
加密原理与第二步的相同(详见“加密函数”文章),但这里不同的是这8位数据,用同样的密钥加密了6次 www.haosf.com
各次结果如下(内存显示结果): www.haosf.com
53 55 43 43 45 53 53 00 SUCCESS. www.haosf.com
加密到 www.haosf.com
1F 02 83 77 0A 75 21 AC 僿.u!?. www.haosf.com
www.haosf.com
A1 7F ED 97 12 1B 45 64 ?項Ed.. www.haosf.com
www.haosf.com
7E 56 E9 2E 08 03 79 71 ~V? www.haosf.com
www.haosf.com
75 00 EA 55 76 87 A8 20 u.闡v嚚 .. www.haosf.com
www.haosf.com
52 6D E1 B8 17 35 DC 12 Rm岣5? www.haosf.com
最后得到就是要的结果 www.haosf.com
A7 80 7E 44 AF E6 59 59 www.haosf.com
www.haosf.com
www.haosf.com
www.haosf.com
三、加密函数 www.haosf.com
举例: www.haosf.com
加密数据(内存显示结果),第一次生成的4个随机数的前两个 www.haosf.com
18 0A 00 00 86 0F 00 00 www.haosf.com
⑴00000A18 www.haosf.com
⑵00000F86 www.haosf.com
加密密钥(内存显示结果),程序固定 www.haosf.com
51 EA 98 26 FA 75 42 71 5E 72 FA 53 EC 43 AB 69 www.haosf.com
①2698EA51 www.haosf.com
②714275FA www.haosf.com
③53FA725E www.haosf.com
④69AB43EC www.haosf.com
www.haosf.com
www.haosf.com
www.haosf.com
程序代码段: www.haosf.com
:0045099C 8B8640040000 mov eax, dword ptr [esi+00000440] www.haosf.com
:004509A2 57 push edi //加密密钥 www.haosf.com
:004509A3 8D8CC63C020000 lea ecx, dword ptr [esi+8*eax+0000023C] www.haosf.com
:004509AA 51 push ecx //加密数据 www.haosf.com
:004509AB E8803D0000 call 00454730 //加密函数(每次加密8个字节),F8跟进 www.haosf.com
www.haosf.com
-----------------F8跟进加密函数---------------------------- www.haosf.com
:00454730 83EC0C sub esp, 0000000C www.haosf.com
:00454733 53 push ebx www.haosf.com
:00454734 55 push ebp www.haosf.com
:00454735 56 push esi www.haosf.com
:00454736 8B742420 mov esi, dword ptr [esp+20] www.haosf.com
:0045473A 8B4C241C mov ecx, dword ptr [esp+1C] www.haosf.com
:0045473E 57 push edi www.haosf.com
:0045473F 8B3E mov edi, dword ptr [esi] //①2698EA51 www.haosf.com
:00454741 33D2 xor edx, edx www.haosf.com
:00454743 8B01 mov eax, dword ptr [ecx] //⑴00000A18 www.haosf.com
:00454745 8B4904 mov ecx, dword ptr [ecx+04]//⑵00000F86 www.haosf.com
:00454748 897C2410 mov dword ptr [esp+10], edi www.haosf.com
:0045474C 8B7E04 mov edi, dword ptr [esi+04]//②714275FA www.haosf.com
:0045474F 897C2424 mov dword ptr [esp+24], edi www.haosf.com
:00454753 8B7E08 mov edi, dword ptr [esi+08]//③53FA725E www.haosf.com
:00454756 8B760C mov esi, dword ptr [esi+0C]//④69AB43EC www.haosf.com
:00454759 897C2418 mov dword ptr [esp+18], edi www.haosf.com
:0045475D 89742414 mov dword ptr [esp+14], esi www.haosf.com
:00454761 BF20000000 mov edi, 00000020 //计数器 www.haosf.com
www.haosf.com
* Referenced by a (U)nconditional or (C)onditional Jump at Address: www.haosf.com
|:004547AB(C) www.haosf.com
| www.haosf.com
:00454766 8B5C2424 mov ebx, dword ptr [esp+24] //EBX=②714275FA www.haosf.com
:0045476A 8B6C2410 mov ebp, dword ptr [esp+10] //EBP=①2698EA51 www.haosf.com
:0045476E 8BF1 mov esi, ecx //⑵00000F86 www.haosf.com
:00454770 81EA4786C861 sub edx, 61C88647 //0 - 61C88647 = 9E3779B9 www.haosf.com
:00454776 C1EE05 shr esi, 05 //⑵00000F86 SHR 5 = 0000007C www.haosf.com
:00454779 03F3 add esi, ebx //0000007C + ②714275FA = 71427676 www.haosf.com
:0045477B 8BD9 mov ebx, ecx www.haosf.com
:0045477D C1E304 shl ebx, 04 //⑵00000F86 SHL 4 = 0000F860 www.haosf.com
:00454780 03DD add ebx, ebp //0000F860 + ①2698EA51 = 2699E2B1 www.haosf.com
:00454782 8B6C2418 mov ebp, dword ptr [esp+18] //③53FA725E www.haosf.com
:00454786 33F3 xor esi, ebx //71427676 XOR 2699E2B1 = 57DB94C7 www.haosf.com
:00454788 8D1C0A lea ebx, dword ptr [edx+ecx]//9E3779B9+00000F86=9E37893F www.haosf.com
:0045478B 33F3 xor esi, ebx //57DB94C7 XOR 9E37893F = C9EC1DF8 www.haosf.com
:0045478D 8B5C2414 mov ebx, dword ptr [esp+14] //④69AB43EC www.haosf.com
:00454791 03C6 add eax, esi //C9EC1DF8 + 00000A18 = C9EC2810 www.haosf.com
:00454793 8BF0 mov esi, eax www.haosf.com
:00454795 C1EE05 shr esi, 05 //C9EC2810 SHR 5 = 064F6140 www.haosf.com
:00454798 03F3 add esi, ebx //064F6140 + ④69AB43EC = 6FFAA52C www.haosf.com
:0045479A 8BD8 mov ebx, eax www.haosf.com
:0045479C C1E304 shl ebx, 04 //C9EC2810 SHL 4 = 9EC28100 www.haosf.com
:0045479F 03DD add ebx, ebp //9EC28100 + ③53FA725E = F2BCF35E www.haosf.com
:004547A1 33F3 xor esi, ebx //6FFAA52C XOR F2BCF35E = 9D465672 www.haosf.com
:004547A3 8D1C02 lea ebx, dword ptr [edx+eax]//9E3779B9 + C9EC2810 = 6823A1C9 www.haosf.com
:004547A6 33F3 xor esi, ebx //9D465672 XOR 6823A1C9 = F565F7BB www.haosf.com
:004547A8 03CE add ecx, esi //00000F86 + F565F7BB = F5660741 www.haosf.com
:004547AA 4F dec edi www.haosf.com
:004547AB 75B9 jne 00454766 //向上跳构成循环结构,共循环32(10进制)次 www.haosf.com
************************************************************ www.haosf.com
上面仅列出第一次循环时的结果,只需要的值,EAX=C9EC2810 ECX=F5660741 www.haosf.com
最后循环32次后。得到EAX=A9DBBA97 ECX=1562C76A www.haosf.com
************************************************************ www.haosf.com
:004547AD 8B542420 mov edx, dword ptr [esp+20] www.haosf.com
:004547B1 5F pop edi www.haosf.com
:004547B2 5E pop esi www.haosf.com
:004547B3 5D pop ebp www.haosf.com
:004547B4 8902 mov dword ptr [edx], eax www.haosf.com
:004547B6 894A04 mov dword ptr [edx+04], ecx //放入内存后的结果 www.haosf.com
********************************************************************** www.haosf.com
0047B8AC 97 BA DB A9 6A C7 62 15 椇郓j莃... www.haosf.com
********************************************************************** www.haosf.com
:004547B9 5B pop ebx www.haosf.com
:004547BA 83C40C add esp, 0000000C www.haosf.com
:004547BD C3 ret www.haosf.com
www.haosf.com
www.haosf.com
到此完成8个字节的加密 www.haosf.com
www.haosf.com
www.haosf.com
四、解密函数 www.haosf.com
基本上就是将上便过程进行逆推,如果不对的地方还请指正
发布于:2008-6-12 已被阅读: 次