飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 10005|回复: 24

[原创] Photo Slide Show图片合成器算法分析,非常适合新手

[复制链接]
  • TA的每日心情
    无聊
    2018-7-9 18:21
  • 签到天数: 948 天

    [LV.10]以坛为家III

    发表于 2016-5-24 22:45:24 | 显示全部楼层 |阅读模式
    本帖最后由 东海浪子 于 2016-5-26 09:25 编辑

    【破文标题】Photo Slide Show图片合成器算法分析
    【破文作者】东海浪子
    【作者邮箱】
    【作者主页】
    破解工具】OD
    【破解平台】虚拟机WINXP SP3
    【软件名称】Photo Slide Show
    【软件大小】
    【原版下载】http://www.321slideshow.com/
    【软件说明】照片幻灯片可以 轻松创建幻灯片 更高的分辨率比DVD,将数码照片和视频过渡效果创建 惊人的幻灯片。
    【阅读对象】爱好破解的初学者,新手作品,有错误不足之处,恳请各位高手大神多多指正。
    【破解声明】本文仅做研究所用,供破解技术爱好者学习研究讨论。如喜欢该软件,建议购买正版。
    ------------------------------------------------------------------------
    【破解过程】1.查壳,无壳Microsoft Visual C++ v7.0
                2.通过F12暂停堆栈法,或字符串查找法都很容易定位到注册call,来到下面这段(因为是算法分析,这里不详细展开这步骤。


    [Asm] 纯文本查看 复制代码
    0041E1C0   .  64:A1 0000000>mov eax,dword ptr fs:[0]                 ;  注册入口
    0041E1C6   .  6A FF         push -0x1
    0041E1C8   .  68 F8044500   push slidesho.004504F8
    0041E1CD   .  50            push eax
    0041E1CE   .  64:8925 00000>mov dword ptr fs:[0],esp
    0041E1D5   .  83EC 18       sub esp,0x18
    0041E1D8   .  55            push ebp
    0041E1D9   .  56            push esi                                 ;  slidesho.00456B78
    0041E1DA   .  57            push edi
    0041E1DB   .  BD 01000000   mov ebp,0x1
    0041E1E0   .  55            push ebp
    0041E1E1   .  8BF1          mov esi,ecx
    0041E1E3   .  E8 72F00100   call slidesho.0043D25A
    0041E1E8   .  8B46 70       mov eax,dword ptr ds:[esi+0x70]          ;  注册名入eax
    0041E1EB   .  8B78 F4       mov edi,dword ptr ds:[eax-0xC]           ;  注册名长度入edi
    0041E1EE   .  83FF 02       cmp edi,0x2                              ;  注册名长度与2比较
    0041E1F1   .  0F8D E0000000 jge slidesho.0041E2D7                    ;  长度大于等于2跳走
    0041E1F7   .  E8 D82F0200   call slidesho.004411D4
    0041E1FC   .  8B10          mov edx,dword ptr ds:[eax]
    0041E1FE   .  8BC8          mov ecx,eax
    0041E200   .  FF52 0C       call dword ptr ds:[edx+0xC]
    0041E203   .  83C0 10       add eax,0x10
    0041E206   .  894424 18     mov dword ptr ss:[esp+0x18],eax
    0041E20A   .  6A 67         push 0x67
    0041E20C   .  8D4424 20     lea eax,dword ptr ss:[esp+0x20]
    0041E210   .  50            push eax
    0041E211   .  B9 082F4900   mov ecx,slidesho.00492F08
    0041E216   .  C74424 34 000>mov dword ptr ss:[esp+0x34],0x0
    0041E21E   .  E8 DD1BFFFF   call slidesho.0040FE00
    0041E223   .  50            push eax
    0041E224   .  8D4C24 1C     lea ecx,dword ptr ss:[esp+0x1C]
    0041E228   .  C64424 30 01  mov byte ptr ss:[esp+0x30],0x1
    0041E22D   .  E8 9E66FEFF   call slidesho.004048D0
    0041E232   .  8B4424 1C     mov eax,dword ptr ss:[esp+0x1C]
    0041E236   .  83C0 F0       add eax,-0x10
    0041E239   .  C64424 2C 00  mov byte ptr ss:[esp+0x2C],0x0
    0041E23E   .  8D48 0C       lea ecx,dword ptr ds:[eax+0xC]
    0041E241   .  83CA FF       or edx,-0x1
    0041E244   .  f0:0fc111     lock xadd dword ptr ds:[ecx],edx
    0041E248   .  4A            dec edx
    0041E249   .  85D2          test edx,edx
    0041E24B   .  7F 08         jg short slidesho.0041E255
    0041E24D   .  8B08          mov ecx,dword ptr ds:[eax]
    0041E24F   .  8B11          mov edx,dword ptr ds:[ecx]               ;  slidesho.00456BE0
    0041E251   .  50            push eax
    0041E252   .  FF52 04       call dword ptr ds:[edx+0x4]
    0041E255   >  6A 69         push 0x69
    0041E257   .  8D4424 20     lea eax,dword ptr ss:[esp+0x20]
    0041E25B   .  50            push eax
    0041E25C   .  B9 082F4900   mov ecx,slidesho.00492F08
    0041E261   .  E8 9A1BFFFF   call slidesho.0040FE00
    0041E266   .  8B00          mov eax,dword ptr ds:[eax]
    0041E268   .  8B7C24 18     mov edi,dword ptr ss:[esp+0x18]
    0041E26C   .  6A 00         push 0x0
    0041E26E   .  50            push eax
    0041E26F   .  57            push edi
    0041E270   .  8BCE          mov ecx,esi                              ;  slidesho.00456B78
    0041E272   .  C64424 38 02  mov byte ptr ss:[esp+0x38],0x2
    0041E277   .  E8 80EF0100   call slidesho.0043D1FC
    0041E27C   .  8B4424 1C     mov eax,dword ptr ss:[esp+0x1C]
    0041E280   .  83C0 F0       add eax,-0x10
    0041E283   .  C64424 2C 00  mov byte ptr ss:[esp+0x2C],0x0
    0041E288   .  8D48 0C       lea ecx,dword ptr ds:[eax+0xC]
    0041E28B   .  83CA FF       or edx,-0x1
    0041E28E   .  f0:0fc111     lock xadd dword ptr ds:[ecx],edx
    0041E292   .  4A            dec edx
    0041E293   .  85D2          test edx,edx
    0041E295   .  7F 08         jg short slidesho.0041E29F
    0041E297   .  8B08          mov ecx,dword ptr ds:[eax]
    0041E299   .  8B11          mov edx,dword ptr ds:[ecx]               ;  slidesho.00456BE0
    0041E29B   .  50            push eax
    0041E29C   .  FF52 04       call dword ptr ds:[edx+0x4]
    0041E29F   >  8D47 F0       lea eax,dword ptr ds:[edi-0x10]
    0041E2A2   .  C74424 2C FFF>mov dword ptr ss:[esp+0x2C],-0x1
    0041E2AA   .  8D48 0C       lea ecx,dword ptr ds:[eax+0xC]
    0041E2AD   .  83CA FF       or edx,-0x1
    0041E2B0   .  f0:0fc111     lock xadd dword ptr ds:[ecx],edx
    0041E2B4   .  4A            dec edx
    0041E2B5   .  85D2          test edx,edx
    0041E2B7   .  0F8F 2F040000 jg slidesho.0041E6EC
    0041E2BD   .  8B08          mov ecx,dword ptr ds:[eax]
    0041E2BF   .  8B11          mov edx,dword ptr ds:[ecx]               ;  slidesho.00456BE0
    0041E2C1   .  50            push eax
    0041E2C2   .  FF52 04       call dword ptr ds:[edx+0x4]
    0041E2C5   .  5F            pop edi                                  ;  slidesho.004405B4
    0041E2C6   .  5E            pop esi                                  ;  slidesho.004405B4
    0041E2C7   .  5D            pop ebp                                  ;  slidesho.004405B4
    0041E2C8   .  8B4C24 18     mov ecx,dword ptr ss:[esp+0x18]
    0041E2CC   .  64:890D 00000>mov dword ptr fs:[0],ecx
    0041E2D3   .  83C4 24       add esp,0x24
    0041E2D6   .  C3            retn
    0041E2D7   >  8B46 74       mov eax,dword ptr ds:[esi+0x74]          ;  注册码入eax
    0041E2DA   .  8B40 F4       mov eax,dword ptr ds:[eax-0xC]           ;  注册码长度入eax
    0041E2DD   .  83F8 08       cmp eax,0x8                              ;  注册码长度和8比较
    0041E2E0   .  53            push ebx
    0041E2E1   .  0F8D AF000000 jge slidesho.0041E396                    ;  长度大于等于8跳走
    0041E2E7   .  E8 E82E0200   call slidesho.004411D4
    0041E2EC   .  8B10          mov edx,dword ptr ds:[eax]
    0041E2EE   .  8BC8          mov ecx,eax
    0041E2F0   .  FF52 0C       call dword ptr ds:[edx+0xC]
    0041E2F3   .  83C0 10       add eax,0x10
    0041E2F6   .  894424 1C     mov dword ptr ss:[esp+0x1C],eax
    0041E2FA   .  6A 68         push 0x68
    0041E2FC   .  8D4424 24     lea eax,dword ptr ss:[esp+0x24]
    0041E300   .  BB 03000000   mov ebx,0x3
    0041E305   .  50            push eax
    0041E306   .  B9 082F4900   mov ecx,slidesho.00492F08
    0041E30B   .  895C24 38     mov dword ptr ss:[esp+0x38],ebx
    0041E30F   .  E8 EC1AFFFF   call slidesho.0040FE00
    0041E314   .  50            push eax
    0041E315   .  8D4C24 20     lea ecx,dword ptr ss:[esp+0x20]
    0041E319   .  C64424 34 04  mov byte ptr ss:[esp+0x34],0x4
    0041E31E   .  E8 AD65FEFF   call slidesho.004048D0
    0041E323   .  8B4424 20     mov eax,dword ptr ss:[esp+0x20]          ;  slidesho.0041E1C0
    0041E327   .  83C0 F0       add eax,-0x10
    0041E32A   .  885C24 30     mov byte ptr ss:[esp+0x30],bl
    0041E32E   .  8D48 0C       lea ecx,dword ptr ds:[eax+0xC]
    0041E331   .  83CA FF       or edx,-0x1
    0041E334   .  f0:0fc111     lock xadd dword ptr ds:[ecx],edx
    0041E338   .  4A            dec edx
    0041E339   .  85D2          test edx,edx
    0041E33B   .  7F 08         jg short slidesho.0041E345
    0041E33D   .  8B08          mov ecx,dword ptr ds:[eax]
    0041E33F   .  8B11          mov edx,dword ptr ds:[ecx]               ;  slidesho.00456BE0
    0041E341   .  50            push eax
    0041E342   .  FF52 04       call dword ptr ds:[edx+0x4]
    0041E345   >  6A 69         push 0x69
    0041E347   .  8D4424 24     lea eax,dword ptr ss:[esp+0x24]
    0041E34B   .  50            push eax
    0041E34C   .  B9 082F4900   mov ecx,slidesho.00492F08
    0041E351   .  E8 AA1AFFFF   call slidesho.0040FE00
    0041E356   .  8B00          mov eax,dword ptr ds:[eax]
    0041E358   .  8B7C24 1C     mov edi,dword ptr ss:[esp+0x1C]
    0041E35C   .  6A 00         push 0x0
    0041E35E   .  50            push eax
    0041E35F   .  57            push edi
    0041E360   .  8BCE          mov ecx,esi                              ;  slidesho.00456B78
    0041E362   .  C64424 3C 05  mov byte ptr ss:[esp+0x3C],0x5
    0041E367   .  E8 90EE0100   call slidesho.0043D1FC
    0041E36C   .  8B4424 20     mov eax,dword ptr ss:[esp+0x20]          ;  slidesho.0041E1C0
    0041E370   .  83C0 F0       add eax,-0x10
    0041E373   .  885C24 30     mov byte ptr ss:[esp+0x30],bl
    0041E377   .  8D48 0C       lea ecx,dword ptr ds:[eax+0xC]
    0041E37A   .  83CA FF       or edx,-0x1
    0041E37D   .  f0:0fc111     lock xadd dword ptr ds:[ecx],edx
    0041E381   .  4A            dec edx
    0041E382   .  85D2          test edx,edx
    0041E384   .  7F 08         jg short slidesho.0041E38E
    0041E386   .  8B08          mov ecx,dword ptr ds:[eax]
    0041E388   .  8B11          mov edx,dword ptr ds:[ecx]               ;  slidesho.00456BE0
    0041E38A   .  50            push eax
    0041E38B   .  FF52 04       call dword ptr ds:[edx+0x4]
    0041E38E   >  8D47 F0       lea eax,dword ptr ds:[edi-0x10]
    0041E391   .  E9 36030000   jmp slidesho.0041E6CC
    0041E396   >  8B46 70       mov eax,dword ptr ds:[esi+0x70]          ;  注册名入eax
    0041E399   .  8B48 F4       mov ecx,dword ptr ds:[eax-0xC]           ;  注册名长度入ecx
    0041E39C   .  85C9          test ecx,ecx
    0041E39E   .  7D 0A         jge short slidesho.0041E3AA              ;  大于等于跳走
    0041E3A0   .  68 57000780   push 0x80070057
    0041E3A5   .  E8 462FFEFF   call slidesho.004012F0
    0041E3AA   >  8A10          mov dl,byte ptr ds:[eax]                 ;  取注册名第1个字节ASCII码入dl
    0041E3AC   .  8B46 70       mov eax,dword ptr ds:[esi+0x70]          ;  注册名入eax
    0041E3AF   .  3968 F4       cmp dword ptr ds:[eax-0xC],ebp           ;  字节长度和ebp(1)比较
    0041E3B2   .  7D 0A         jge short slidesho.0041E3BE
    0041E3B4   .  68 57000780   push 0x80070057
    0041E3B9   .  E8 322FFEFF   call slidesho.004012F0
    0041E3BE   >  8A40 01       mov al,byte ptr ds:[eax+0x1]             ;  取注册名第2个字节入al
    0041E3C1   .  884424 11     mov byte ptr ss:[esp+0x11],al            ;  al入esp+11
    0041E3C5   .  8B46 70       mov eax,dword ptr ds:[esi+0x70]          ;  注册名入eax
    0041E3C8   .  8B48 F4       mov ecx,dword ptr ds:[eax-0xC]           ;  注册名字节长度入ecx
    0041E3CB   .  85C9          test ecx,ecx
    0041E3CD   .  7D 0A         jge short slidesho.0041E3D9
    0041E3CF   .  68 57000780   push 0x80070057
    0041E3D4   .  E8 172FFEFF   call slidesho.004012F0
    0041E3D9   >  8B4E 70       mov ecx,dword ptr ds:[esi+0x70]          ;  注册名入ecx
    0041E3DC   .  8A18          mov bl,byte ptr ds:[eax]                 ;  注册名第1个字节ascii码入bl
    0041E3DE   .  3969 F4       cmp dword ptr ds:[ecx-0xC],ebp           ;  注册名字节长度和ebp比较
    0041E3E1   .  7D 0A         jge short slidesho.0041E3ED              ;  大于等于时跳走
    0041E3E3   .  68 57000780   push 0x80070057
    0041E3E8   .  E8 032FFEFF   call slidesho.004012F0
    0041E3ED   >  0FB6C2        movzx eax,dl                             ;  注册名第1个字节入eax
    0041E3F0   .  83C8 50       or eax,0x50                              ;  和50进行or运算,结果入eax
    0041E3F3   .  99            cdq
    0041E3F4   .  BD 0A000000   mov ebp,0xA                              ;  A入ebp
    0041E3F9   .  F7FD          idiv ebp                                 ;  除以ebp(A)
    0041E3FB   .  0FB64424 11   movzx eax,byte ptr ss:[esp+0x11]         ;  注册名第2个字节ascii码入eax
    0041E400   .  83C8 48       or eax,0x48                              ;  和48进行or运算,结果入eax
    0041E403   .  885424 16     mov byte ptr ss:[esp+0x16],dl            ;  dl(6)入esp+16
    0041E407   .  99            cdq
    0041E408   .  F7FD          idiv ebp                                 ;  除以ebp(A)
    0041E40A   .  0FB6C3        movzx eax,bl                             ;  取注册名第1字节ascii码入eax
    0041E40D   .  83C8 4F       or eax,0x4F                              ;  和4F进行 or运算
    0041E410   .  8BDD          mov ebx,ebp                              ;  ebp(A)入ebx
    0041E412   .  885424 11     mov byte ptr ss:[esp+0x11],dl            ;  取dl(5)入esp+11
    0041E416   .  99            cdq
    0041E417   .  F7FB          idiv ebx                                 ;  除以ebx(A),结果放eax
    0041E419   .  0FB641 01     movzx eax,byte ptr ds:[ecx+0x1]          ;  取注册名第2个字节ascii码入eax
    0041E41D   .  83C8 54       or eax,0x54                              ;  和54进行or运算
    0041E420   .  8BCD          mov ecx,ebp                              ;  ebp(A)入ecx
    0041E422   .  885424 17     mov byte ptr ss:[esp+0x17],dl            ;  取dl(5)入esp+17
    0041E426   .  99            cdq
    0041E427   .  F7F9          idiv ecx                                 ;  除以ecx(A),结果入eax
    0041E429   .  33C0          xor eax,eax                              ;  eax清零
    0041E42B   .  33C9          xor ecx,ecx                              ;  ecx清零
    0041E42D   .  85FF          test edi,edi
    0041E42F   .  885424 18     mov byte ptr ss:[esp+0x18],dl            ;  dl(5)入esp+18
    0041E433   .  7E 1F         jle short slidesho.0041E454              ;  小于等于时跳走
    0041E435   >  85C9          test ecx,ecx
    0041E437   .  0F8C E6000000 jl slidesho.0041E523                     ;  小于时跳走
    0041E43D   .  8B56 70       mov edx,dword ptr ds:[esi+0x70]          ;  注册名入edx
    0041E440   .  3B4A F4       cmp ecx,dword ptr ds:[edx-0xC]           ;  注册名字节长度入ecx
    0041E443   .  0F8F DA000000 jg slidesho.0041E523                     ;  大于时跳走
    0041E449   .  0FB6140A      movzx edx,byte ptr ds:[edx+ecx]          ;  逐个取注册名ascii入edx
    0041E44D   .  03C2          add eax,edx                              ;  注册名字符串ascii码累加
    0041E44F   .  41            inc ecx                                  ;  计数累加器
    0041E450   .  3BCF          cmp ecx,edi                              ;  和注册名字节长度比较
    0041E452   .^ 7C E1         jl short slidesho.0041E435               ;  小于时往上跳
    0041E454   >  99            cdq
    0041E455   .  B9 0A000000   mov ecx,0xA                              ;  A入ecx
    0041E45A   .  F7F9          idiv ecx                                 ;  除以ecx(A),结果入eax
    0041E45C > .  8B46 74       mov eax,dword ptr ds:[esi+0x74]          ;  注册码入eax
    0041E45F   .  8B48 F4       mov ecx,dword ptr ds:[eax-0xC]           ;  注册码长度入ecx
    0041E462   .  85C9          test ecx,ecx
    0041E464   .  885424 19     mov byte ptr ss:[esp+0x19],dl            ;  dl(3)入esp+19
    0041E468   .  7D 0A         jge short slidesho.0041E474              ;  大于等于时跳走
    0041E46A   .  68 57000780   push 0x80070057
    0041E46F   .  E8 7C2EFEFF   call slidesho.004012F0
    0041E474   >  8A10          mov dl,byte ptr ds:[eax]                 ;  注册码第1个数ascii码入dl
    0041E476   .  8B4E 74       mov ecx,dword ptr ds:[esi+0x74]          ;  注册码入ecx
    0041E479   .  8379 F4 01    cmp dword ptr ds:[ecx-0xC],0x1           ;  注册码位数和1比较
    0041E47D   .  885424 1A     mov byte ptr ss:[esp+0x1A],dl            ;  注册码第1个数ascii码入esp+1A
    0041E481   .  7D 0A         jge short slidesho.0041E48D              ;  大于等于时跳走
    0041E483   .  68 57000780   push 0x80070057
    0041E488   .  E8 632EFEFF   call slidesho.004012F0
    0041E48D   >  8A41 01       mov al,byte ptr ds:[ecx+0x1]             ;  注册码第2个数入al
    0041E490   .  8B4E 74       mov ecx,dword ptr ds:[esi+0x74]          ;  注册码入ecx
    0041E493   .  884424 12     mov byte ptr ss:[esp+0x12],al            ;  注册码第2个数ASCII码入esp+12
    0041E497   .  8379 F4 02    cmp dword ptr ds:[ecx-0xC],0x2           ;  注册码位数和2比较
    0041E49B   .  7D 0A         jge short slidesho.0041E4A7              ;  大于等于时跳走
    0041E49D   .  68 57000780   push 0x80070057
    0041E4A2   .  E8 492EFEFF   call slidesho.004012F0
    0041E4A7   >  8A49 02       mov cl,byte ptr ds:[ecx+0x2]             ;  注册码第3个数ascii码入cl
    0041E4AA   .  884C24 13     mov byte ptr ss:[esp+0x13],cl            ;  注册码第3个数入esp+13
    0041E4AE   .  8B4E 74       mov ecx,dword ptr ds:[esi+0x74]          ;  注册码入ecx
    0041E4B1   .  8379 F4 03    cmp dword ptr ds:[ecx-0xC],0x3           ;  注册码位数和3比较
    0041E4B5   .  7D 0A         jge short slidesho.0041E4C1              ;  大于等于时跳走
    0041E4B7   .  68 57000780   push 0x80070057
    0041E4BC   .  E8 2F2EFEFF   call slidesho.004012F0
    0041E4C1   >  8A41 03       mov al,byte ptr ds:[ecx+0x3]             ;  注册码第4位入al
    0041E4C4   .  8B4E 74       mov ecx,dword ptr ds:[esi+0x74]          ;  注册码入ecx
    0041E4C7   .  884424 14     mov byte ptr ss:[esp+0x14],al            ;  注册码第4位入esp+14
    0041E4CB   .  8379 F4 04    cmp dword ptr ds:[ecx-0xC],0x4           ;  注册码位数和4比较
    0041E4CF   .  7D 0A         jge short slidesho.0041E4DB              ;  大于等于时跳走
    0041E4D1   .  68 57000780   push 0x80070057
    0041E4D6   .  E8 152EFEFF   call slidesho.004012F0
    0041E4DB   >  8A49 04       mov cl,byte ptr ds:[ecx+0x4]             ;  注册码第5位入cl
    0041E4DE   .  884C24 15     mov byte ptr ss:[esp+0x15],cl            ;  注册码第5位入esp+15
    0041E4E2   .  8B4E 74       mov ecx,dword ptr ds:[esi+0x74]          ;  注册码入ecx
    0041E4E5   .  8379 F4 05    cmp dword ptr ds:[ecx-0xC],0x5           ;  注册码位数和5比较
    0041E4E9   .  7D 0A         jge short slidesho.0041E4F5              ;  大于等于时跳走
    0041E4EB   .  68 57000780   push 0x80070057
    0041E4F0   .  E8 FB2DFEFF   call slidesho.004012F0
    0041E4F5   >  8A41 05       mov al,byte ptr ds:[ecx+0x5]             ;  注册码第6位入al
    0041E4F8   .  8B4E 74       mov ecx,dword ptr ds:[esi+0x74]          ;  注册码入ecx
    0041E4FB   .  8B79 F4       mov edi,dword ptr ds:[ecx-0xC]           ;  注册码位数入edi
    0041E4FE   .  83FF 06       cmp edi,0x6                              ;  注册码位数和6比较
    0041E501   .  884424 1B     mov byte ptr ss:[esp+0x1B],al            ;  注册码第6位入esp+1B
    0041E505   .  7D 0A         jge short slidesho.0041E511              ;  大于等于时跳走
    0041E507   .  68 57000780   push 0x80070057
    0041E50C   .  E8 DF2DFEFF   call slidesho.004012F0
    0041E511   >  8B7E 74       mov edi,dword ptr ds:[esi+0x74]          ;  注册码入edi
    0041E514   .  8B6F F4       mov ebp,dword ptr ds:[edi-0xC]           ;  注册码位数入ebp
    0041E517   .  8A41 06       mov al,byte ptr ds:[ecx+0x6]             ;  注册码第7位入al
    0041E51A   .  BB 07000000   mov ebx,0x7                              ;  7入ebx
    0041E51F   .  3BEB          cmp ebp,ebx                              ;  比较ebp(注册码数位)和ebx(7)
    0041E521   .  7D 0A         jge short slidesho.0041E52D              ;  大于等于时跳走
    0041E523   >  68 57000780   push 0x80070057
    0041E528   .  E8 C32DFEFF   call slidesho.004012F0
    0041E52D   >  8A4F 07       mov cl,byte ptr ds:[edi+0x7]             ;  注册码第8位入cl
    0041E530 > .  0FB66C24 16   movzx ebp,byte ptr ss:[esp+0x16]         ;  esp+16(6)入ebp
    0041E535   .  0FB6FA        movzx edi,dl                             ;  注册码第1位ascii码入edi
    0041E538   .  83EF 30       sub edi,0x30                             ;  edi-30(第1位注册码数字)
    0041E53B   .  3BEF          cmp ebp,edi                              ;  ebp(6)和edi(第1位注册码数)比较
    0041E53D      75 48         jnz short slidesho.0041E587              ;  不相等跳走
    0041E53F   .  0FB65424 12   movzx edx,byte ptr ss:[esp+0x12]         ;  注册码第2位ascii码入edx
    0041E544   .  0FB67C24 11   movzx edi,byte ptr ss:[esp+0x11]         ;  esp+11(5)入edi
    0041E549   .  83EA 30       sub edx,0x30                             ;  edx-30(第2位注册码数字)
    0041E54C   .  3BFA          cmp edi,edx                              ;  比较edi(5)和edx(第2位注册码数字)
    0041E54E      75 33         jnz short slidesho.0041E583              ;  不相等跳走
    0041E550   .  0FB65424 13   movzx edx,byte ptr ss:[esp+0x13]         ;  注册码第3位入edx
    0041E555   .  0FB67C24 17   movzx edi,byte ptr ss:[esp+0x17]         ;  esp+17(5)入edi
    0041E55A   .  83EA 30       sub edx,0x30                             ;  edx-30(第3位注册码数字)
    0041E55D   .  3BFA          cmp edi,edx                              ;  比较edi(5)和edx(第3位注册码数字)
    0041E55F      75 22         jnz short slidesho.0041E583              ;  不相等跳走
    0041E561   .  0FB65424 14   movzx edx,byte ptr ss:[esp+0x14]         ;  第4位注册码ascii码入edx
    0041E566   .  0FB67C24 18   movzx edi,byte ptr ss:[esp+0x18]         ;  esp+18(5)入edi
    0041E56B   .  83EA 30       sub edx,0x30                             ;  edx-30(第4位注册码数字)
    0041E56E   .  3BFA          cmp edi,edx                              ;  比较edi(5)和edx(第4位注册码数字)
    0041E570      75 11         jnz short slidesho.0041E583              ;  不相等跳走
    0041E572   .  0FB65424 15   movzx edx,byte ptr ss:[esp+0x15]         ;  第5位注册码入edx
    0041E577   .  0FB67C24 19   movzx edi,byte ptr ss:[esp+0x19]         ;  esp+19(3)入edi
    0041E57C   .  83EA 30       sub edx,0x30                             ;  edx-30(第5位注册码数字)
    0041E57F   .  3BFA          cmp edi,edx                              ;  比较edi(3)和edx(第5位注册码数字)
    0041E581      74 55         je short slidesho.0041E5D8               ;  不相等跳走
    0041E583   >  8A5424 1A     mov dl,byte ptr ss:[esp+0x1A]            ;  注册码第1位ascii码入dl
    0041E587   >  80FA 35       cmp dl,0x35                              ;  比较dl和35
    0041E58A      0F85 D7000000 jnz slidesho.0041E667                    ;  不相等跳走
    0041E590   .  807C24 12 31  cmp byte ptr ss:[esp+0x12],0x31          ;  比较注册码第2位ascii和31
    0041E595      0F85 CC000000 jnz slidesho.0041E667
    0041E59B   .  807C24 13 38  cmp byte ptr ss:[esp+0x13],0x38          ;  比较注册码第3位ascii码和38
    0041E5A0      0F85 C1000000 jnz slidesho.0041E667
    0041E5A6   .  807C24 14 39  cmp byte ptr ss:[esp+0x14],0x39          ;  比较注册码第4位ascii码和39
    0041E5AB      0F85 B6000000 jnz slidesho.0041E667
    0041E5B1   .  807C24 15 37  cmp byte ptr ss:[esp+0x15],0x37          ;  比较注册码第5位ascii码和37
    0041E5B6      0F85 AB000000 jnz slidesho.0041E667
    0041E5BC   .  807C24 1B 36  cmp byte ptr ss:[esp+0x1B],0x36          ;  比较注册码第6位ascii码和36
    0041E5C1      0F85 A0000000 jnz slidesho.0041E667
    0041E5C7   .  3C 31         cmp al,0x31                              ;  比较注册码第7位ascii码和31
    0041E5C9      0F85 98000000 jnz slidesho.0041E667
    0041E5CF   .  80F9 38       cmp cl,0x38                              ;  比较第8位注册码ascii码和38
    0041E5D2      0F85 8F000000 jnz slidesho.0041E667
    0041E5D8   >  6A 6A         push 0x6A
    0041E5DA   .  8D4424 24     lea eax,dword ptr ss:[esp+0x24]          ;  esp+24入eax
    0041E5DE   .  50            push eax
    0041E5DF   .  B9 082F4900   mov ecx,slidesho.00492F08
    0041E5E4   .  E8 1718FFFF   call slidesho.0040FE00
    0041E5E9   .  8B00          mov eax,dword ptr ds:[eax]
    0041E5EB   .  6A 00         push 0x0
    0041E5ED   .  68 386D4500   push slidesho.00456D38                   ;  OK  注册成功
    0041E5F2   .  50            push eax
    0041E5F3   .  8BCE          mov ecx,esi                              ;  slidesho.00456B78
    0041E5F5   .  C74424 3C 060>mov dword ptr ss:[esp+0x3C],0x6
    0041E5FD   .  E8 FAEB0100   call slidesho.0043D1FC
    0041E602   .  8D4C24 20     lea ecx,dword ptr ss:[esp+0x20]
    0041E606   .  C74424 30 FFF>mov dword ptr ss:[esp+0x30],-0x1
    0041E60E   .  E8 1D5DFEFF   call slidesho.00404330
    0041E613   .  8B7E 70       mov edi,dword ptr ds:[esi+0x70]          ;  注册名入edi
    0041E616   .  E8 4FCC0200   call slidesho.0044B26A
    0041E61B   .  8B40 04       mov eax,dword ptr ds:[eax+0x4]
    0041E61E   .  57            push edi
    0041E61F   .  68 C0624500   push slidesho.004562C0                   ;  username
    0041E624   .  68 F84B4500   push slidesho.00454BF8                   ;  Option
    0041E629   .  8BC8          mov ecx,eax
    0041E62B   .  E8 398B0200   call slidesho.00447169
    0041E630   .  8B7E 74       mov edi,dword ptr ds:[esi+0x74]          ;  注册码入edi
    0041E633   .  E8 32CC0200   call slidesho.0044B26A
    0041E638   .  8B40 04       mov eax,dword ptr ds:[eax+0x4]
    0041E63B   .  57            push edi
    0041E63C   .  68 AC624500   push slidesho.004562AC                   ;  registration_code
    0041E641   .  68 F84B4500   push slidesho.00454BF8                   ;  Option

    【破解总结】
    注册名大于等于2个字节,注册码大于等于8位数。注册名不参与注册码计算。
    注册码有2种算法。
    第1种是前5位数为65553,后面为XXX.
    第2种是前8位为51897618,后面为xxxx.x为任意数。
    这个软件算法比较简单,非常适合新手练习算法,就是费时较长,要有耐心。


    图片合成器6.jpg
    图片合成器.jpg
    图片合成器1.jpg
    图片合成器2.jpg
    图片合成器3.jpg
    图片合成器5.jpg

    评分

    参与人数 2飘云币 +24 收起 理由
    飞天 + 4 赞一个!
    飘云 + 20 鼓励鼓励!

    查看全部评分

    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2018-7-9 18:21
  • 签到天数: 948 天

    [LV.10]以坛为家III

     楼主| 发表于 2016-5-24 23:00:16 | 显示全部楼层
    我花了很多时间看代码里有对注册名进行的运算。但是我看到最后,好像注册名对注册码的计算没有关系。
    不知道是不是弄错了?
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2018-4-18 11:37
  • 签到天数: 42 天

    [LV.5]常住居民I

    发表于 2016-5-25 00:10:16 | 显示全部楼层
    很好                     
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2016-12-7 19:05
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2016-5-25 00:44:02 | 显示全部楼层
    新手表示很迷茫
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    7 小时前
  • 签到天数: 2108 天

    [LV.Master]伴坛终老

    发表于 2016-5-25 05:58:38 | 显示全部楼层
    学习下大牛的思路。。
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    6 小时前
  • 签到天数: 2059 天

    [LV.Master]伴坛终老

    发表于 2016-5-25 07:56:22 | 显示全部楼层
    学习一下了,膜拜会算法的
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2016-5-30 10:48
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2016-5-25 12:01:54 | 显示全部楼层
    你开始了算法之旅了啊。不错

    点评

    呵呵,慢慢学一下。以前觉得爆破好,不费时费力。搞算法很费事。爆破玩腻了,也玩玩算法,学习一下也好,虽然不会编程做注册机  详情 回复 发表于 2016-5-25 12:17
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2018-7-9 18:21
  • 签到天数: 948 天

    [LV.10]以坛为家III

     楼主| 发表于 2016-5-25 12:17:49 | 显示全部楼层
    HT-CMO 发表于 2016-5-25 12:01
    你开始了算法之旅了啊。不错

    呵呵,慢慢学一下。以前觉得爆破好,不费时费力。搞算法很费事。爆破玩腻了,也玩玩算法,学习一下也好,虽然不会编程做注册机
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    4 天前
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    发表于 2016-5-25 12:48:03 | 显示全部楼层
    不错,下一步尝试用C实现一下算法!!

    点评

    谢老大指点,是不是学C语言对初学者来说容易理解上手点  详情 回复 发表于 2016-5-25 16:00
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2018-7-9 18:21
  • 签到天数: 948 天

    [LV.10]以坛为家III

     楼主| 发表于 2016-5-25 16:00:05 | 显示全部楼层
    飘云 发表于 2016-5-25 12:48
    不错,下一步尝试用C实现一下算法!!

    谢老大指点,是不是学C语言对初学者来说容易理解上手点

    点评

    C走天下,希望你能悟到  详情 回复 发表于 2016-5-25 16:31
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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