- UID
- 2446
注册时间2005-7-21
阅读权限30
最后登录1970-1-1
龙战于野

该用户从未签到
|
音像王 3.00 破解分析
=================================================================================
破解作者:风球
破解工具:PEID,OD
软件下载:http://nj.onlinedown.net/soft/44311.htm
软件大小:10545KB
软件语言:简体中文
软件类别:国产软件/共享版/商业贸易
运行环境:Win9x/Me/NT/2000/XP/2003
加入时间:2005-11-13 17:20:04
软件简介:荣创-音像王是目前音像行业最优秀的解决方案。荣创软件公司历经四年音像行业产品研发经验、成果集大成者,并在同类产品中长期保持绝对优势地位。目前全国用户逾2000家正在使用音像王软件,产品以界面简洁,操作方便,稳定性高,数据安全等特点获得广大用户的青睐。
=================================================================================
PEID查过为Borland Delphi 4.0 - 5.0
OD载入查找字符来到````
Ultra String Reference,项目 7134
Address=006F3CCD
Disassembly=mov eax,CdKing.006F3D30
Text String=祝贺您,注册成功!
006F3C70 55 push ebp ; 在此下断来分析
006F3C71 8BEC mov ebp,esp
006F3C73 6A 00 push 0
006F3C75 6A 00 push 0
006F3C77 53 push ebx
006F3C78 8BD8 mov ebx,eax
006F3C7A 33C0 xor eax,eax
006F3C7C 55 push ebp
006F3C7D 68 153D6F00 push CdKing.006F3D15
006F3C82 64:FF30 push dword ptr fs:[eax]
006F3C85 64:8920 mov dword ptr fs:[eax],esp
006F3C88 8D55 FC lea edx,dword ptr ss:[ebp-4]
006F3C8B 8B83 04030000 mov eax,dword ptr ds:[ebx+304]
006F3C91 E8 F659D4FF call CdKing.0043968C
006F3C96 8D55 F8 lea edx,dword ptr ss:[ebp-8]
006F3C99 8B83 08030000 mov eax,dword ptr ds:[ebx+308]
006F3C9F E8 E859D4FF call CdKing.0043968C
006F3CA4 8B55 F8 mov edx,dword ptr ss:[ebp-8] ; 假码
006F3CA7 8B45 FC mov eax,dword ptr ss:[ebp-4] ; 用户码
006F3CAA E8 7DF6FFFF call CdKing.006F332C ; 跟进去看看
006F3CAF 84C0 test al,al
006F3CB1 74 47 je short CdKing.006F3CFA ; 跳就OVER
006F3CB3 A1 CC1A7000 mov eax,dword ptr ds:[701ACC]
006F3CB8 8B00 mov eax,dword ptr ds:[eax]
006F3CBA 8B55 F8 mov edx,dword ptr ss:[ebp-8]
006F3CBD E8 92EEE6FF call CdKing.00562B54
006F3CC2 6A 00 push 0
006F3CC4 66:8B0D 243D6F0>mov cx,word ptr ds:[6F3D24]
006F3CCB B2 02 mov dl,2
006F3CCD B8 303D6F00 mov eax,CdKing.006F3D30 ; 祝贺您,注册成功
006F3CD2 E8 6519D7FF call CdKing.0046563C
===================跟进 call CdKing.006F332C 分析===================
006F332C 55 push ebp ; 来到这里
006F332D 8BEC mov ebp,esp
006F332F 83C4 E8 add esp,-18
006F3332 53 push ebx
006F3333 8955 F8 mov dword ptr ss:[ebp-8],edx ; 假码
006F3336 8945 FC mov dword ptr ss:[ebp-4],eax ; 用户码
006F3339 8B45 FC mov eax,dword ptr ss:[ebp-4] ; 用户码入EAX
006F333C E8 8F10D1FF call CdKing.004043D0
006F3341 8B45 F8 mov eax,dword ptr ss:[ebp-8]
006F3344 E8 8710D1FF call CdKing.004043D0
006F3349 33C0 xor eax,eax
006F334B 55 push ebp
006F334C 68 96336F00 push CdKing.006F3396
006F3351 64:FF30 push dword ptr fs:[eax]
006F3354 64:8920 mov dword ptr fs:[eax],esp
006F3357 8B45 FC mov eax,dword ptr ss:[ebp-4] ; 用户码
006F335A E8 A9FDFFFF call CdKing.006F3108 ; 算法CALL,跟进去看看
006F335F DD5D F0 fstp qword ptr ss:[ebp-10] ; 用户码运算出来39087.000000000000000
006F3362 9B wait
006F3363 8B45 F8 mov eax,dword ptr ss:[ebp-8] ; 假码
006F3366 E8 9DFDFFFF call CdKing.006F3108 ; 跟上一样的算法CALL
006F336B DD5D E8 fstp qword ptr ss:[ebp-18] ; 假码运算出来的结果
006F336E 9B wait
006F336F DD45 F0 fld qword ptr ss:[ebp-10]
006F3372 DC5D E8 fcomp qword ptr ss:[ebp-18] ; 两者比较,相等即成功!
006F3375 DFE0 fstsw ax
===================跟进call CdKing.006F3108 来分析===================
006F3108 55 push ebp ; 跟进来到这里
006F3109 8BEC mov ebp,esp
006F310B 83C4 E4 add esp,-1C
006F310E 53 push ebx
006F310F 56 push esi
006F3110 57 push edi
006F3111 33D2 xor edx,edx
006F3113 8955 E8 mov dword ptr ss:[ebp-18],edx
006F3116 8955 EC mov dword ptr ss:[ebp-14],edx
006F3119 8945 FC mov dword ptr ss:[ebp-4],eax
006F311C 8B45 FC mov eax,dword ptr ss:[ebp-4]
006F311F E8 AC12D1FF call CdKing.004043D0
006F3124 33C0 xor eax,eax
006F3126 55 push ebp
006F3127 68 F7316F00 push CdKing.006F31F7
006F312C 64:FF30 push dword ptr fs:[eax]
006F312F 64:8920 mov dword ptr fs:[eax],esp
006F3132 33D2 xor edx,edx
006F3134 55 push ebp
006F3135 68 C2316F00 push CdKing.006F31C2
006F313A 64:FF32 push dword ptr fs:[edx]
006F313D 64:8922 mov dword ptr fs:[edx],esp
006F3140 A0 08326F00 mov al,byte ptr ds:[6F3208]
006F3145 50 push eax
006F3146 8D45 EC lea eax,dword ptr ss:[ebp-14]
006F3149 50 push eax
006F314A 33C9 xor ecx,ecx
006F314C BA 14326F00 mov edx,CdKing.006F3214
006F3151 8B45 FC mov eax,dword ptr ss:[ebp-4]
006F3154 E8 67B9D1FF call CdKing.0040EAC0
006F3159 33F6 xor esi,esi
006F315B 33DB xor ebx,ebx
006F315D 8D45 E8 lea eax,dword ptr ss:[ebp-18]
006F3160 8B55 EC mov edx,dword ptr ss:[ebp-14] ; 用户码 "6147804325788912")
006F3163 8A141A mov dl,byte ptr ds:[edx+ebx] ; 逐位取
006F3166 E8 C90FD1FF call CdKing.00404134
006F316B 8B45 E8 mov eax,dword ptr ss:[ebp-18]
006F316E E8 7173D1FF call CdKing.0040A4E4
006F3173 A8 01 test al,1
006F3175 74 25 je short CdKing.006F319C
006F3177 68 00400000 push 4000
006F317C 68 00000080 push 80000000
006F3181 6A 00 push 0
006F3183 895D E4 mov dword ptr ss:[ebp-1C],ebx
006F3186 DB45 E4 fild dword ptr ss:[ebp-1C]
006F3189 83C4 F4 add esp,-0C
006F318C DB3C24 fstp tbyte ptr ss:[esp]
006F318F 9B wait
006F3190 E8 4757D3FF call CdKing.004288DC
006F3195 E8 DAF9D0FF call CdKing.00402B74
006F319A 03F0 add esi,eax
006F319C 43 inc ebx
006F319D 83FB 0E cmp ebx,0E ; 取前14位
006F31A0 ^ 75 BB jnz short CdKing.006F315D ; 没取完循环取
006F31A2 B8 20326F00 mov eax,CdKing.006F3220 ; ASCII "1980-01-01"
006F31A7 E8 D49DD1FF call CdKing.0040CF80
006F31AC 8975 E4 mov dword ptr ss:[ebp-1C],esi
006F31AF DB45 E4 fild dword ptr ss:[ebp-1C]
006F31B2 DEC1 faddp st(1),st ; 浮点相加
006F31B4 DD5D F0 fstp qword ptr ss:[ebp-10]
006F31B7 9B wait
========================================================================================
破解总结:
到此破解应该算是很清楚了```算法也不想再深入分析,就是取用户码的前14与固定字符“1980-01-01”浮点相加运算得到的结果,再同样取注册码的前14位与固定字符“1980-01-01”浮点相加运算得到的结果,两者进行比较,如果相等的话就注册成功,都是同样的运算```也就是说用户码的前14位转为浮点数跟注册码的前14位转浮点数相等即可```
也就是说只要前14位相等就OK了,那取用户码作为注册码就注册成功。注册机也就不用写了```哈```
这样不会破解的人,都可以注册成功了```只要他随便用用户码放到注册码上一试便OK了,软件作者真是的```汗```
---------------------------------------------------------------------2005.11.14
【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢! |
|