找回密码
 注册
搜索
热搜: 回贴

Arial CD Ripper V1.4.0 注册算法分析,注册算法,加密算法

2010-1-22 18:37| 发布者: admin| 查看: 126| 评论: 0|原作者: 九天玄女


Arial CD Ripper V1.4.0 注册算法分析,注册算法,加密算法
2008年06月22日 星期日 下午 11:45
【作者邮箱】:gb_1227@163.com



【软件名称】:Arial CD Ripper V1.4.0



【软件大小】:1898 KB



【软件语言】:英文



【软件类别】:国外软件 / 共享版 / 音频转换



【整理时间】:2005-11-05



【下载地址】:http://www.skycn.com/soft/17166.html



【软件简介】:抓音轨和音频转换工具,能够把CD转换成MP3,WAV,OGG,FLAC,APE等文件格式,你可以在不损失质量的前提下只转换一条音轨或者转换整个光盘,软机同时具有在不同的音频格式之间互相转换的功能。



【保护方式】:注册码 试用功能限制



【编译语言】:Borland Delphi 6.0 - 7.0



【调试环境】:WinXP、PEiD、Ollydbg



【破解日期】:2005-11-08



【破解目的】:研究算法分析



【作者声明】:初学Crack,只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!



—————————————————————————————————

【破解过程】:



侦测:用PEiD查壳,无壳,Borland Delphi 6.0 - 7.0 编译。



试探:运行主程序注册,输入试炼码,确认!程序无提示!



下药:

Ollydbg载入主程序,用字符串插件查找一些关键字符,我们这里找到“Register successfully! Thank you for your support!”,

双击后来到 0057B530 处,然后向上来到 0057B4D0 处F2下断,F9运行,输入试炼信息:



***************** 试炼信息 ******************



Enter User Name:KuNgBiM



Enter registration code:9999999999999999999



*********************************************



0057B4D0 55 push ebp ; 来到这里F2下断!F9运行!

0057B4D1 8BEC mov ebp,esp

0057B4D3 6A 00 push 0

0057B4D5 6A 00 push 0

0057B4D7 53 push ebx

0057B4D8 8BD8 mov ebx,eax

0057B4DA 33C0 xor eax,eax

0057B4DC 55 push ebp

0057B4DD 68 B3B55700 push Arial_CD.0057B5B3

0057B4E2 64:FF30 push dword ptr fs:[eax]

0057B4E5 64:8920 mov dword ptr fs:[eax],esp

0057B4E8 8D55 FC lea edx,dword ptr ss:[ebp-4]

0057B4EB 8B83 14030000 mov eax,dword ptr ds:[ebx 314]

0057B4F1 E8 3EE7ECFF call Arial_CD.00449C34 ; 寄存器全部清零

0057B4F6 8D55 F8 lea edx,dword ptr ss:[ebp-8]

0057B4F9 8B83 1C030000 mov eax,dword ptr ds:[ebx 31C]

0057B4FF E8 30E7ECFF call Arial_CD.00449C34 ; 取用户注册信息

0057B504 A1 80B05800 mov eax,dword ptr ds:[58B080]

0057B509 8B00 mov eax,dword ptr ds:[eax]

0057B50B 8B4D F8 mov ecx,dword ptr ss:[ebp-8] ; 取假码

0057B50E 8B55 FC mov edx,dword ptr ss:[ebp-4] ; 取用户名

0057B511 E8 4EEDFFFF call Arial_CD.0057A264 ; ★关键CALL★F7跟进

0057B516 84C0 test al,al

0057B518 74 7E je short Arial_CD.0057B598 ; 关键跳转

0057B51A A1 80B05800 mov eax,dword ptr ds:[58B080]

0057B51F 8B00 mov eax,dword ptr ds:[eax]

0057B521 8B55 FC mov edx,dword ptr ss:[ebp-4]

0057B524 E8 97F0FFFF call Arial_CD.0057A5C0

0057B529 6A 40 push 40

0057B52B B9 C0B55700 mov ecx,Arial_CD.0057B5C0 ; ASCII "Congratulations!"

0057B530 BA D4B55700 mov edx,Arial_CD.0057B5D4 ; ASCII "Register successfully! Thank you for your support!"

0057B535 A1 A4B35800 mov eax,dword ptr ds:[58B3A4]

0057B53A 8B00 mov eax,dword ptr ds:[eax]

0057B53C E8 7BFBEEFF call Arial_CD.0046B0BC

0057B541 8BC3 mov eax,ebx

0057B543 E8 38C3EEFF call Arial_CD.00467880

0057B548 A1 80B05800 mov eax,dword ptr ds:[58B080]

0057B54D 8B00 mov eax,dword ptr ds:[eax]

0057B54F 8B80 60030000 mov eax,dword ptr ds:[eax 360]

0057B555 B2 01 mov dl,1

0057B557 E8 A007EEFF call Arial_CD.0045BCFC

0057B55C A1 80B05800 mov eax,dword ptr ds:[58B080]

0057B561 8B00 mov eax,dword ptr ds:[eax]

0057B563 8B80 64030000 mov eax,dword ptr ds:[eax 364]

0057B569 B2 01 mov dl,1

0057B56B E8 8C07EEFF call Arial_CD.0045BCFC

0057B570 A1 80B05800 mov eax,dword ptr ds:[58B080]

0057B575 8B00 mov eax,dword ptr ds:[eax]

0057B577 8B80 D4040000 mov eax,dword ptr ds:[eax 4D4]

0057B57D B2 01 mov dl,1

0057B57F E8 7807EEFF call Arial_CD.0045BCFC

0057B584 A1 80B05800 mov eax,dword ptr ds:[58B080]

0057B589 8B00 mov eax,dword ptr ds:[eax]

0057B58B 8B80 D8040000 mov eax,dword ptr ds:[eax 4D8]

0057B591 B2 01 mov dl,1

0057B593 E8 6407EEFF call Arial_CD.0045BCFC

0057B598 33C0 xor eax,eax ; 到这里就挂咯~~

0057B59A 5A pop edx

0057B59B 59 pop ecx

0057B59C 59 pop ecx

0057B59D 64:8910 mov dword ptr fs:[eax],edx

0057B5A0 68 BAB55700 push Arial_CD.0057B5BA

0057B5A5 8D45 F8 lea eax,dword ptr ss:[ebp-8]

0057B5A8 BA 02000000 mov edx,2

0057B5AD E8 3A98E8FF call Arial_CD.00404DEC

0057B5B2 C3 retn ; 完成验证

0057B5B3 ^ E9 7891E8FF jmp Arial_CD.00404730

0057B5B8 ^ EB EB jmp short Arial_CD.0057B5A5

0057B5BA 5B pop ebx

0057B5BB 59 pop ecx

0057B5BC 59 pop ecx

0057B5BD 5D pop ebp

0057B5BE C3 retn ; 返回窗口

........



========================= 跟进 0057B511 E8 4EEDFFFF call Arial_CD.0057A264 =========================



0057A264 55 push ebp ; 跟进来到这里

0057A265 8BEC mov ebp,esp

0057A267 83C4 E4 add esp,-1C

0057A26A 53 push ebx

0057A26B 33DB xor ebx,ebx

0057A26D 895D F4 mov dword ptr ss:[ebp-C],ebx

0057A270 894D F8 mov dword ptr ss:[ebp-8],ecx ; 取假码

0057A273 8955 FC mov dword ptr ss:[ebp-4],edx ; 从EDX中取用户名,ASCII "KuNgBiM"

0057A276 8B45 FC mov eax,dword ptr ss:[ebp-4] ; 从EDX中取用户名后送入EAX

0057A279 E8 EAAFE8FF call Arial_CD.00405268

0057A27E 8B45 F8 mov eax,dword ptr ss:[ebp-8] ; 将假码也送入EAX

0057A281 E8 E2AFE8FF call Arial_CD.00405268

0057A286 33C0 xor eax,eax

0057A288 55 push ebp

0057A289 68 D6A25700 push Arial_CD.0057A2D6

0057A28E 64:FF30 push dword ptr fs:[eax]

0057A291 64:8920 mov dword ptr fs:[eax],esp

0057A294 33DB xor ebx,ebx

0057A296 8D55 E4 lea edx,dword ptr ss:[ebp-1C]

0057A299 8B45 FC mov eax,dword ptr ss:[ebp-4] ; 从EAX中取出用户名

0057A29C E8 1F02FFFF call Arial_CD.0056A4C0 ; 检验用户名是否符合要求

0057A2A1 8D45 E4 lea eax,dword ptr ss:[ebp-1C]

0057A2A4 8D55 F4 lea edx,dword ptr ss:[ebp-C]

0057A2A7 E8 8802FFFF call Arial_CD.0056A534 ; ★算法CALL★F7跟进

0057A2AC 8B55 F4 mov edx,dword ptr ss:[ebp-C] ; 获得MD5加密后的用户名代码(真注册码)

0057A2AF 8B45 F8 mov eax,dword ptr ss:[ebp-8] ; 取出假码

0057A2B2 E8 0DAFE8FF call Arial_CD.004051C4 ; ★经典比较★

0057A2B7 75 02 jnz short Arial_CD.0057A2BB ; 跳则完蛋!★完美爆破点★

0057A2B9 B3 01 mov bl,1

0057A2BB 33C0 xor eax,eax

0057A2BD 5A pop edx

0057A2BE 59 pop ecx

0057A2BF 59 pop ecx

0057A2C0 64:8910 mov dword ptr fs:[eax],edx

0057A2C3 68 DDA25700 push Arial_CD.0057A2DD

0057A2C8 8D45 F4 lea eax,dword ptr ss:[ebp-C]

0057A2CB BA 03000000 mov edx,3

0057A2D0 E8 17ABE8FF call Arial_CD.00404DEC

0057A2D5 C3 retn ; 注册验证完毕

0057A2D6 ^ E9 55A4E8FF jmp Arial_CD.00404730

0057A2DB ^ EB EB jmp short Arial_CD.0057A2C8

0057A2DD 8BC3 mov eax,ebx

0057A2DF 5B pop ebx

0057A2E0 8BE5 mov esp,ebp

0057A2E2 5D pop ebp

0057A2E3 C3 retn ; 反馈验证信息

........



========================= 跟进 0057A2A7 E8 8802FFFF call Arial_CD.0056A534 =========================



0056A534 55 push ebp ; 跟进后来到这里!(标准MD5算法)

0056A535 8BEC mov ebp,esp

0056A537 83C4 E8 add esp,-18

0056A53A 53 push ebx

0056A53B 56 push esi

0056A53C 57 push edi

0056A53D 33C9 xor ecx,ecx

0056A53F 894D EC mov dword ptr ss:[ebp-14],ecx

0056A542 894D E8 mov dword ptr ss:[ebp-18],ecx

0056A545 8BF0 mov esi,eax

0056A547 8D7D F0 lea edi,dword ptr ss:[ebp-10]

0056A54A A5 movs dword ptr es:[edi],dword ptr ds:[esi] ; 第一个标准常数:A1E9C9CC

0056A54B A5 movs dword ptr es:[edi],dword ptr ds:[esi] ; 第二个标准常数:C5112DDA

0056A54C A5 movs dword ptr es:[edi],dword ptr ds:[esi] ; 第三个标准常数:B95DCE01

0056A54D A5 movs dword ptr es:[edi],dword ptr ds:[esi] ; 第四个标准常数:E5EB4BD0

0056A54E 8BFA mov edi,edx

0056A550 33C0 xor eax,eax

0056A552 55 push ebp

0056A553 68 CFA55600 push Arial_CD.0056A5CF

0056A558 64:FF30 push dword ptr fs:[eax]

0056A55B 64:8920 mov dword ptr fs:[eax],esp

0056A55E 8BC7 mov eax,edi

0056A560 E8 63A8E9FF call Arial_CD.00404DC8

0056A565 B3 10 mov bl,10

0056A567 8D75 F0 lea esi,dword ptr ss:[ebp-10]

0056A56A FF37 push dword ptr ds:[edi] ; MD5循环运算开始

0056A56C 8D45 EC lea eax,dword ptr ss:[ebp-14]

0056A56F 33D2 xor edx,edx

0056A571 8A16 mov dl,byte ptr ds:[esi]

0056A573 C1EA 04 shr edx,4

0056A576 83E2 0F and edx,0F

0056A579 8A92 BCAD5800 mov dl,byte ptr ds:[edx 58ADBC]

0056A57F E8 24AAE9FF call Arial_CD.00404FA8

0056A584 FF75 EC push dword ptr ss:[ebp-14]

0056A587 8D45 E8 lea eax,dword ptr ss:[ebp-18]

0056A58A 8A16 mov dl,byte ptr ds:[esi]

0056A58C 80E2 0F and dl,0F

0056A58F 81E2 FF000000 and edx,0FF

0056A595 8A92 BCAD5800 mov dl,byte ptr ds:[edx 58ADBC]

0056A59B E8 08AAE9FF call Arial_CD.00404FA8

0056A5A0 FF75 E8 push dword ptr ss:[ebp-18]

0056A5A3 8BC7 mov eax,edi

0056A5A5 BA 03000000 mov edx,3

0056A5AA E8 91ABE9FF call Arial_CD.00405140

0056A5AF 46 inc esi

0056A5B0 FECB dec bl

0056A5B2 ^ 75 B6 jnz short Arial_CD.0056A56A ; 向上循环

0056A5B4 33C0 xor eax,eax

0056A5B6 5A pop edx

0056A5B7 59 pop ecx

0056A5B8 59 pop ecx

0056A5B9 64:8910 mov dword ptr fs:[eax],edx

0056A5BC 68 D6A55600 push Arial_CD.0056A5D6

0056A5C1 8D45 E8 lea eax,dword ptr ss:[ebp-18]

0056A5C4 BA 02000000 mov edx,2

0056A5C9 E8 1EA8E9FF call Arial_CD.00404DEC

0056A5CE C3 retn ; 结束运算

0056A5CF ^ E9 5CA1E9FF jmp Arial_CD.00404730

0056A5D4 ^ EB EB jmp short Arial_CD.0056A5C1

0056A5D6 5F pop edi

0056A5D7 5E pop esi

0056A5D8 5B pop ebx

0056A5D9 8BE5 mov esp,ebp

0056A5DB 5D pop ebp

0056A5DC C3 retn ; 返回程序

........



-------------------------------------------------------------------------------------------------------------------------

【算法总结】:



注册验证非常简单:



1、注册码固定为32位。



2、用户名位数必须大于1,记为Name。



3、把用户名进行标准MD5运算转换加密后得到密钥,结果记为KEY。



4、KEY转换为小写输出,则为注册码,结果记为SN。



即:SN = LCase(MD5(Name))



【完美注册验证爆破点】:



0057A2B7 75 02 jnz short Arial_CD.0057A2BB ; nop掉!



-------------------------------------------------------------------------------------------------------------------------

【注册机】:



注册机我就不写了,太简单了。。。



BTW:这么简单的注册验证都有,真实糟蹋了MD5算法!



【注册信息】:



Enter User Name:KuNgBiM



Enter registration code:ccc9e9a1da2d11c501ce5db9d04bebe5


最新评论

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-30 03:28 , Processed in 0.322994 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

返回顶部