水中花 发表于 2007-4-13 11:08:53

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

【破文标题】《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 ,ecx
00405399   |.6A 01         push 1
0040539B   |.8B4D E0       mov ecx,
0040539E   |.E8 18A30100   call MP3Joine.0041F6BB
004053A3   |.8B4D E0       mov ecx,
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,
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,                  ; |
004053EE   |.83C1 70       add ecx,70                           ; |
004053F1   |.E8 5AEBFFFF   call MP3Joine.00403F50       \MP3Joine.00403F50
004053F6   |.8845 EF       mov byte ptr ss:,al 
004053F9   |.6A 01         push 1                               ; /Arg1 = 00000001
004053FB   |.8B4D E0       mov ecx,                  ; |
004053FE   |.83C1 70       add ecx,70                           ; |
00405401   |.E8 4AEBFFFF   call MP3Joine.00403F50   \MP3Joine.00403F50
00405406   |.8845 F8       mov byte ptr ss:,al  
00405409   |.6A 00         push 0                               ; /Arg1 = 00000000
0040540B   |.8B4D E0       mov ecx,                  ; |
0040540E   |.83C1 70       add ecx,70                           ; |
00405411   |.E8 3AEBFFFF   call MP3Joine.00403F50    \MP3Joine.00403F50
00405416   |.8845 FF       mov byte ptr ss:,al
00405419   |.6A 01         push 1                               ; /Arg1 = 00000001
0040541B   |.8B4D E0       mov ecx,                  ; |
0040541E   |.83C1 70       add ecx,70                           ; |
00405421   |.E8 2AEBFFFF   call MP3Joine.00403F50    \MP3Joine.00403F50
00405426   |.8845 FA       mov byte ptr ss:,al
00405429   |.0FB645 EF   movzx eax,byte ptr ss:
0040542D   |.83C8 4D       or eax,4D
00405430   |.8845 EF       mov byte ptr ss:,al
00405433   |.0FB64D F8   movzx ecx,byte ptr ss:
00405437   |.83C9 50       or ecx,50
0040543A   |.884D F8       mov byte ptr ss:,cl
0040543D   |.0FB655 FF   movzx edx,byte ptr ss:
00405441   |.83CA 33       or edx,33
00405444   |.8855 FF       mov byte ptr ss:,dl
00405447   |.0FB645 FA   movzx eax,byte ptr ss:
0040544B   |.83C8 4A       or eax,4A
0040544E   |.8845 FA       mov byte ptr ss:,al
00405451   |.0FB645 EF   movzx eax,byte ptr ss:
00405455   |.99            cdq
00405456   |.B9 0A000000   mov ecx,0A
0040545B   |.F7F9          idiv ecx
0040545D   |.8855 EF       mov byte ptr ss:,dl
00405460   |.0FB645 F8   movzx eax,byte ptr ss:
00405464   |.99            cdq
00405465   |.B9 0A000000   mov ecx,0A
0040546A   |.F7F9          idiv ecx
0040546C   |.8855 F8       mov byte ptr ss:,dl
0040546F   |.0FB645 FF   movzx eax,byte ptr ss:
00405473   |.99            cdq
00405474   |.B9 0A000000   mov ecx,0A
00405479   |.F7F9          idiv ecx
0040547B   |.8855 FF       mov byte ptr ss:,dl
0040547E   |.0FB645 FA   movzx eax,byte ptr ss:
00405482   |.99            cdq
00405483   |.B9 0A000000   mov ecx,0A
00405488   |.F7F9          idiv ecx
0040548A   |.8855 FA       mov byte ptr ss:,dl
0040548D   |.C745 F0 00000>mov ,0
00405494   |.C745 E8 00000>mov ,0
0040549B   |.EB 09         jmp short MP3Joine.004054A6
0040549D   |>8B55 E8       /mov edx,
004054A0   |.83C2 01       |add edx,1
004054A3   |.8955 E8       |mov ,edx
004054A6   |>8B4D E0      mov ecx,
004054A9   |.83C1 70       |add ecx,70
004054AC   |.E8 EFF3FFFF   |call MP3Joine.004048A0
004054B1   |.3945 E8       |cmp ,eax
004054B4   |.7D 1E         |jge short MP3Joine.004054D4
004054B6   |.8B45 E8       |mov eax,
004054B9   |.50            |push eax                            ; /Arg1
004054BA   |.8B4D E0       |mov ecx,                   ; |
004054BD   |.83C1 70       |add ecx,70                        ; |
004054C0   |.E8 8BEAFFFF   |call MP3Joine.00403F50            ; \MP3Joine.00403F50
004054C5   |.8845 E7       |mov byte ptr ss:,al
004054C8   |.0FB64D E7   |movzx ecx,byte ptr ss:
004054CC   |.034D F0       |add ecx,
004054CF   |.894D F0       |mov ,ecx
004054D2   |.^ EB C9         \jmp short MP3Joine.0040549D
004054D4   |>8B45 F0       mov eax,
004054D7   |.99            cdq
004054D8   |.B9 0A000000   mov ecx,0A
004054DD   |.F7F9          idiv ecx
004054DF   |.8855 F4       mov byte ptr ss:,dl
004054E2   |.6A 00         push 0                               ; /Arg1 = 00000000
004054E4   |.8B4D E0       mov ecx,                  ; |
004054E7   |.83C1 74       add ecx,74                           ; |
004054EA   |.E8 61EAFFFF   call MP3Joine.00403F50               ; \MP3Joine.00403F50
004054EF   |.8845 FC       mov byte ptr ss:,al
004054F2   |.6A 01         push 1                               ; /Arg1 = 00000001
004054F4   |.8B4D E0       mov ecx,                  ; |
004054F7   |.83C1 74       add ecx,74                           ; |
004054FA   |.E8 51EAFFFF   call MP3Joine.00403F50               ; \MP3Joine.00403F50
004054FF   |.8845 FD       mov byte ptr ss:,al
00405502   |.6A 02         push 2                               ; /Arg1 = 00000002
00405504   |.8B4D E0       mov ecx,                  ; |
00405507   |.83C1 74       add ecx,74                           ; |
0040550A   |.E8 41EAFFFF   call MP3Joine.00403F50               ; \MP3Joine.00403F50
0040550F   |.8845 F6       mov byte ptr ss:,al
00405512   |.6A 03         push 3                               ; /Arg1 = 00000003
00405514   |.8B4D E0       mov ecx,                  ; |
00405517   |.83C1 74       add ecx,74                           ; |
0040551A   |.E8 31EAFFFF   call MP3Joine.00403F50               ; \MP3Joine.00403F50
0040551F   |.8845 F5       mov byte ptr ss:,al
00405522   |.6A 04         push 4                               ; /Arg1 = 00000004
00405524   |.8B4D E0       mov ecx,                  ; |
00405527   |.83C1 74       add ecx,74                           ; |
0040552A   |.E8 21EAFFFF   call MP3Joine.00403F50               ; \MP3Joine.00403F50
0040552F   |.8845 F9       mov byte ptr ss:,al
00405532   |.6A 05         push 5                               ; /Arg1 = 00000005
00405534   |.8B4D E0       mov ecx,                  ; |
00405537   |.83C1 74       add ecx,74                           ; |
0040553A   |.E8 11EAFFFF   call MP3Joine.00403F50               ; \MP3Joine.00403F50
0040553F   |.8845 F7       mov byte ptr ss:,al
00405542   |.6A 06         push 6                               ; /Arg1 = 00000006
00405544   |.8B4D E0       mov ecx,                  ; |
00405547   |.83C1 74       add ecx,74                           ; |
0040554A   |.E8 01EAFFFF   call MP3Joine.00403F50               ; \MP3Joine.00403F50
0040554F   |.8845 FE       mov byte ptr ss:,al
00405552   |.6A 07         push 7                               ; /Arg1 = 00000007
00405554   |.8B4D E0       mov ecx,                  ; |
00405557   |.83C1 74       add ecx,74                           ; |
0040555A   |.E8 F1E9FFFF   call MP3Joine.00403F50               ; \MP3Joine.00403F50
0040555F   |.8845 FB       mov byte ptr ss:,al
00405562   |.0FB655 EF   movzx edx,byte ptr ss:
00405566   |.0FB645 FC   movzx eax,byte ptr ss:
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:
00405575   |.0FB655 FD   movzx edx,byte ptr ss:
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:
00405584   |.0FB64D F6   movzx ecx,byte ptr ss:
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:
00405593   |.0FB645 F5   movzx eax,byte ptr ss:
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:
004055A2   |.0FB655 F9   movzx edx,byte ptr ss:
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: 提取假码的第一个字符
004055B1   |.83F8 35       cmp eax,35           与“5”比较
004055B4   |.0F85 A7000000 jnz MP3Joine.00405661     不等跳向错误
004055BA   |.0FB64D FD   movzx ecx,byte ptr ss: 提取假码的第二个字符
004055BE   |.83F9 35       cmp ecx,35          与“5”比较
004055C1   |.0F85 9A000000 jnz MP3Joine.00405661
004055C7   |.0FB655 F6   movzx edx,byte ptr ss: 提取假码的第三个字符
004055CB   |.83FA 38       cmp edx,38          与“8”比较
004055CE   |.0F85 8D000000 jnz MP3Joine.00405661
004055D4   |.0FB645 F5   movzx eax,byte ptr ss:  提取假码的第四个字符
004055D8   |.83F8 35       cmp eax,35          与“5”比较
004055DB   |.0F85 80000000 jnz MP3Joine.00405661
004055E1   |.0FB64D F9   movzx ecx,byte ptr ss: 提取假码的第五个字符
004055E5   |.83F9 36       cmp ecx,36          与“6”比较
004055E8   |.75 77         jnz short MP3Joine.00405661
004055EA   |.0FB655 F7   movzx edx,byte ptr ss: 提取假码的第六个字符
004055EE   |.83FA 37       cmp edx,37          与“7”比较
004055F1   |.75 6E         jnz short MP3Joine.00405661
004055F3   |.0FB645 FE   movzx eax,byte ptr ss: 提取假码的第七个字符
004055F7   |.83F8 36       cmp eax,36          与“6”比较
004055FA   |.75 65         jnz short MP3Joine.00405661
004055FC   |.0FB64D FB   movzx ecx,byte ptr ss: 提取假码的第八个字符
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,
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,
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,
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


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

这个软件是个固定码比较,比较简单,看到教程目录里有个固定码这个篇程,就把它贴出来了!

playboyjin 发表于 2007-4-13 11:22:21

不错....这类软件太多.....

solfilks 发表于 2007-4-14 13:43:58

不错!/:01 /:01 /:01

coolmy 发表于 2007-4-15 21:43:16

谢谢分享,学习了!

爬爬虫 发表于 2007-4-15 22:37:48

不错,又学到一招了!
页: [1]
查看完整版本: 一个固定码软件的分析:《MP3 Joiner 1.0586》注册分析(固定注册码)