【破文标题】Cartoon Maker 5.95算法分析
【破文作者】tianxj
【作者邮箱】tianxj_2007@126.com
【作者主页】WwW.ChiNaPYG.CoM
【破解工具】PEiD,OD
【破解平台】D-Windows XP SP2
【软件名称】Cartoon Maker 5.95
【软件大小】1049KB
【软件类别】国外软件/图像处理 
【软件语言】英文
【更新时间】2008-8-21
【原版下载】华军软件园
【保护方式】注册码
【软件简介】
    Cartoon Maker可以将照片制作成有趣和令人惊讶的卡通效果,你可以利用它为自己或家人与朋友制作卡通化的照片,它也可以加上素描的效果,让卡通画制作轻而易举。
功能介绍:
扭曲分为球形,垂直,水平,还可外扩或内收
螺旋分为顺时针,逆时针,手动操作
素描分为钢笔和铅笔
轮廓分为直线,曲线,钢笔,文本,还可以选择颜色
【破解声明】我是一只小菜鸟,偶得一点心得,愿与大家分享:)
初学破解与编程,只是感兴趣,没有其它目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------
【破解内容】
--------------------------------------------------------------
**************************************************************
一、运行程序,进行注册,输入错误的注册信息进行检测,有提示信息
"sorry!your usercode or serialnumber is wrong!"
**************************************************************
二、用PEiD对AVIMPEGConverter.exe查壳,为 Borland Delphi 6.0 - 7.0
**************************************************************
三、运行OD,打开AVIMPEGConverter.exe,右键超级字串参考查找ASCII.
发现"sorry!your usercode or serialnumber is wrong!"

代码:
004B54F8   .  55            PUSH EBP
004B54F9   .  8BEC          MOV EBP,ESP
004B54FB   .  B9 10000000   MOV ECX,10
004B5500   >  6A 00         PUSH 0
004B5502   .  6A 00         PUSH 0
004B5504   .  49            DEC ECX
004B5505   .^ 75 F9         JNZ SHORT Cartoon_.004B5500
004B5507   .  53            PUSH EBX
004B5508   .  56            PUSH ESI
004B5509   .  57            PUSH EDI
004B550A   .  8BD8          MOV EBX,EAX
004B550C   .  33C0          XOR EAX,EAX
004B550E   .  55            PUSH EBP
004B550F   .  68 DE584B00   PUSH Cartoon_.004B58DE
004B5514   .  64:FF30       PUSH DWORD PTR FS:[EAX]
004B5517   .  64:8920       MOV DWORD PTR FS:[EAX],ESP
004B551A   .  8D55 E0       LEA EDX,DWORD PTR SS:[EBP-20]
004B551D   .  8B83 00030000 MOV EAX,DWORD PTR DS:[EBX+300]
004B5523   .  E8 B470F8FF   CALL Cartoon_.0043C5DC
004B5528   .  837D E0 00    CMP DWORD PTR SS:[EBP-20],0
004B552C   .  75 15         JNZ SHORT Cartoon_.004B5543            ;  //用户码不为空则跳
004B552E   .  8B83 00030000 MOV EAX,DWORD PTR DS:[EBX+300]
004B5534   .  BA F4584B00   MOV EDX,Cartoon_.004B58F4              ;  fill in your usercode
004B5539   .  E8 CE70F8FF   CALL Cartoon_.0043C60C
004B553E   .  E9 41030000   JMP Cartoon_.004B5884
004B5543   >  8D55 DC       LEA EDX,DWORD PTR SS:[EBP-24]
004B5546   .  8B83 04030000 MOV EAX,DWORD PTR DS:[EBX+304]
004B554C   .  E8 8B70F8FF   CALL Cartoon_.0043C5DC
004B5551   .  837D DC 00    CMP DWORD PTR SS:[EBP-24],0
004B5555   .  75 15         JNZ SHORT Cartoon_.004B556C            ;  //序列号不为空则跳
004B5557   .  8B83 04030000 MOV EAX,DWORD PTR DS:[EBX+304]
004B555D   .  BA 14594B00   MOV EDX,Cartoon_.004B5914              ;  fill in serial number
004B5562   .  E8 A570F8FF   CALL Cartoon_.0043C60C
004B5567   .  E9 18030000   JMP Cartoon_.004B5884
004B556C   >  8D55 D8       LEA EDX,DWORD PTR SS:[EBP-28]
004B556F   .  8B83 00030000 MOV EAX,DWORD PTR DS:[EBX+300]
004B5575   .  E8 6270F8FF   CALL Cartoon_.0043C5DC
004B557A   .  8B45 D8       MOV EAX,DWORD PTR SS:[EBP-28]          ;  //用户码
004B557D   .  8A00          MOV AL,BYTE PTR DS:[EAX]               ;  //取用户码第1位ASC值
004B557F   .  8845 FF       MOV BYTE PTR SS:[EBP-1],AL             ;  //[EBP-1]=AL=用户码第1位ASC值
004B5582   .  8D55 D4       LEA EDX,DWORD PTR SS:[EBP-2C]
004B5585   .  8B83 00030000 MOV EAX,DWORD PTR DS:[EBX+300]
004B558B   .  E8 4C70F8FF   CALL Cartoon_.0043C5DC
004B5590   .  8B45 D4       MOV EAX,DWORD PTR SS:[EBP-2C]          ;  //用户码
004B5593   .  8A40 01       MOV AL,BYTE PTR DS:[EAX+1]             ;  //取用户码第2位ASC值
004B5596   .  8845 FE       MOV BYTE PTR SS:[EBP-2],AL             ;  //[EBP-2]=AL=用户码第2位ASC值
004B5599   .  8D55 D0       LEA EDX,DWORD PTR SS:[EBP-30]
004B559C   .  8B83 00030000 MOV EAX,DWORD PTR DS:[EBX+300]
004B55A2   .  E8 3570F8FF   CALL Cartoon_.0043C5DC
004B55A7   .  8B45 D0       MOV EAX,DWORD PTR SS:[EBP-30]          ;  //用户码
004B55AA   .  8A40 02       MOV AL,BYTE PTR DS:[EAX+2]             ;  //取用户码第3位ASC值
004B55AD   .  8845 FD       MOV BYTE PTR SS:[EBP-3],AL             ;  //[EBP-3]=AL=用户码第3位ASC值
004B55B0   .  8D55 CC       LEA EDX,DWORD PTR SS:[EBP-34]
004B55B3   .  8B83 00030000 MOV EAX,DWORD PTR DS:[EBX+300]
004B55B9   .  E8 1E70F8FF   CALL Cartoon_.0043C5DC
004B55BE   .  8B45 CC       MOV EAX,DWORD PTR SS:[EBP-34]          ;  //用户码
004B55C1   .  8A40 03       MOV AL,BYTE PTR DS:[EAX+3]             ;  //取用户码第4位ASC值
004B55C4   .  8845 FC       MOV BYTE PTR SS:[EBP-4],AL             ;  //[EBP-4]=AL=用户码第4位ASC值
004B55C7   .  8D55 C8       LEA EDX,DWORD PTR SS:[EBP-38]
004B55CA   .  8B83 00030000 MOV EAX,DWORD PTR DS:[EBX+300]
004B55D0   .  E8 0770F8FF   CALL Cartoon_.0043C5DC
004B55D5   .  8B45 C8       MOV EAX,DWORD PTR SS:[EBP-38]          ;  //用户码
004B55D8   .  8A40 04       MOV AL,BYTE PTR DS:[EAX+4]             ;  //取用户码第5位ASC值
004B55DB   .  8845 FB       MOV BYTE PTR SS:[EBP-5],AL             ;  //[EBP-5]=AL=用户码第5位ASC值
004B55DE   .  8D55 C4       LEA EDX,DWORD PTR SS:[EBP-3C]
004B55E1   .  8B83 00030000 MOV EAX,DWORD PTR DS:[EBX+300]
004B55E7   .  E8 F06FF8FF   CALL Cartoon_.0043C5DC
004B55EC   .  8B45 C4       MOV EAX,DWORD PTR SS:[EBP-3C]          ;  //用户码
004B55EF   .  8A40 05       MOV AL,BYTE PTR DS:[EAX+5]             ;  //AL=用户码第6位ASC值
004B55F2   .  33D2          XOR EDX,EDX                            ;  //EDX=0
004B55F4   .  8A55 FF       MOV DL,BYTE PTR SS:[EBP-1]             ;  //DL=[EBP-1]=用户码第1位ASC值
004B55F7   .  83C2 02       ADD EDX,2                              ;  //EDX=EDX+2
004B55FA   .  0FB675 FE     MOVZX ESI,BYTE PTR SS:[EBP-2]          ;  //ESI=[EBP-2]=用户码第2位ASC值
004B55FE   .  83C6 09       ADD ESI,9                              ;  //ESI=ESI+9
004B5601   .  33C9          XOR ECX,ECX                            ;  //ECX=0
004B5603   .  8A4D FD       MOV CL,BYTE PTR SS:[EBP-3]             ;  //CL=[EBP-3]=用户码第3位ASC值
004B5606   .  41            INC ECX                                ;  //ECX=ECX+1
004B5607   .  894D F4       MOV DWORD PTR SS:[EBP-C],ECX           ;  //[EBP-C]=ECX
004B560A   .  0FB67D FC     MOVZX EDI,BYTE PTR SS:[EBP-4]          ;  //EDI=[EBP-4]=用户码第4位ASC值
004B560E   .  83EF 04       SUB EDI,4                              ;  //EDI=EDI-4
004B5611   .  33C9          XOR ECX,ECX                            ;  //ECX=0
004B5613   .  8A4D FB       MOV CL,BYTE PTR SS:[EBP-5]             ;  //CL=[EBP-5]=用户码第5位ASC值
004B5616   .  49            DEC ECX                                ;  //ECX=ECX-1
004B5617   .  894D F0       MOV DWORD PTR SS:[EBP-10],ECX          ;  //[EBP-10]=ECX
004B561A   .  25 FF000000   AND EAX,0FF                            ;  //EAX=EAX and 0FF
004B561F   .  83C0 05       ADD EAX,5                              ;  //EAX=EAX+5
004B5622   .  8855 EF       MOV BYTE PTR SS:[EBP-11],DL            ;  //[EBP-11]=DL
004B5625   .  8BD6          MOV EDX,ESI                            ;  //EDX=ESI
004B5627   .  8855 EE       MOV BYTE PTR SS:[EBP-12],DL            ;  //[EBP-12]=DL
004B562A   .  8A55 F4       MOV DL,BYTE PTR SS:[EBP-C]             ;  //DL=[EBP-C]
004B562D   .  8855 ED       MOV BYTE PTR SS:[EBP-13],DL            ;  //[EBP-13]=DL
004B5630   .  8BD7          MOV EDX,EDI                            ;  //EDX=EDI
004B5632   .  8855 EC       MOV BYTE PTR SS:[EBP-14],DL            ;  //[EBP-14]=DL
004B5635   .  8A55 F0       MOV DL,BYTE PTR SS:[EBP-10]            ;  //DL=[EBP-10]
004B5638   .  8855 EB       MOV BYTE PTR SS:[EBP-15],DL            ;  //[EBP-15]=DL
004B563B   .  8845 EA       MOV BYTE PTR SS:[EBP-16],AL            ;  //[EBP-16]=AL
004B563E   .  8D45 B8       LEA EAX,DWORD PTR SS:[EBP-48]
004B5641   .  8A55 ED       MOV DL,BYTE PTR SS:[EBP-13]            ;  //DL=[EBP-13]
004B5644   .  8850 01       MOV BYTE PTR DS:[EAX+1],DL             ;  //[EAX+1]=DL
004B5647   .  C600 01       MOV BYTE PTR DS:[EAX],1                ;  //[EAX]=1
004B564A   .  8D55 B8       LEA EDX,DWORD PTR SS:[EBP-48]
004B564D   .  8D45 B4       LEA EAX,DWORD PTR SS:[EBP-4C]
004B5650   .  E8 83D8F4FF   CALL Cartoon_.00402ED8
004B5655   .  8D45 B0       LEA EAX,DWORD PTR SS:[EBP-50]
004B5658   .  8A55 EA       MOV DL,BYTE PTR SS:[EBP-16]            ;  //DL=[EBP-16]
004B565B   .  8850 01       MOV BYTE PTR DS:[EAX+1],DL             ;  //[EAX+1]=DL
004B565E   .  C600 01       MOV BYTE PTR DS:[EAX],1                ;  //[EAX]=1
004B5661   .  8D55 B0       LEA EDX,DWORD PTR SS:[EBP-50]
004B5664   .  8D45 B4       LEA EAX,DWORD PTR SS:[EBP-4C]
004B5667   .  B1 02         MOV CL,2
004B5669   .  E8 3AD8F4FF   CALL Cartoon_.00402EA8
004B566E   .  8D55 B4       LEA EDX,DWORD PTR SS:[EBP-4C]
004B5671   .  8D45 BC       LEA EAX,DWORD PTR SS:[EBP-44]
004B5674   .  E8 37F1F4FF   CALL Cartoon_.004047B0
004B5679   .  FF75 BC       PUSH DWORD PTR SS:[EBP-44]             ;  //取上面2个ASC值对应的字符
004B567C   .  8D55 AC       LEA EDX,DWORD PTR SS:[EBP-54]
004B567F   .  8BC6          MOV EAX,ESI                            ;  //EAX=ESI
004B5681   .  E8 7E34F5FF   CALL Cartoon_.00408B04                 ;  //取EAX的10进制字符
004B5686   .  FF75 AC       PUSH DWORD PTR SS:[EBP-54]             ;  //EAX的10进制字符
004B5689   .  8D45 A8       LEA EAX,DWORD PTR SS:[EBP-58]
004B568C   .  8A55 EB       MOV DL,BYTE PTR SS:[EBP-15]            ;  //DL=[EBP-15]
004B568F   .  E8 A0F0F4FF   CALL Cartoon_.00404734
004B5694   .  FF75 A8       PUSH DWORD PTR SS:[EBP-58]
004B5697   .  8D45 A4       LEA EAX,DWORD PTR SS:[EBP-5C]
004B569A   .  8A55 EE       MOV DL,BYTE PTR SS:[EBP-12]            ;  //DL=[EBP-12]
004B569D   .  E8 92F0F4FF   CALL Cartoon_.00404734
004B56A2   .  FF75 A4       PUSH DWORD PTR SS:[EBP-5C]
004B56A5   .  8D55 A0       LEA EDX,DWORD PTR SS:[EBP-60]
004B56A8   .  8BC7          MOV EAX,EDI                            ;  //EAX=EDI
004B56AA   .  E8 5534F5FF   CALL Cartoon_.00408B04                 ;  //取EAX的10进制字符
004B56AF   .  FF75 A0       PUSH DWORD PTR SS:[EBP-60]             ;  //EAX的10进制字符
004B56B2   .  8D45 9C       LEA EAX,DWORD PTR SS:[EBP-64]
004B56B5   .  8A55 EF       MOV DL,BYTE PTR SS:[EBP-11]            ;  //DL=[EBP-11]
004B56B8   .  E8 77F0F4FF   CALL Cartoon_.00404734
004B56BD   .  FF75 9C       PUSH DWORD PTR SS:[EBP-64]
004B56C0   .  8D45 98       LEA EAX,DWORD PTR SS:[EBP-68]
004B56C3   .  8A55 EC       MOV DL,BYTE PTR SS:[EBP-14]            ;  //DL=[EBP-14]
004B56C6   .  E8 69F0F4FF   CALL Cartoon_.00404734
004B56CB   .  FF75 98       PUSH DWORD PTR SS:[EBP-68]
004B56CE   .  8D45 C0       LEA EAX,DWORD PTR SS:[EBP-40]
004B56D1   .  BA 07000000   MOV EDX,7
004B56D6   .  E8 F1F1F4FF   CALL Cartoon_.004048CC
004B56DB   .  8B55 C0       MOV EDX,DWORD PTR SS:[EBP-40]          ;  //上面的字符全部相连
004B56DE   .  8B83 08030000 MOV EAX,DWORD PTR DS:[EBX+308]
004B56E4   .  E8 236FF8FF   CALL Cartoon_.0043C60C
004B56E9   .  8D45 94       LEA EAX,DWORD PTR SS:[EBP-6C]
004B56EC   .  50            PUSH EAX
004B56ED   .  8D55 90       LEA EDX,DWORD PTR SS:[EBP-70]
004B56F0   .  8B83 04030000 MOV EAX,DWORD PTR DS:[EBX+304]
004B56F6   .  E8 E16EF8FF   CALL Cartoon_.0043C5DC
004B56FB   .  8B45 90       MOV EAX,DWORD PTR SS:[EBP-70]          ; |//试练码
004B56FE   .  B9 08000000   MOV ECX,8                              ; |
004B5703   .  BA 01000000   MOV EDX,1                              ; |
004B5708   .  E8 1B0CF8FF   CALL Cartoon_.00436328                 ; \//取试练码的1-8位
004B570D   .  8B45 94       MOV EAX,DWORD PTR SS:[EBP-6C]          ;  //试练码的1-8位
004B5710   .  50            PUSH EAX
004B5711   .  8D45 8C       LEA EAX,DWORD PTR SS:[EBP-74]
004B5714   .  50            PUSH EAX
004B5715   .  8D55 88       LEA EDX,DWORD PTR SS:[EBP-78]
004B5718   .  8B83 08030000 MOV EAX,DWORD PTR DS:[EBX+308]
004B571E   .  E8 B96EF8FF   CALL Cartoon_.0043C5DC
004B5723   .  8B45 88       MOV EAX,DWORD PTR SS:[EBP-78]          ; |//相连字符串
004B5726   .  B9 08000000   MOV ECX,8                              ; |
004B572B   .  BA 01000000   MOV EDX,1                              ; |
004B5730   .  E8 F30BF8FF   CALL Cartoon_.00436328                 ; \//取相连字符串的1-8位,即真码
004B5735   .  8B55 8C       MOV EDX,DWORD PTR SS:[EBP-74]          ;  //真码
004B5738   .  58            POP EAX                                ;  //试练码的1-8位
004B5739   .  E8 12F2F4FF   CALL Cartoon_.00404950                 ;  //比较CALL
004B573E   .  0F85 10010000 JNZ Cartoon_.004B5854                  ;  //关键跳转
004B5744   .  8B83 FC020000 MOV EAX,DWORD PTR DS:[EBX+2FC]
004B574A   .  BA 34594B00   MOV EDX,Cartoon_.004B5934              ;  congratulation! registration is successful!
004B574F   .  E8 B86EF8FF   CALL Cartoon_.0043C60C
004B5754   .  A1 24AD4C00   MOV EAX,DWORD PTR DS:[4CAD24]
004B5759   .  8B00          MOV EAX,DWORD PTR DS:[EAX]
004B575B   .  8B80 10030000 MOV EAX,DWORD PTR DS:[EAX+310]
004B5761   .  BA 68594B00   MOV EDX,Cartoon_.004B5968              ;  registered
004B5766   .  E8 218FF9FF   CALL Cartoon_.0044E68C
004B576B   .  8B83 0C030000 MOV EAX,DWORD PTR DS:[EBX+30C]
004B5771   .  33D2          XOR EDX,EDX
004B5773   .  8B08          MOV ECX,DWORD PTR DS:[EAX]
004B5775   .  FF51 64       CALL DWORD PTR DS:[ECX+64]
004B5778   .  8B83 10030000 MOV EAX,DWORD PTR DS:[EBX+310]
004B577E   .  BA 7C594B00   MOV EDX,Cartoon_.004B597C              ;  close
004B5783   .  E8 846EF8FF   CALL Cartoon_.0043C60C
004B5788   .  A1 D0A84C00   MOV EAX,DWORD PTR DS:[4CA8D0]
004B578D   .  C600 00       MOV BYTE PTR DS:[EAX],0
004B5790   .  B2 01         MOV DL,1
004B5792   .  A1 384D4700   MOV EAX,DWORD PTR DS:[474D38]
004B5797   .  E8 9CF6FBFF   CALL Cartoon_.00474E38
004B579C   .  8945 E4       MOV DWORD PTR SS:[EBP-1C],EAX
004B579F   .  33C0          XOR EAX,EAX
004B57A1   .  55            PUSH EBP
004B57A2   .  68 4D584B00   PUSH Cartoon_.004B584D
004B57A7   .  64:FF30       PUSH DWORD PTR FS:[EAX]
004B57AA   .  64:8920       MOV DWORD PTR FS:[EAX],ESP
004B57AD   .  BA 02000080   MOV EDX,80000002
004B57B2   .  8B45 E4       MOV EAX,DWORD PTR SS:[EBP-1C]
004B57B5   .  E8 1EF7FBFF   CALL Cartoon_.00474ED8
004B57BA   .  33C9          XOR ECX,ECX
004B57BC   .  BA 8C594B00   MOV EDX,Cartoon_.004B598C              ;  \software\liangzhu\cartoonmaker
004B57C1   .  8B45 E4       MOV EAX,DWORD PTR SS:[EBP-1C]
004B57C4   .  E8 4FF8FBFF   CALL Cartoon_.00475018
004B57C9   .  84C0          TEST AL,AL
004B57CB   .  74 31         JE SHORT Cartoon_.004B57FE
004B57CD   .  8D55 84       LEA EDX,DWORD PTR SS:[EBP-7C]
004B57D0   .  83C8 FF       OR EAX,FFFFFFFF
004B57D3   .  E8 2C33F5FF   CALL Cartoon_.00408B04
004B57D8   .  8B4D 84       MOV ECX,DWORD PTR SS:[EBP-7C]
004B57DB   .  BA B4594B00   MOV EDX,Cartoon_.004B59B4              ;  times
004B57E0   .  8B45 E4       MOV EAX,DWORD PTR SS:[EBP-1C]
004B57E3   .  E8 CCF9FBFF   CALL Cartoon_.004751B4
004B57E8   .  A1 24AD4C00   MOV EAX,DWORD PTR DS:[4CAD24]
004B57ED   .  8B00          MOV EAX,DWORD PTR DS:[EAX]
004B57EF   .  8B80 10030000 MOV EAX,DWORD PTR DS:[EAX+310]
004B57F5   .  33D2          XOR EDX,EDX
004B57F7   .  E8 548FF9FF   CALL Cartoon_.0044E750
004B57FC   .  EB 39         JMP SHORT Cartoon_.004B5837
004B57FE   >  BA 8C594B00   MOV EDX,Cartoon_.004B598C              ;  \software\liangzhu\cartoonmaker
004B5803   .  8B45 E4       MOV EAX,DWORD PTR SS:[EBP-1C]
004B5806   .  E8 31F7FBFF   CALL Cartoon_.00474F3C
004B580B   .  BA 8C594B00   MOV EDX,Cartoon_.004B598C              ;  \software\liangzhu\cartoonmaker
004B5810   .  B1 01         MOV CL,1
004B5812   .  8B45 E4       MOV EAX,DWORD PTR SS:[EBP-1C]
004B5815   .  E8 FEF7FBFF   CALL Cartoon_.00475018
004B581A   .  8D55 80       LEA EDX,DWORD PTR SS:[EBP-80]
004B581D   .  B8 01000000   MOV EAX,1
004B5822   .  E8 DD32F5FF   CALL Cartoon_.00408B04
004B5827   .  8B4D 80       MOV ECX,DWORD PTR SS:[EBP-80]
004B582A   .  BA B4594B00   MOV EDX,Cartoon_.004B59B4              ;  times
004B582F   .  8B45 E4       MOV EAX,DWORD PTR SS:[EBP-1C]
004B5832   .  E8 7DF9FBFF   CALL Cartoon_.004751B4
004B5837   >  33C0          XOR EAX,EAX
004B5839   .  5A            POP EDX
004B583A   .  59            POP ECX
004B583B   .  59            POP ECX
004B583C   .  64:8910       MOV DWORD PTR FS:[EAX],EDX
004B583F   .  68 84584B00   PUSH Cartoon_.004B5884
004B5844   >  8B45 E4       MOV EAX,DWORD PTR SS:[EBP-1C]
004B5847   .  E8 F4DEF4FF   CALL Cartoon_.00403740
004B584C   .  C3            RETN
004B584D   .^ E9 82E6F4FF   JMP Cartoon_.00403ED4
004B5852   .^ EB F0         JMP SHORT Cartoon_.004B5844
004B5854   >  8B83 FC020000 MOV EAX,DWORD PTR DS:[EBX+2FC]
004B585A   .  BA C4594B00   MOV EDX,Cartoon_.004B59C4              ;  sorry!your usercode or serialnumber is wrong!
004B585F   .  E8 A86DF8FF   CALL Cartoon_.0043C60C
004B5864   .  8B83 00030000 MOV EAX,DWORD PTR DS:[EBX+300]
004B586A   .  BA FC594B00   MOV EDX,Cartoon_.004B59FC              ;  Try again
004B586F   .  E8 986DF8FF   CALL Cartoon_.0043C60C
004B5874   .  8B83 04030000 MOV EAX,DWORD PTR DS:[EBX+304]
004B587A   .  BA FC594B00   MOV EDX,Cartoon_.004B59FC              ;  Try again
004B587F   .  E8 886DF8FF   CALL Cartoon_.0043C60C
004B5884   >  33C0          XOR EAX,EAX
004B5886   .  5A            POP EDX
004B5887   .  59            POP ECX
004B5888   .  59            POP ECX
004B5889   .  64:8910       MOV DWORD PTR FS:[EAX],EDX
004B588C   .  68 E5584B00   PUSH Cartoon_.004B58E5
004B5891   >  8D45 80       LEA EAX,DWORD PTR SS:[EBP-80]
004B5894   .  BA 02000000   MOV EDX,2
004B5899   .  E8 DAECF4FF   CALL Cartoon_.00404578
004B589E   .  8D45 88       LEA EAX,DWORD PTR SS:[EBP-78]
004B58A1   .  E8 AEECF4FF   CALL Cartoon_.00404554
004B58A6   .  8D45 8C       LEA EAX,DWORD PTR SS:[EBP-74]
004B58A9   .  E8 A6ECF4FF   CALL Cartoon_.00404554
004B58AE   .  8D45 90       LEA EAX,DWORD PTR SS:[EBP-70]
004B58B1   .  E8 9EECF4FF   CALL Cartoon_.00404554
004B58B6   .  8D45 94       LEA EAX,DWORD PTR SS:[EBP-6C]
004B58B9   .  BA 07000000   MOV EDX,7
004B58BE   .  E8 B5ECF4FF   CALL Cartoon_.00404578
004B58C3   .  8D45 BC       LEA EAX,DWORD PTR SS:[EBP-44]
004B58C6   .  BA 02000000   MOV EDX,2
004B58CB   .  E8 A8ECF4FF   CALL Cartoon_.00404578
004B58D0   .  8D45 C4       LEA EAX,DWORD PTR SS:[EBP-3C]
004B58D3   .  BA 08000000   MOV EDX,8
004B58D8   .  E8 9BECF4FF   CALL Cartoon_.00404578
004B58DD   .  C3            RETN
004B58DE   .^ E9 F1E5F4FF   JMP Cartoon_.00403ED4
004B58E3   .^ EB AC         JMP SHORT Cartoon_.004B5891
004B58E5   .  5F            POP EDI
004B58E6   .  5E            POP ESI
004B58E7   .  5B            POP EBX
004B58E8   .  8BE5          MOV ESP,EBP
004B58EA   .  5D            POP EBP
004B58EB   .  C3            RETN
**************************************************************  
【破解说明】
 1、这段时间工硕的课终于上完了,继续学习《加密与解密》
 2、明明说的是一款国外软件,打开软件首先看到是中国美女刘亦菲,中国的美眉走向世界了!
--------------------------------------------------------------
【算法总结】
--------------------------------------------------------------
【算法注册机】
KeyMake作算法注册机
KeyGen.rek
.const

.data
szHomePage db "http://www.chinapyg.com",0
szEmail    db "mailto:tianxj_2007@126.com",0
szErrMess  db "输入的序列号不正确!",0
szFMT db "%d",0
szBuffer1 db 50 dup (0)
szBuffer2 db 50 dup (0)
szBuffer3 db 50 dup (0)
szBuffer4 db 50 dup (0)
szBuffer5 db 50 dup (0)
szBuffer6 db 50 dup (0)
hKey db 50 dup(0) 

.code
MOV AL,BYTE PTR DS:[EAX]               
MOV BYTE PTR SS:[EBP-1],AL             
LEA EAX,hInput1                       
MOV AL,BYTE PTR DS:[EAX+1]            
MOV BYTE PTR SS:[EBP-2],AL            
LEA EAX,hInput1                     
MOV AL,BYTE PTR DS:[EAX+2]            
MOV BYTE PTR SS:[EBP-3],AL            
LEA EAX,hInput1                       
MOV AL,BYTE PTR DS:[EAX+3]            
MOV BYTE PTR SS:[EBP-4],AL             
LEA EAX,hInput1                       
MOV AL,BYTE PTR DS:[EAX+4]             
MOV BYTE PTR SS:[EBP-5],AL             
LEA EAX,hInput1                        
MOV AL,BYTE PTR DS:[EAX+5]            
XOR EDX,EDX                            
MOV DL,BYTE PTR SS:[EBP-1]             
ADD EDX,2                              
MOVZX ESI,BYTE PTR SS:[EBP-2]          
ADD ESI,9                              
XOR ECX,ECX                           
MOV CL,BYTE PTR SS:[EBP-3]             
INC ECX                               
MOV DWORD PTR SS:[EBP-0Ch],ECX     
MOVZX EDI,BYTE PTR SS:[EBP-4]          
SUB EDI,4                              
XOR ECX,ECX                            
MOV CL,BYTE PTR SS:[EBP-5]            
DEC ECX                                
MOV DWORD PTR SS:[EBP-10h],ECX         
AND EAX,0FF                          
ADD EAX,5                             
MOV BYTE PTR SS:[EBP-11h],DL           
MOV EDX,ESI                            
MOV BYTE PTR SS:[EBP-12h],DL          
MOV DL,BYTE PTR SS:[EBP-0Ch]          
MOV BYTE PTR SS:[EBP-13h],DL           
MOV EDX,EDI                           
MOV BYTE PTR SS:[EBP-14h],DL        
MOV DL,BYTE PTR SS:[EBP-10h]          
MOV BYTE PTR SS:[EBP-15h],DL          
MOV BYTE PTR SS:[EBP-16h],AL        
MOV DL,BYTE PTR SS:[EBP-13h]           
MOV BYTE PTR SS:[szBuffer1],DL
MOV DL,BYTE PTR SS:[EBP-16h]          
MOV BYTE PTR SS:[szBuffer1+1],DL
invoke wsprintf,addr szBuffer2,addr szFMT,ESI
MOV DL,BYTE PTR SS:[EBP-15h]           
MOV BYTE PTR SS:[szBuffer3],DL
MOV DL,BYTE PTR SS:[EBP-12h]          
MOV BYTE PTR SS:[szBuffer3+1],DL
invoke wsprintf,addr szBuffer4,addr szFMT,EDI
MOV DL,BYTE PTR SS:[EBP-11h]          
MOV BYTE PTR SS:[szBuffer5],DL
MOV DL,BYTE PTR SS:[EBP-14h]           
MOV BYTE PTR SS:[szBuffer5+1],DL
;为了软件的生存发展,这里省略了几行代码;如果是学习研究,可以单独向我索要
XOR EAX,EAX
XOR EBX,EBX
tianxj:
MOV BL,BYTE PTR SS:[ESI+EAX]
MOV BYTE PTR SS:[hKey+EAX],BL
INC EAX
CMP EAX,8
jnz tianxj
LEA EAX,hKey
--------------------------------------------------------------
【内存注册机】
中断地址 004B5739
中断次数 1
第一字节 E8
指令长度 5
  
内存方式-寄存器-EDX
--------------------------------------------------------------
感谢飘云老大、猫老大、Nisy老大以及很多前辈们的学习教程以及所有帮助过我的论坛兄弟姐妹们!谢谢
--------------------------------------------------------------
【版权声明】破文是学习的手记,兴趣是成功的源泉;本破文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!