飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2451|回复: 8

Arial CD Ripper V1.4.0 注册算法分析 by KuNgBiM[DFCG]

[复制链接]
  • TA的每日心情
    开心
    2018-5-6 16:27
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2006-7-31 15:23:36 | 显示全部楼层 |阅读模式
    转自:
    http://www.chinaitpower.com/2005Nov/2005-11-17/209077.html

    【作  者】:[KuNgBiM[DFCG]
    【时  间】:[2005-11-17 14:22
    【作者邮箱】: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掉!
    -------------------------------------------------------------------------------------------------------------------------
    【算法总结】:

    注册验证非常简单:

    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

    猫:
    MD5 转换模块~提取自《[PYG]算法分析入门第十一课》
    https://www.chinapyg.com/viewthr ... &extra=page%3D1

    [ 本帖最后由 野猫III 于 2006-7-31 15:40 编辑 ]
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-8-1 18:35:53 | 显示全部楼层
    偶底子太差了~~看不懂~~支持猫兄!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    昨天 16:32
  • 签到天数: 1494 天

    [LV.10]以坛为家III

    发表于 2006-8-1 20:43:57 | 显示全部楼层
    支持猫,多出算法分析。
    PYG19周年生日快乐!
    wxh9833 该用户已被删除
    发表于 2006-8-2 11:48:49 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-1-21 17:01:13 | 显示全部楼层
    真是会者不难,难者不会,我看了半天也没明白。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-5-1 14:44
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2008-1-21 18:30:06 | 显示全部楼层
    借用工具
    1.JPG
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-1-21 19:29:31 | 显示全部楼层
    谢谢版主,版主真是热心人.
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-5-1 14:44
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2008-1-23 12:22:39 | 显示全部楼层
    原帖由 hnld 于 2008-1-21 19:29 发表
    谢谢版主,版主真是热心人.


    问问题总比灌水好
    PYG19周年生日快乐!
  • TA的每日心情
    郁闷
    2016-4-27 17:19
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2008-5-24 01:55:50 | 显示全部楼层
    辛苦了!!学习下`~
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表