一个固定码软件的分析:《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
------------------------------------------------------------------------
【破解总结】
这个软件是个固定码比较,比较简单,看到教程目录里有个固定码这个篇程,就把它贴出来了! 不错....这类软件太多..... 不错!/:01 /:01 /:01 谢谢分享,学习了! 不错,又学到一招了!
页:
[1]