【破文标题】中华通讯录 5.7 Build注册码分析[很简单]
【破文作者】sailor
【软件名称】中华通讯录 5.7 Build
【下载地址】http://gz.onlinedown.net/soft/10255.htm
【破解工具】OD,PEiD,W32Dasm,DeDe
【保护方式】
【软件限制】
【破解难度】很简单
----------------------------------------------------
软件介绍:
中华通讯录是一款实用的通讯录软件,软件界面采用WINXP风格,功能完善,最多能够容纳十万条通讯记录,新版本增加了QQ助聊
功能,通过它可以向网友连续发送信息,非常方便快捷。启动时需要输入密码,使其它人不能看到你的通讯资料,让你的信息更安全。
查询栏让你很快找到你的联系人。支持增加分类,添加,删除信息。
最新版本:V5.0Build
查询功能有了很大改进,增加了新的皮肤,修正了换肤功能的BUG.
----------------------------------------------------
破解声名:
----------------------------------------------------
【破解分析】
1、用PEiD查,是UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo壳,直接用PEiD脱壳
2、用PEiD查脱后的文件,是Borland Delphi 4.0 - 5.0,用DeDe反,没找到想要的东东(看不到窗口,只有些类)
3、用W32Dasm反,查找字符串
:005CCA82 B8C4CAA7B0 mov eax, B0A7CAC4
:005CCA87 DCA3A1000053 fsub qword ptr [ebx+530000A1]
:005CCA8D 8BD8 mov ebx, eax
:005CCA8F 8BC3 mov eax, ebx
:005CCA91 E89ACBFFFF call 005C9630 ;用OD载入,进去看看
:005CCA96 84C0 test al, al
:005CCA98 7409 je 005CCAA3 ;跳到失败处
:005CCA9A 8BC3 mov eax, ebx
:005CCA9C E8DFC8FFFF call 005C9380
:005CCAA1 5B pop ebx
:005CCAA2 C3 ret
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:005CCA98(C)
|
:005CCAA3 6A20 push 00000020
* Possible StringData Ref from Data Obj ->"信息提示"
|
:005CCAA5 B9C0CA5C00 mov ecx, 005CCAC0
* Possible StringData Ref from Data Obj ->"注册码不正确,无法注册"
|
:005CCAAA BACCCA5C00 mov edx, 005CCACC
:005CCAAF A1D0B55D00 mov eax, dword ptr [005DB5D0]
:005CCAB4 8B00 mov eax, dword ptr [eax]
:005CCAB6 E85DB5E8FF call 00458018
:005CCABB 5B pop ebx
:005CCABC C3 ret
4、进来后看到注册算法,很简单
005C9630 55 push ebp
005C9631 8BEC mov ebp,esp
005C9633 33C9 xor ecx,ecx
005C9635 51 push ecx
005C9636 51 push ecx
005C9637 51 push ecx
005C9638 51 push ecx
005C9639 51 push ecx
005C963A 53 push ebx
005C963B 56 push esi
005C963C 8945 FC mov dword ptr ss:[ebp-4],eax
005C963F 33C0 xor eax,eax
005C9641 55 push ebp
005C9642 68 0C975C00 push 中华通讯.005C970C
005C9647 64:FF30 push dword ptr fs:[eax]
005C964A 64:8920 mov dword ptr fs:[eax],esp
005C964D 33C0 xor eax,eax
005C964F 8945 F4 mov dword ptr ss:[ebp-C],eax
005C9652 8D55 F8 lea edx,dword ptr ss:[ebp-8]
005C9655 8B45 FC mov eax,dword ptr ss:[ebp-4]
005C9658 8B80 2C0A0000 mov eax,dword ptr ds:[eax+A2C]
005C965E E8 71F4E6FF call 中华通讯.00438AD4
005C9663 8B45 F8 mov eax,dword ptr ss:[ebp-8] ; 得到机器码
005C9666 E8 F5ABE3FF call 中华通讯.00404260 ; “091F-14FD”一共9位
005C966B 8BD8 mov ebx,eax
005C966D 85DB test ebx,ebx
005C966F 7E 2E jle short 中华通讯.005C969F
005C9671 BE 01000000 mov esi,1
005C9676 8D45 F0 lea eax,dword ptr ss:[ebp-10]
005C9679 50 push eax
005C967A B9 01000000 mov ecx,1
005C967F 8BD6 mov edx,esi
005C9681 8B45 F8 mov eax,dword ptr ss:[ebp-8]
005C9684 E8 DFADE3FF call 中华通讯.00404468
005C9689 8B45 F0 mov eax,dword ptr ss:[ebp-10]
005C968C E8 93ADE3FF call 中华通讯.00404424
005C9691 8A00 mov al,byte ptr ds:[eax]
005C9693 25 FF000000 and eax,0FF
005C9698 0145 F4 add dword ptr ss:[ebp-C],eax ; [ebp-c]中存放机器码的各ASCII值之和
005C969B 46 inc esi
005C969C 4B dec ebx
005C969D ^ 75 D7 jnz short 中华通讯.005C9676
005C969F 8D55 EC lea edx,dword ptr ss:[ebp-14] ; 最后结果是 1FC
005C96A2 8B45 FC mov eax,dword ptr ss:[ebp-4]
005C96A5 8B80 4C0A0000 mov eax,dword ptr ds:[eax+A4C]
005C96AB E8 24F4E6FF call 中华通讯.00438AD4
005C96B0 8B45 EC mov eax,dword ptr ss:[ebp-14] ; 得到试炼码54321
005C96B3 E8 9C0CE4FF call 中华通讯.0040A354
005C96B8 8B55 F4 mov edx,dword ptr ss:[ebp-C] ; 将 1FC给edx
005C96BB 81C2 FC7E1200 add edx,127EFC ; 加 127EFC
005C96C1 81C2 9EE46400 add edx,中华通讯.0064E49E ; 加 64E49E
005C96C7 3BC2 cmp eax,edx ; 试炼码与计算出来的注册码比较
005C96C9 75 19 jnz short 中华通讯.005C96E4
005C96CB B3 01 mov bl,1 ; 注册成功标志
005C96CD B8 8CF85D00 mov eax,中华通讯.005DF88C
005C96D2 8B55 F8 mov edx,dword ptr ss:[ebp-8]
005C96D5 E8 5AA9E3FF call 中华通讯.00404034
005C96DA 8B45 F4 mov eax,dword ptr ss:[ebp-C]
005C96DD A3 90F85D00 mov dword ptr ds:[5DF890],eax
005C96E2 EB 02 jmp short 中华通讯.005C96E6
005C96E4 33DB xor ebx,ebx ; 注册失败标志
005C96E6 33C0 xor eax,eax
005C96E8 5A pop edx
005C96E9 59 pop ecx
005C96EA 59 pop ecx
005C96EB 64:8910 mov dword ptr fs:[eax],edx
005C96EE 68 13975C00 push 中华通讯.005C9713
005C96F3 8D45 EC lea eax,dword ptr ss:[ebp-14]
005C96F6 E8 E5A8E3FF call 中华通讯.00403FE0
005C96FB 8D45 F0 lea eax,dword ptr ss:[ebp-10]
005C96FE E8 DDA8E3FF call 中华通讯.00403FE0
005C9703 8D45 F8 lea eax,dword ptr ss:[ebp-8]
005C9706 E8 D5A8E3FF call 中华通讯.00403FE0
005C970B C3 retn
005C970C ^ E9 ABA2E3FF jmp 中华通讯.004039BC
005C9711 ^ EB E0 jmp short 中华通讯.005C96F3
005C9713 8BC3 mov eax,ebx
005C9715 5E pop esi
005C9716 5B pop ebx
005C9717 8BE5 mov esp,ebp
005C9719 5D pop ebp
005C971A C3 retn
----------------------------------------------------
【总结】
注册算法
将注册码的各位ASCII值相加,再加上127EFC,再加上64E49E。得到结果即为注册码。
----------------------------------------------------
【版权信息】
注册算法
将注册码的各位ASCII值相加,再加上127EFC,再加上64E49E。得到结果即为注册码。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课