Arial CD Ripper V1.4.0 注册算法分析
- 抓音轨和音频转换工具,能够把CD转换成MP3,WAV,OGG,FLAC,APE等文件格式,你可以在不损失质量的前提下只转换一条音轨或者转换整个光盘,软机同时具有在不同的音频格式之间互相转换的功能。
破解过程:
侦测:用PEiD查壳,无壳,Borland Delphi 6.0 - 7.0 编译。
试探:运行主程序注册,输入试炼码,确认!程序无提示!
下药:
Ollydbg载入主程序,用字符串插件查找一些关键字符,我们这里找到“Register successfully!Thankyou 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 ; 关键CALLF7跟进
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"Registersuccessfully! 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 ; 算法CALLF7跟进
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 ; 反馈验证信息
........
-
TAGS:
- 作者:管理员 时间:2009-6-21 来源:网络 人气: