飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 8505|回复: 4

[原创] 一个固定码软件的分析:《MP3 Joiner 1.0586》注册分析(固定注册码)

[复制链接]
  • TA的每日心情
    开心
    2024-12-27 11:46
  • 签到天数: 33 天

    [LV.5]常住居民I

    发表于 2007-4-13 11:08:53 | 显示全部楼层 |阅读模式
    【破文标题】《MP3 Joiner 1.0586》注册分析(固定注册码)
    【破文作者】水中花
    【作者邮箱】
    【作者主页】
    破解工具】OD
    【破解平台】
    【软件名称】MP3 Joiner
    【软件大小】
    【原版下载】http://www.newhua.com/soft/45966.htm
    【保护方式】
    【软件简介】
    MP3 Joiner 是一款简单易用的把多个 MP3  文件连接成一个大的 MP3 文件的工具:

    1、 不需要重新压缩,连接速度快;

    2、 支持文件拖放连接;

    3、 连接的 MP3 文件必须是相同的压缩参数。


    【破解声明】
    ------------------------------------------------------------------------
    【破解过程】

    看到各位版主为《飘云阁论坛07版破解基础教程》电子收辛苦工作,应该好好感谢他们!
    00405390   /.  55            push ebp
    00405391   |.  8BEC          mov ebp,esp
    00405393   |.  83EC 20       sub esp,20
    00405396   |.  894D E0       mov [local.8],ecx
    00405399   |.  6A 01         push 1
    0040539B   |.  8B4D E0       mov ecx,[local.8]
    0040539E   |.  E8 18A30100   call MP3Joine.0041F6BB
    004053A3   |.  8B4D E0       mov ecx,[local.8]
    004053A6   |.  83C1 70       add ecx,70
    004053A9   |.  E8 F2F4FFFF   call MP3Joine.004048A0   获取用用户名长度
    004053AE   |.  83F8 02       cmp eax,2         用户名升序必须大于2个字符
    004053B1   |.  7D 13         jge short MP3Joine.004053C6
    004053B3   |.  6A 00         push 0
    004053B5   |.  6A 00         push 0
    004053B7   |.  68 5CC14200   push MP3Joine.0042C15C               ;  ASCII "Please input correct User
    Name!"
    004053BC   |.  E8 04FE0100   call MP3Joine.004251C5
    004053C1   |.  E9 A9020000   jmp MP3Joine.0040566F
    004053C6   |>  8B4D E0       mov ecx,[local.8]
    004053C9   |.  83C1 74       add ecx,74
    004053CC   |.  E8 CFF4FFFF   call MP3Joine.004048A0  获取注册码长度
    004053D1   |.  83F8 08       cmp eax,8         注册码长度必须大于8个字符
    004053D4   |.  7D 13         jge short MP3Joine.004053E9
    004053D6   |.  6A 00         push 0
    004053D8   |.  6A 00         push 0
    004053DA   |.  68 7CC14200   push MP3Joine.0042C17C               ;  ASCII "Please input correct
    Registration Code!"
    004053DF   |.  E8 E1FD0100   call MP3Joine.004251C5
    004053E4   |.  E9 86020000   jmp MP3Joine.0040566F
    这以下的运算是作者故意做,没实际意义。
    004053E9   |>  6A 00         push 0                               ; /Arg1 = 00000000
    004053EB   |.  8B4D E0       mov ecx,[local.8]                    ; |
    004053EE   |.  83C1 70       add ecx,70                           ; |
    004053F1   |.  E8 5AEBFFFF   call MP3Joine.00403F50       \MP3Joine.00403F50
    004053F6   |.  8845 EF       mov byte ptr ss:[ebp-11],al 
    004053F9   |.  6A 01         push 1                               ; /Arg1 = 00000001
    004053FB   |.  8B4D E0       mov ecx,[local.8]                    ; |
    004053FE   |.  83C1 70       add ecx,70                           ; |
    00405401   |.  E8 4AEBFFFF   call MP3Joine.00403F50   \MP3Joine.00403F50
    00405406   |.  8845 F8       mov byte ptr ss:[ebp-8],al  
    00405409   |.  6A 00         push 0                               ; /Arg1 = 00000000
    0040540B   |.  8B4D E0       mov ecx,[local.8]                    ; |
    0040540E   |.  83C1 70       add ecx,70                           ; |
    00405411   |.  E8 3AEBFFFF   call MP3Joine.00403F50    \MP3Joine.00403F50
    00405416   |.  8845 FF       mov byte ptr ss:[ebp-1],al
    00405419   |.  6A 01         push 1                               ; /Arg1 = 00000001
    0040541B   |.  8B4D E0       mov ecx,[local.8]                    ; |
    0040541E   |.  83C1 70       add ecx,70                           ; |
    00405421   |.  E8 2AEBFFFF   call MP3Joine.00403F50    \MP3Joine.00403F50
    00405426   |.  8845 FA       mov byte ptr ss:[ebp-6],al
    00405429   |.  0FB645 EF     movzx eax,byte ptr ss:[ebp-11]
    0040542D   |.  83C8 4D       or eax,4D
    00405430   |.  8845 EF       mov byte ptr ss:[ebp-11],al
    00405433   |.  0FB64D F8     movzx ecx,byte ptr ss:[ebp-8]
    00405437   |.  83C9 50       or ecx,50
    0040543A   |.  884D F8       mov byte ptr ss:[ebp-8],cl
    0040543D   |.  0FB655 FF     movzx edx,byte ptr ss:[ebp-1]
    00405441   |.  83CA 33       or edx,33
    00405444   |.  8855 FF       mov byte ptr ss:[ebp-1],dl
    00405447   |.  0FB645 FA     movzx eax,byte ptr ss:[ebp-6]
    0040544B   |.  83C8 4A       or eax,4A
    0040544E   |.  8845 FA       mov byte ptr ss:[ebp-6],al
    00405451   |.  0FB645 EF     movzx eax,byte ptr ss:[ebp-11]
    00405455   |.  99            cdq
    00405456   |.  B9 0A000000   mov ecx,0A
    0040545B   |.  F7F9          idiv ecx
    0040545D   |.  8855 EF       mov byte ptr ss:[ebp-11],dl
    00405460   |.  0FB645 F8     movzx eax,byte ptr ss:[ebp-8]
    00405464   |.  99            cdq
    00405465   |.  B9 0A000000   mov ecx,0A
    0040546A   |.  F7F9          idiv ecx
    0040546C   |.  8855 F8       mov byte ptr ss:[ebp-8],dl
    0040546F   |.  0FB645 FF     movzx eax,byte ptr ss:[ebp-1]
    00405473   |.  99            cdq
    00405474   |.  B9 0A000000   mov ecx,0A
    00405479   |.  F7F9          idiv ecx
    0040547B   |.  8855 FF       mov byte ptr ss:[ebp-1],dl
    0040547E   |.  0FB645 FA     movzx eax,byte ptr ss:[ebp-6]
    00405482   |.  99            cdq
    00405483   |.  B9 0A000000   mov ecx,0A
    00405488   |.  F7F9          idiv ecx
    0040548A   |.  8855 FA       mov byte ptr ss:[ebp-6],dl
    0040548D   |.  C745 F0 00000>mov [local.4],0
    00405494   |.  C745 E8 00000>mov [local.6],0
    0040549B   |.  EB 09         jmp short MP3Joine.004054A6
    0040549D   |>  8B55 E8       /mov edx,[local.6]
    004054A0   |.  83C2 01       |add edx,1
    004054A3   |.  8955 E8       |mov [local.6],edx
    004054A6   |>  8B4D E0        mov ecx,[local.8]
    004054A9   |.  83C1 70       |add ecx,70
    004054AC   |.  E8 EFF3FFFF   |call MP3Joine.004048A0
    004054B1   |.  3945 E8       |cmp [local.6],eax
    004054B4   |.  7D 1E         |jge short MP3Joine.004054D4
    004054B6   |.  8B45 E8       |mov eax,[local.6]
    004054B9   |.  50            |push eax                            ; /Arg1
    004054BA   |.  8B4D E0       |mov ecx,[local.8]                   ; |
    004054BD   |.  83C1 70       |add ecx,70                          ; |
    004054C0   |.  E8 8BEAFFFF   |call MP3Joine.00403F50              ; \MP3Joine.00403F50
    004054C5   |.  8845 E7       |mov byte ptr ss:[ebp-19],al
    004054C8   |.  0FB64D E7     |movzx ecx,byte ptr ss:[ebp-19]
    004054CC   |.  034D F0       |add ecx,[local.4]
    004054CF   |.  894D F0       |mov [local.4],ecx
    004054D2   |.^ EB C9         \jmp short MP3Joine.0040549D
    004054D4   |>  8B45 F0       mov eax,[local.4]
    004054D7   |.  99            cdq
    004054D8   |.  B9 0A000000   mov ecx,0A
    004054DD   |.  F7F9          idiv ecx
    004054DF   |.  8855 F4       mov byte ptr ss:[ebp-C],dl
    004054E2   |.  6A 00         push 0                               ; /Arg1 = 00000000
    004054E4   |.  8B4D E0       mov ecx,[local.8]                    ; |
    004054E7   |.  83C1 74       add ecx,74                           ; |
    004054EA   |.  E8 61EAFFFF   call MP3Joine.00403F50               ; \MP3Joine.00403F50
    004054EF   |.  8845 FC       mov byte ptr ss:[ebp-4],al
    004054F2   |.  6A 01         push 1                               ; /Arg1 = 00000001
    004054F4   |.  8B4D E0       mov ecx,[local.8]                    ; |
    004054F7   |.  83C1 74       add ecx,74                           ; |
    004054FA   |.  E8 51EAFFFF   call MP3Joine.00403F50               ; \MP3Joine.00403F50
    004054FF   |.  8845 FD       mov byte ptr ss:[ebp-3],al
    00405502   |.  6A 02         push 2                               ; /Arg1 = 00000002
    00405504   |.  8B4D E0       mov ecx,[local.8]                    ; |
    00405507   |.  83C1 74       add ecx,74                           ; |
    0040550A   |.  E8 41EAFFFF   call MP3Joine.00403F50               ; \MP3Joine.00403F50
    0040550F   |.  8845 F6       mov byte ptr ss:[ebp-A],al
    00405512   |.  6A 03         push 3                               ; /Arg1 = 00000003
    00405514   |.  8B4D E0       mov ecx,[local.8]                    ; |
    00405517   |.  83C1 74       add ecx,74                           ; |
    0040551A   |.  E8 31EAFFFF   call MP3Joine.00403F50               ; \MP3Joine.00403F50
    0040551F   |.  8845 F5       mov byte ptr ss:[ebp-B],al
    00405522   |.  6A 04         push 4                               ; /Arg1 = 00000004
    00405524   |.  8B4D E0       mov ecx,[local.8]                    ; |
    00405527   |.  83C1 74       add ecx,74                           ; |
    0040552A   |.  E8 21EAFFFF   call MP3Joine.00403F50               ; \MP3Joine.00403F50
    0040552F   |.  8845 F9       mov byte ptr ss:[ebp-7],al
    00405532   |.  6A 05         push 5                               ; /Arg1 = 00000005
    00405534   |.  8B4D E0       mov ecx,[local.8]                    ; |
    00405537   |.  83C1 74       add ecx,74                           ; |
    0040553A   |.  E8 11EAFFFF   call MP3Joine.00403F50               ; \MP3Joine.00403F50
    0040553F   |.  8845 F7       mov byte ptr ss:[ebp-9],al
    00405542   |.  6A 06         push 6                               ; /Arg1 = 00000006
    00405544   |.  8B4D E0       mov ecx,[local.8]                    ; |
    00405547   |.  83C1 74       add ecx,74                           ; |
    0040554A   |.  E8 01EAFFFF   call MP3Joine.00403F50               ; \MP3Joine.00403F50
    0040554F   |.  8845 FE       mov byte ptr ss:[ebp-2],al
    00405552   |.  6A 07         push 7                               ; /Arg1 = 00000007
    00405554   |.  8B4D E0       mov ecx,[local.8]                    ; |
    00405557   |.  83C1 74       add ecx,74                           ; |
    0040555A   |.  E8 F1E9FFFF   call MP3Joine.00403F50               ; \MP3Joine.00403F50
    0040555F   |.  8845 FB       mov byte ptr ss:[ebp-5],al
    00405562   |.  0FB655 EF     movzx edx,byte ptr ss:[ebp-11]
    00405566   |.  0FB645 FC     movzx eax,byte ptr ss:[ebp-4]
    0040556A   |.  83E8 30       sub eax,30
    0040556D   |.  3BD0          cmp edx,eax
    0040556F   |.  75 3C         jnz short MP3Joine.004055AD
    00405571   |.  0FB64D F8     movzx ecx,byte ptr ss:[ebp-8]
    00405575   |.  0FB655 FD     movzx edx,byte ptr ss:[ebp-3]
    00405579   |.  83EA 30       sub edx,30
    0040557C   |.  3BCA          cmp ecx,edx
    0040557E   |.  75 2D         jnz short MP3Joine.004055AD
    00405580   |.  0FB645 FF     movzx eax,byte ptr ss:[ebp-1]
    00405584   |.  0FB64D F6     movzx ecx,byte ptr ss:[ebp-A]
    00405588   |.  83E9 30       sub ecx,30
    0040558B   |.  3BC1          cmp eax,ecx
    0040558D   |.  75 1E         jnz short MP3Joine.004055AD
    0040558F   |.  0FB655 FA     movzx edx,byte ptr ss:[ebp-6]
    00405593   |.  0FB645 F5     movzx eax,byte ptr ss:[ebp-B]
    00405597   |.  83E8 30       sub eax,30
    0040559A   |.  3BD0          cmp edx,eax
    0040559C   |.  75 0F         jnz short MP3Joine.004055AD
    0040559E   |.  0FB64D F4     movzx ecx,byte ptr ss:[ebp-C]
    004055A2   |.  0FB655 F9     movzx edx,byte ptr ss:[ebp-7]
    004055A6   |.  83EA 30       sub edx,30
    004055A9   |.  3BCA          cmp ecx,edx
    004055AB   |.  74 58         je short MP3Joine.00405605
    这下面才是输入的假码与真码比较
    004055AD   |>  0FB645 FC     movzx eax,byte ptr ss:[ebp-4] 提取假码的第一个字符
    004055B1   |.  83F8 35       cmp eax,35           与“5”比较
    004055B4   |.  0F85 A7000000 jnz MP3Joine.00405661     不等跳向错误
    004055BA   |.  0FB64D FD     movzx ecx,byte ptr ss:[ebp-3] 提取假码的第二个字符
    004055BE   |.  83F9 35       cmp ecx,35          与“5”比较
    004055C1   |.  0F85 9A000000 jnz MP3Joine.00405661
    004055C7   |.  0FB655 F6     movzx edx,byte ptr ss:[ebp-A] 提取假码的第三个字符
    004055CB   |.  83FA 38       cmp edx,38          与“8”比较
    004055CE   |.  0F85 8D000000 jnz MP3Joine.00405661
    004055D4   |.  0FB645 F5     movzx eax,byte ptr ss:[ebp-B]  提取假码的第四个字符
    004055D8   |.  83F8 35       cmp eax,35          与“5”比较
    004055DB   |.  0F85 80000000 jnz MP3Joine.00405661
    004055E1   |.  0FB64D F9     movzx ecx,byte ptr ss:[ebp-7] 提取假码的第五个字符
    004055E5   |.  83F9 36       cmp ecx,36          与“6”比较
    004055E8   |.  75 77         jnz short MP3Joine.00405661
    004055EA   |.  0FB655 F7     movzx edx,byte ptr ss:[ebp-9] 提取假码的第六个字符
    004055EE   |.  83FA 37       cmp edx,37          与“7”比较
    004055F1   |.  75 6E         jnz short MP3Joine.00405661
    004055F3   |.  0FB645 FE     movzx eax,byte ptr ss:[ebp-2] 提取假码的第七个字符
    004055F7   |.  83F8 36       cmp eax,36          与“6”比较
    004055FA   |.  75 65         jnz short MP3Joine.00405661
    004055FC   |.  0FB64D FB     movzx ecx,byte ptr ss:[ebp-5] 提取假码的第八个字符
    00405600   |.  83F9 35       cmp ecx,35          与“5”比较
    00405603   |.  75 5C         jnz short MP3Joine.00405661
    00405605   |>  6A 00         push 0
    00405607   |.  6A 00         push 0
    00405609   |.  68 A4C14200   push MP3Joine.0042C1A4               ;  ASCII "Registration has succeeded!"
    0040560E   |.  E8 B2FB0100   call MP3Joine.004251C5
    00405613   |.  8B4D E0       mov ecx,[local.8]
    00405616   |.  83C1 70       add ecx,70
    00405619   |.  E8 A2F6FFFF   call MP3Joine.00404CC0
    0040561E   |.  50            push eax
    0040561F   |.  68 C0C14200   push MP3Joine.0042C1C0               ;  ASCII "username"
    00405624   |.  68 CCC14200   push MP3Joine.0042C1CC               ;  ASCII "Option"
    00405629   |.  E8 02EDFFFF   call MP3Joine.00404330
    0040562E   |.  8BC8          mov ecx,eax                          ; |
    00405630   |.  E8 CCFC0100   call MP3Joine.00425301               ; \MP3Joine.00425301
    00405635   |.  8B4D E0       mov ecx,[local.8]
    00405638   |.  83C1 74       add ecx,74
    0040563B   |.  E8 80F6FFFF   call MP3Joine.00404CC0
    00405640   |.  50            push eax
    00405641   |.  68 D4C14200   push MP3Joine.0042C1D4               ;  ASCII "registration_code"
    00405646   |.  68 E8C14200   push MP3Joine.0042C1E8               ;  ASCII "Option"
    0040564B   |.  E8 E0ECFFFF   call MP3Joine.00404330
    00405650   |.  8BC8          mov ecx,eax                          ; |
    00405652   |.  E8 AAFC0100   call MP3Joine.00425301               ; \MP3Joine.00425301
    00405657   |.  8B4D E0       mov ecx,[local.8]
    0040565A   |.  E8 108A0100   call MP3Joine.0041E06F
    0040565F   |.  EB 0E         jmp short MP3Joine.0040566F
    00405661   |>  6A 00         push 0
    00405663   |.  6A 00         push 0
    00405665   |.  68 F0C14200   push MP3Joine.0042C1F0               ;  ASCII "Registration failed!"
    0040566A   |.  E8 56FB0100   call MP3Joine.004251C5
    0040566F   |>  8BE5          mov esp,ebp
    00405671   |.  5D            pop ebp
    00405672   \.  C3            retn


    ------------------------------------------------------------------------
    【破解总结】

    这个软件是个固定码比较,比较简单,看到教程目录里有个固定码这个篇程,就把它贴出来了!
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2017-8-31 14:43
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2007-4-13 11:22:21 | 显示全部楼层
    不错....这类软件太多.....
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-4-14 13:43:58 | 显示全部楼层
    不错!/:01 /:01 /:01
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2018-3-21 14:16
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2007-4-15 21:43:16 | 显示全部楼层
    谢谢分享,学习了!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-4-15 22:37:48 | 显示全部楼层
    不错,又学到一招了!
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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