- UID
 - 28352
 
 注册时间2007-2-21
阅读权限40
最后登录1970-1-1
独步武林 
   
 
 
 
TA的每日心情  | 开心 2024-5-1 14:44 | 
|---|
 
  签到天数: 2 天 [LV.1]初来乍到  
 | 
 
【破文标题】Crystal MP3 Recorder 1.00算法分析 
【破文作者】tianxj 
【作者邮箱】[email protected] 
【作者主页】www.chinapyg.com 
【破解工具】PEiD,OD 
【破解平台】Windows XP 
【软件名称】Crystal MP3 Recorder 1.00(2008-5-5版) 
【软件大小】3372KB 
【软件类别】国外软件/媒体管理   
【软件授权】共享版  
【软件语言】英文  
【原版下载】华军软件园 
【保护方式】注册码 
【软件简介】是一个易于使用和高品质的软件,一个完整的记录。与此你可以录制自己的声音,通过麦克风和音频从您的计算机(所发挥的在线研讨会从互联网上, Winamp中, Windows Media Player中,快速的时间,真正的播放器,闪存,游戏) ,以及健全从外部(转台,随身听,磁带播放器, DVD等) 。  
【破解声明】我是一只小菜鸟,偶得一点心得,愿与大家分享:) 
-------------------------------------------------------------- 
【破解内容】 
-------------------------------------------------------------- 
************************************************************** 
一、运行程序,进行注册,输入错误的注册信息进行检测,有提示信息 
"invalid register code! please retry!" 
************************************************************** 
二、用PEiD对Crystal MP3 Recorder查壳,为Borland Delphi 6.0 - 7.0  
************************************************************** 
三、用PE Explorer和DeDe查找按钮事件 
004D921C  /.  55            PUSH EBP 
============================================================== 
运行OD,打开Crystal MP3 Recorder,来到- 004D921C  /.  55            PUSH EBP
 
 - 004D921D  |.  8BEC          MOV EBP,ESP
 
 - 004D921F  |.  33C9          XOR ECX,ECX
 
 - 004D9221  |.  51            PUSH ECX
 
 - 004D9222  |.  51            PUSH ECX
 
 - 004D9223  |.  51            PUSH ECX
 
 - 004D9224  |.  51            PUSH ECX
 
 - 004D9225  |.  51            PUSH ECX
 
 - 004D9226  |.  51            PUSH ECX
 
 - 004D9227  |.  53            PUSH EBX
 
 - 004D9228  |.  56            PUSH ESI
 
 - 004D9229  |.  57            PUSH EDI
 
 - 004D922A  |.  8BF8          MOV EDI,EAX
 
 - 004D922C  |.  33C0          XOR EAX,EAX
 
 - 004D922E  |.  55            PUSH EBP
 
 - 004D922F  |.  68 23944D00   PUSH Crystal_.004D9423
 
 - 004D9234  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
 
 - 004D9237  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
 
 - 004D923A  |.  C605 504E4E00>MOV BYTE PTR DS:[4E4E50],1
 
 - 004D9241  |.  8D55 F4       LEA EDX,DWORD PTR SS:[EBP-C]
 
 - 004D9244  |.  8B87 AC030000 MOV EAX,DWORD PTR DS:[EDI+3AC]
 
 - 004D924A  |.  E8 A9A3F6FF   CALL Crystal_.004435F8
 
 - 004D924F  |.  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]             ;  //用户名
 
 - 004D9252  |.  8D55 FC       LEA EDX,DWORD PTR SS:[EBP-4]
 
 - 004D9255  |.  E8 02FBF2FF   CALL Crystal_.00408D5C
 
 - 004D925A  |.  8D55 F0       LEA EDX,DWORD PTR SS:[EBP-10]
 
 - 004D925D  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  //用户名
 
 - 004D9260  |.  E8 2BFBF2FF   CALL Crystal_.00408D90
 
 - 004D9265  |.  8B55 F0       MOV EDX,DWORD PTR SS:[EBP-10]
 
 - 004D9268  |.  8D45 FC       LEA EAX,DWORD PTR SS:[EBP-4]
 
 - 004D926B  |.  E8 F0B4F2FF   CALL Crystal_.00404760
 
 - 004D9270  |.  BB 15000000   MOV EBX,15
 
 - 004D9275  |.  BE 14344E00   MOV ESI,Crystal_.004E3414                ;  @om
 
 - 004D927A  |>  8B45 FC       /MOV EAX,DWORD PTR SS:[EBP-4]            ;  //用户名
 
 - 004D927D  |.  8B16          |MOV EDX,DWORD PTR DS:[ESI]              ;  //"VS88T6-Vs86"
 
 - 004D927F  |.  E8 40B8F2FF   |CALL Crystal_.00404AC4                  ;  //比较CALL
 
 - 004D9284  |.  75 09         |JNZ SHORT Crystal_.004D928F             ;  //不等则跳
 
 - 004D9286  |.  C605 504E4E00>|MOV BYTE PTR DS:[4E4E50],0              ;  //标志位赋值
 
 - 004D928D  |.  EB 06         |JMP SHORT Crystal_.004D9295
 
 - 004D928F  |>  83C6 04       |ADD ESI,4
 
 - 004D9292  |.  4B            |DEC EBX
 
 - 004D9293  |.^ 75 E5         \JNZ SHORT Crystal_.004D927A             ;  //循环,和内置用户名比较
 
 - 004D9295  |>  803D 504E4E00>CMP BYTE PTR DS:[4E4E50],0               ;  //关键比较
 
 - 004D929C  |.  74 1A         JE SHORT Crystal_.004D92B8               ;  //相等则跳
 
 - 004D929E  |.  6A 00         PUSH 0                                   ; /Arg1 = 00000000
 
 - 004D92A0  |.  66:8B0D 34944>MOV CX,WORD PTR DS:[4D9434]              ; |
 
 - 004D92A7  |.  B2 02         MOV DL,2                                 ; |
 
 - 004D92A9  |.  B8 40944D00   MOV EAX,Crystal_.004D9440                ; |invalid register code! please retry!
 
 - 004D92AE  |.  E8 453AF6FF   CALL Crystal_.0043CCF8                   ; \Crystal_.0043CCF8
 
 - 004D92B3  |.  E9 30010000   JMP Crystal_.004D93E8
 
 - 004D92B8  |>  8D55 EC       LEA EDX,DWORD PTR SS:[EBP-14]
 
 - 004D92BB  |.  8B87 B0030000 MOV EAX,DWORD PTR DS:[EDI+3B0]
 
 - 004D92C1  |.  E8 32A3F6FF   CALL Crystal_.004435F8
 
 - 004D92C6  |.  8B45 EC       MOV EAX,DWORD PTR SS:[EBP-14]            ;  //试练码
 
 - 004D92C9  |.  8D55 F8       LEA EDX,DWORD PTR SS:[EBP-8]
 
 - 004D92CC  |.  E8 8BFAF2FF   CALL Crystal_.00408D5C
 
 - 004D92D1  |.  8D55 E8       LEA EDX,DWORD PTR SS:[EBP-18]
 
 - 004D92D4  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]             ;  //试练码
 
 - 004D92D7  |.  E8 B4FAF2FF   CALL Crystal_.00408D90
 
 - 004D92DC  |.  8B55 E8       MOV EDX,DWORD PTR SS:[EBP-18]            ;  //试练码
 
 - 004D92DF  |.  8D45 F8       LEA EAX,DWORD PTR SS:[EBP-8]
 
 - 004D92E2  |.  E8 79B4F2FF   CALL Crystal_.00404760
 
 - 004D92E7  |.  837D FC 00    CMP DWORD PTR SS:[EBP-4],0
 
 - 004D92EB  |.  0F84 F7000000 JE Crystal_.004D93E8                     ;  //用户名为空则跳
 
 - 004D92F1  |.  837D F8 00    CMP DWORD PTR SS:[EBP-8],0
 
 - 004D92F5  |.  0F84 ED000000 JE Crystal_.004D93E8                     ;  //注册码为空则跳
 
 - 004D92FB  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]             ;  //试练码
 
 - 004D92FE  |.  E8 7DB6F2FF   CALL Crystal_.00404980                   ;  //取试练码长度
 
 - 004D9303  |.  85C0          TEST EAX,EAX
 
 - 004D9305  |.  7E 38         JLE SHORT Crystal_.004D933F              ;  //小于等于则跳
 
 - 004D9307  |.  BA 01000000   MOV EDX,1                                ;  //EDX=1
 
 - 004D930C  |>  8B4D F8       /MOV ECX,DWORD PTR SS:[EBP-8]            ;  //试练码
 
 - 004D930F  |.  0FB64C11 FF   |MOVZX ECX,BYTE PTR DS:[ECX+EDX-1]       ;  //依次取试练码ASC值
 
 - 004D9314  |.  83F9 30       |CMP ECX,30                              ;  //与30即"0"比较
 
 - 004D9317  |.  7C 08         |JL SHORT Crystal_.004D9321              ;  //小于则跳
 
 - 004D9319  |.  8B5D F8       |MOV EBX,DWORD PTR SS:[EBP-8]
 
 - 004D931C  |.  83F9 39       |CMP ECX,39                              ;  //与39即"9"比较
 
 - 004D931F  |.  7E 1A         |JLE SHORT Crystal_.004D933B             ;  //小于等于则跳
 
 - 004D9321  |>  6A 00         |PUSH 0                                  ; /Arg1 = 00000000
 
 - 004D9323  |.  66:8B0D 34944>|MOV CX,WORD PTR DS:[4D9434]             ; |
 
 - 004D932A  |.  B2 02         |MOV DL,2                                ; |
 
 - 004D932C  |.  B8 40944D00   |MOV EAX,Crystal_.004D9440               ; |invalid register code! please retry!
 
 - 004D9331  |.  E8 C239F6FF   |CALL Crystal_.0043CCF8                  ; \Crystal_.0043CCF8
 
 - 004D9336  |.  E9 AD000000   |JMP Crystal_.004D93E8
 
 - 004D933B  |>  42            |INC EDX
 
 - 004D933C  |.  48            |DEC EAX
 
 - 004D933D  |.^ 75 CD         \JNZ SHORT Crystal_.004D930C             ;  //循环,试练码是否在0~9之间
 
 - 004D933F  |>  33F6          XOR ESI,ESI                              ;  //ESI=0
 
 - 004D9341  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  //用户名
 
 - 004D9344  |.  E8 37B6F2FF   CALL Crystal_.00404980                   ;  //取用户名长度
 
 - 004D9349  |.  85C0          TEST EAX,EAX
 
 - 004D934B  |.  7E 13         JLE SHORT Crystal_.004D9360              ;  //小于等于则跳
 
 - 004D934D  |.  BB 01000000   MOV EBX,1                                ;  //EBX=1
 
 - 004D9352  |>  8B55 FC       /MOV EDX,DWORD PTR SS:[EBP-4]            ;  //用户名
 
 - 004D9355  |.  0FB6541A FF   |MOVZX EDX,BYTE PTR DS:[EDX+EBX-1]       ;  //依次取用户名ASC值
 
 - 004D935A  |.  03F2          |ADD ESI,EDX                             ;  //ESI=ESI+EDX
 
 - 004D935C  |.  43            |INC EBX                                 ;  //EBX=EBX+1
 
 - 004D935D  |.  48            |DEC EAX                                 ;  //EAX=EAX-1
 
 - 004D935E  |.^ 75 F2         \JNZ SHORT Crystal_.004D9352             ;  //不等则跳
 
 - 004D9360  |>  69C6 958D0900 IMUL EAX,ESI,98D95                       ;  //EAX=ESI*98D95
 
 - 004D9366  |.  83C0 20       ADD EAX,20                               ;  //EAX=EAX+20
 
 - 004D9369  |.  D1F8          SAR EAX,1                                ;  //EAX右移1位
 
 - 004D936B  |.  79 03         JNS SHORT Crystal_.004D9370
 
 - 004D936D  |.  83D0 00       ADC EAX,0
 
 - 004D9370  |>  8BF0          MOV ESI,EAX                              ;  //ESI=EAX
 
 - 004D9372  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]             ;  //试练码
 
 - 004D9375  |.  E8 7AFCF2FF   CALL Crystal_.00408FF4                   ;  //试练码转16进制送入EAX
 
 - 004D937A  |.  3BF0          CMP ESI,EAX                              ;  //ESI与EAX比较
 
 - 004D937C  |.  75 55         JNZ SHORT Crystal_.004D93D3              ;  //不等则跳
 
 - 004D937E  |.  6A 00         PUSH 0                                   ; /Arg1 = 00000000
 
 - 004D9380  |.  66:8B0D 34944>MOV CX,WORD PTR DS:[4D9434]              ; |
 
 - 004D9387  |.  B2 02         MOV DL,2                                 ; |
 
 - 004D9389  |.  B8 70944D00   MOV EAX,Crystal_.004D9470                ; |congratuation! you have successfully registered!
 
 - 004D938E  |.  E8 6539F6FF   CALL Crystal_.0043CCF8                   ; \Crystal_.0043CCF8
 
 - 004D9393  |.  A1 783A4E00   MOV EAX,DWORD PTR DS:[4E3A78]
 
 - 004D9398  |.  C600 01       MOV BYTE PTR DS:[EAX],1
 
 - 004D939B  |.  A1 843B4E00   MOV EAX,DWORD PTR DS:[4E3B84]
 
 - 004D93A0  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
 
 - 004D93A2  |.  33C9          XOR ECX,ECX
 
 - 004D93A4  |.  BA 04000000   MOV EDX,4
 
 - 004D93A9  |.  8B18          MOV EBX,DWORD PTR DS:[EAX]
 
 - 004D93AB  |.  FF53 10       CALL DWORD PTR DS:[EBX+10]
 
 - 004D93AE  |.  8B15 783A4E00 MOV EDX,DWORD PTR DS:[4E3A78]            ;  Crystal_.004E4E80
 
 - 004D93B4  |.  A1 843B4E00   MOV EAX,DWORD PTR DS:[4E3B84]
 
 - 004D93B9  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
 
 - 004D93BB  |.  B9 01000000   MOV ECX,1
 
 - 004D93C0  |.  E8 EF23F4FF   CALL Crystal_.0041B7B4
 
 - 004D93C5  |.  A1 08384E00   MOV EAX,DWORD PTR DS:[4E3808]
 
 - 004D93CA  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
 
 - 004D93CC  |.  E8 B36AF8FF   CALL Crystal_.0045FE84
 
 - 004D93D1  |.  EB 15         JMP SHORT Crystal_.004D93E8
 
 - 004D93D3  |>  6A 00         PUSH 0                                   ; /Arg1 = 00000000
 
 - 004D93D5  |.  66:8B0D 34944>MOV CX,WORD PTR DS:[4D9434]              ; |
 
 - 004D93DC  |.  B2 02         MOV DL,2                                 ; |
 
 - 004D93DE  |.  B8 40944D00   MOV EAX,Crystal_.004D9440                ; |invalid register code! please retry!
 
 - 004D93E3  |.  E8 1039F6FF   CALL Crystal_.0043CCF8                   ; \Crystal_.0043CCF8
 
 - 004D93E8  |>  33C0          XOR EAX,EAX
 
 - 004D93EA  |.  5A            POP EDX
 
 - 004D93EB  |.  59            POP ECX
 
 - 004D93EC  |.  59            POP ECX
 
 - 004D93ED  |.  64:8910       MOV DWORD PTR FS:[EAX],EDX
 
 - 004D93F0  |.  68 2A944D00   PUSH Crystal_.004D942A
 
 - 004D93F5  |>  8D45 E8       LEA EAX,DWORD PTR SS:[EBP-18]
 
 - 004D93F8  |.  E8 CBB2F2FF   CALL Crystal_.004046C8
 
 - 004D93FD  |.  8D45 EC       LEA EAX,DWORD PTR SS:[EBP-14]
 
 - 004D9400  |.  E8 C3B2F2FF   CALL Crystal_.004046C8
 
 - 004D9405  |.  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
 
 - 004D9408  |.  E8 BBB2F2FF   CALL Crystal_.004046C8
 
 - 004D940D  |.  8D45 F4       LEA EAX,DWORD PTR SS:[EBP-C]
 
 - 004D9410  |.  E8 B3B2F2FF   CALL Crystal_.004046C8
 
 - 004D9415  |.  8D45 F8       LEA EAX,DWORD PTR SS:[EBP-8]
 
 - 004D9418  |.  BA 02000000   MOV EDX,2
 
 - 004D941D  |.  E8 CAB2F2FF   CALL Crystal_.004046EC
 
 - 004D9422  \.  C3            RETN
 
 - 004D9423   .^ E9 24ACF2FF   JMP Crystal_.0040404C
 
 - 004D9428   .^ EB CB         JMP SHORT Crystal_.004D93F5
 
 - 004D942A   .  5F            POP EDI
 
 - 004D942B   .  5E            POP ESI
 
 - 004D942C   .  5B            POP EBX
 
 - 004D942D   .  8BE5          MOV ESP,EBP
 
 - 004D942F   .  5D            POP EBP
 
 - 004D9430   .  C3            RETN
 
  复制代码 ============================================================== 
【内置用户名】 
004D6F40  56 53 38 38 54 36 2D 56 73 38 36 00 FF FF FF FF  VS88T6-Vs86. |   
 
 
 
 |