飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2152|回复: 0

[08版] Picture To Video Converte 1.0算法分析

[复制链接]
  • TA的每日心情
    慵懒
    2018-2-11 09:23
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    发表于 2008-6-15 19:57:02 | 显示全部楼层 |阅读模式
    【破文标题】Picture To Video Converte 1.0算法分析
    【破文作者】冰糖[BST]
    【作者邮箱】bthulu@gmail.com
    【作者主页】http://bbs.thulu.com
    破解工具】peid0.94+OD
    【破解平台】XPsp3
    【软件名称】Picture To Video Converte 1.0
    【软件大小】992k
    【原版下载】http://www.onlinedown.net/soft/68027.htm
    【保护方式】
    【软件简介】Picture To Video Converter图片视频转换器的应用被设计为一个易于使用的工具,加入图片一起视频过渡效果。

    【破解声明】本文仅供研究学习,本人对因这篇文章而导致的一切后果,不承担任何法律责任。本文中的不足之处
    ------------------------------------------------------------------------
    【破解过程】继续响应NISY号召,发算发分析破文,刚去华军最近更新看了下,发现这个软件比较小,就选它啦,这次应该不是国产软件啦

    PEID 查Microsoft Visual C++ 7.0无壳,直接OD载入

    F9运行,输入用户名:bingtang[BST],假码:1234567890,弹出错误提示窗口,F12**找到判断点
    段首下段

    0041E0B8   .  55            push    ebp                              ;  下断
    0041E0B9   .  56            push    esi
    0041E0BA   .  57            push    edi
    0041E0BB   .  BD 01000000   mov     ebp, 1
    0041E0C0   .  55            push    ebp
    0041E0C1   .  8BF1          mov     esi, ecx
    0041E0C3   .  E8 F2E40100   call    0043C5BA
    0041E0C8   .  8B46 70       mov     eax, dword ptr [esi+70]
    0041E0CB   .  8B78 F4       mov     edi, dword ptr [eax-C]
    0041E0CE   .  83FF 02       cmp     edi, 2                           ;  比较用户名位数
    0041E0D1   .  0F8D E0000000 jge     0041E1B7                         ;  >=2就跳
    0041E0D7   .  E8 58240200   call    00440534
    0041E0DC   .  8B10          mov     edx, dword ptr [eax]
    0041E0DE   .  8BC8          mov     ecx, eax
    0041E0E0   .  FF52 0C       call    dword ptr [edx+C]
    0041E0E3   .  83C0 10       add     eax, 10
    0041E0E6   .  894424 18     mov     dword ptr [esp+18], eax
    0041E0EA   .  6A 67         push    67
    0041E0EC   .  8D4424 20     lea     eax, dword ptr [esp+20]
    0041E0F0   .  50            push    eax
    0041E0F1   .  B9 081F4900   mov     ecx, 00491F08
    0041E0F6   .  C74424 34 000>mov     dword ptr [esp+34], 0
    0041E0FE   .  E8 1D1DFFFF   call    0040FE20
    0041E103   .  50            push    eax
    0041E104   .  8D4C24 1C     lea     ecx, dword ptr [esp+1C]
    0041E108   .  C64424 30 01  mov     byte ptr [esp+30], 1
    0041E10D   .  E8 BE67FEFF   call    004048D0
    0041E112   .  8B4424 1C     mov     eax, dword ptr [esp+1C]
    0041E116   .  83C0 F0       add     eax, -10
    0041E119   .  C64424 2C 00  mov     byte ptr [esp+2C], 0
    0041E11E   .  8D48 0C       lea     ecx, dword ptr [eax+C]
    0041E121   .  83CA FF       or      edx, FFFFFFFF
    0041E124   .  F0:0FC111     lock xadd dword ptr [ecx], edx
    0041E128   .  4A            dec     edx
    0041E129   .  85D2          test    edx, edx
    0041E12B   .  7F 08         jg      short 0041E135
    0041E12D   .  8B08          mov     ecx, dword ptr [eax]
    0041E12F   .  8B11          mov     edx, dword ptr [ecx]
    0041E131   .  50            push    eax
    0041E132   .  FF52 04       call    dword ptr [edx+4]
    0041E135   >  6A 69         push    69
    0041E137   .  8D4424 20     lea     eax, dword ptr [esp+20]
    0041E13B   .  50            push    eax
    0041E13C   .  B9 081F4900   mov     ecx, 00491F08
    0041E141   .  E8 DA1CFFFF   call    0040FE20
    0041E146   .  8B00          mov     eax, dword ptr [eax]
    0041E148   .  8B7C24 18     mov     edi, dword ptr [esp+18]
    0041E14C   .  6A 00         push    0
    0041E14E   .  50            push    eax
    0041E14F   .  57            push    edi
    0041E150   .  8BCE          mov     ecx, esi
    0041E152   .  C64424 38 02  mov     byte ptr [esp+38], 2
    0041E157   .  E8 00E40100   call    0043C55C
    0041E15C   .  8B4424 1C     mov     eax, dword ptr [esp+1C]
    0041E160   .  83C0 F0       add     eax, -10
    0041E163   .  C64424 2C 00  mov     byte ptr [esp+2C], 0
    0041E168   .  8D48 0C       lea     ecx, dword ptr [eax+C]
    0041E16B   .  83CA FF       or      edx, FFFFFFFF
    0041E16E   .  F0:0FC111     lock xadd dword ptr [ecx], edx
    0041E172   .  4A            dec     edx
    0041E173   .  85D2          test    edx, edx
    0041E175   .  7F 08         jg      short 0041E17F
    0041E177   .  8B08          mov     ecx, dword ptr [eax]
    0041E179   .  8B11          mov     edx, dword ptr [ecx]
    0041E17B   .  50            push    eax
    0041E17C   .  FF52 04       call    dword ptr [edx+4]
    0041E17F   >  8D47 F0       lea     eax, dword ptr [edi-10]
    0041E182   .  C74424 2C FFF>mov     dword ptr [esp+2C], -1
    0041E18A   .  8D48 0C       lea     ecx, dword ptr [eax+C]
    0041E18D   .  83CA FF       or      edx, FFFFFFFF
    0041E190   .  F0:0FC111     lock xadd dword ptr [ecx], edx
    0041E194   .  4A            dec     edx
    0041E195   .  85D2          test    edx, edx
    0041E197   .  0F8F 2F040000 jg      0041E5CC
    0041E19D   .  8B08          mov     ecx, dword ptr [eax]
    0041E19F   .  8B11          mov     edx, dword ptr [ecx]
    0041E1A1   .  50            push    eax
    0041E1A2   .  FF52 04       call    dword ptr [edx+4]
    0041E1A5   .  5F            pop     edi
    0041E1A6   .  5E            pop     esi
    0041E1A7   .  5D            pop     ebp
    0041E1A8   .  8B4C24 18     mov     ecx, dword ptr [esp+18]
    0041E1AC   .  64:890D 00000>mov     dword ptr fs:[0], ecx
    0041E1B3   .  83C4 24       add     esp, 24
    0041E1B6   .  C3            retn
    0041E1B7   >  8B46 74       mov     eax, dword ptr [esi+74]
    0041E1BA   .  8B40 F4       mov     eax, dword ptr [eax-C]
    0041E1BD   .  83F8 08       cmp     eax, 8                           ;  和8比较用户名位数
    0041E1C0   .  53            push    ebx
    0041E1C1   .  0F8D AF000000 jge     0041E276                         ;  >=8就跳,否则就死
    0041E1C7   .  E8 68230200   call    00440534
    0041E1CC   .  8B10          mov     edx, dword ptr [eax]
    0041E1CE   .  8BC8          mov     ecx, eax
    0041E1D0   .  FF52 0C       call    dword ptr [edx+C]
    0041E1D3   .  83C0 10       add     eax, 10
    0041E1D6   .  894424 1C     mov     dword ptr [esp+1C], eax
    0041E1DA   .  6A 68         push    68
    0041E1DC   .  8D4424 24     lea     eax, dword ptr [esp+24]
    0041E1E0   .  BB 03000000   mov     ebx, 3
    0041E1E5   .  50            push    eax
    0041E1E6   .  B9 081F4900   mov     ecx, 00491F08
    0041E1EB   .  895C24 38     mov     dword ptr [esp+38], ebx
    0041E1EF   .  E8 2C1CFFFF   call    0040FE20
    0041E1F4   .  50            push    eax
    0041E1F5   .  8D4C24 20     lea     ecx, dword ptr [esp+20]
    0041E1F9   .  C64424 34 04  mov     byte ptr [esp+34], 4
    0041E1FE   .  E8 CD66FEFF   call    004048D0
    0041E203   .  8B4424 20     mov     eax, dword ptr [esp+20]
    0041E207   .  83C0 F0       add     eax, -10
    0041E20A   .  885C24 30     mov     byte ptr [esp+30], bl
    0041E20E   .  8D48 0C       lea     ecx, dword ptr [eax+C]
    0041E211   .  83CA FF       or      edx, FFFFFFFF
    0041E214   .  F0:0FC111     lock xadd dword ptr [ecx], edx
    0041E218   .  4A            dec     edx
    0041E219   .  85D2          test    edx, edx
    0041E21B   .  7F 08         jg      short 0041E225
    0041E21D   .  8B08          mov     ecx, dword ptr [eax]
    0041E21F   .  8B11          mov     edx, dword ptr [ecx]
    0041E221   .  50            push    eax
    0041E222   .  FF52 04       call    dword ptr [edx+4]
    0041E225   >  6A 69         push    69
    0041E227   .  8D4424 24     lea     eax, dword ptr [esp+24]
    0041E22B   .  50            push    eax
    0041E22C   .  B9 081F4900   mov     ecx, 00491F08
    0041E231   .  E8 EA1BFFFF   call    0040FE20
    0041E236   .  8B00          mov     eax, dword ptr [eax]
    0041E238   .  8B7C24 1C     mov     edi, dword ptr [esp+1C]
    0041E23C   .  6A 00         push    0
    0041E23E   .  50            push    eax
    0041E23F   .  57            push    edi
    0041E240   .  8BCE          mov     ecx, esi
    0041E242   .  C64424 3C 05  mov     byte ptr [esp+3C], 5
    0041E247   .  E8 10E30100   call    0043C55C
    0041E24C   .  8B4424 20     mov     eax, dword ptr [esp+20]
    0041E250   .  83C0 F0       add     eax, -10
    0041E253   .  885C24 30     mov     byte ptr [esp+30], bl
    0041E257   .  8D48 0C       lea     ecx, dword ptr [eax+C]
    0041E25A   .  83CA FF       or      edx, FFFFFFFF
    0041E25D   .  F0:0FC111     lock xadd dword ptr [ecx], edx
    0041E261   .  4A            dec     edx
    0041E262   .  85D2          test    edx, edx
    0041E264   .  7F 08         jg      short 0041E26E
    0041E266   .  8B08          mov     ecx, dword ptr [eax]
    0041E268   .  8B11          mov     edx, dword ptr [ecx]
    0041E26A   .  50            push    eax
    0041E26B   .  FF52 04       call    dword ptr [edx+4]
    0041E26E   >  8D47 F0       lea     eax, dword ptr [edi-10]
    0041E271   .  E9 36030000   jmp     0041E5AC
    0041E276   >  8B46 70       mov     eax, dword ptr [esi+70]
    0041E279   .  8B48 F4       mov     ecx, dword ptr [eax-C]
    0041E27C   .  85C9          test    ecx, ecx
    0041E27E   .  7D 0A         jge     short 0041E28A
    0041E280   .  68 57000780   push    80070057
    0041E285   .  E8 7630FEFF   call    00401300
    0041E28A   >  8A10          mov     dl, byte ptr [eax]
    0041E28C   .  8B46 70       mov     eax, dword ptr [esi+70]
    0041E28F   .  3968 F4       cmp     dword ptr [eax-C], ebp
    0041E292   .  7D 0A         jge     short 0041E29E
    0041E294   .  68 57000780   push    80070057
    0041E299   .  E8 6230FEFF   call    00401300
    0041E29E   >  8A40 01       mov     al, byte ptr [eax+1]
    0041E2A1   .  884424 11     mov     byte ptr [esp+11], al
    0041E2A5   .  8B46 70       mov     eax, dword ptr [esi+70]
    0041E2A8   .  8B48 F4       mov     ecx, dword ptr [eax-C]
    0041E2AB   .  85C9          test    ecx, ecx
    0041E2AD   .  7D 0A         jge     short 0041E2B9
    0041E2AF   .  68 57000780   push    80070057
    0041E2B4   .  E8 4730FEFF   call    00401300
    0041E2B9   >  8B4E 70       mov     ecx, dword ptr [esi+70]
    0041E2BC   .  8A18          mov     bl, byte ptr [eax]
    0041E2BE   .  3969 F4       cmp     dword ptr [ecx-C], ebp
    0041E2C1   .  7D 0A         jge     short 0041E2CD
    0041E2C3   .  68 57000780   push    80070057
    0041E2C8   .  E8 3330FEFF   call    00401300
    0041E2CD   >  0FB6C2        movzx   eax, dl                          ;  用户名第一位b
    0041E2D0   .  83C8 50       or      eax, 50                          ;  or &H50
    0041E2D3   .  99            cdq
    0041E2D4   .  BD 0A000000   mov     ebp, 0A                          ;  ebp=&H0A
    0041E2D9   .  F7FD          idiv    ebp                              ;  eax MOD &H0A
    0041E2DB   .  0FB64424 11   movzx   eax, byte ptr [esp+11]           ;  用户名第二位i
    0041E2E0   .  83C8 48       or      eax, 48                          ;  or &H48
    0041E2E3   .  885424 16     mov     byte ptr [esp+16], dl            ;  [000DF5FE]<--4 结果1
    0041E2E7   .  99            cdq
    0041E2E8   .  F7FD          idiv    ebp                              ;  EAX MOD EBX
    0041E2EA   .  0FB6C3        movzx   eax, bl                          ;  用户名第一位b
    0041E2ED   .  83C8 4F       or      eax, 4F                          ;  or &H4F
    0041E2F0   .  8BDD          mov     ebx, ebp
    0041E2F2   .  885424 11     mov     byte ptr [esp+11], dl            ;  [000DF5F9]<--5 结果2
    0041E2F6   .  99            cdq
    0041E2F7   .  F7FB          idiv    ebx                              ;  eax mod ebx
    0041E2F9   .  0FB641 01     movzx   eax, byte ptr [ecx+1]            ;  用户名第二位i
    0041E2FD   .  83C8 54       or      eax, 54                          ;  or &h54
    0041E300   .  8BCD          mov     ecx, ebp
    0041E302   .  885424 17     mov     byte ptr [esp+17], dl            ;  [000DF5FF]<--1 结果3
    0041E306   .  99            cdq
    0041E307   .  F7F9          idiv    ecx                              ;  eax mod ecx
    0041E309   .  33C0          xor     eax, eax
    0041E30B   .  33C9          xor     ecx, ecx
    0041E30D   .  85FF          test    edi, edi
    0041E30F   .  885424 18     mov     byte ptr [esp+18], dl            ;  [000DF600]<--05 结果4
    0041E313   .  7E 1F         jle     short 0041E334
    0041E315   >  85C9          test    ecx, ecx
    0041E317   .  0F8C E6000000 jl      0041E403
    0041E31D   .  8B56 70       mov     edx, dword ptr [esi+70]          ;  用户名bingtang[BST]
    0041E320   .  3B4A F4       cmp     ecx, dword ptr [edx-C]
    0041E323   .  0F8F DA000000 jg      0041E403
    0041E329   .  0FB6140A      movzx   edx, byte ptr [edx+ecx]          ;  依次取用户名bingtang[BST]的每个字符
    0041E32D   .  03C2          add     eax, edx                         ;  依次取用户名bingtang[BST]的每个字符的ASCII和放入EAX,最终EAX=&H4EB
    0041E32F   .  41            inc     ecx
    0041E330   .  3BCF          cmp     ecx, edi
    0041E332   .^ 7C E1         jl      short 0041E315
    0041E334   >  99            cdq
    0041E335   .  B9 0A000000   mov     ecx, 0A                          ;  ecx<--&H0A
    0041E33A   .  F7F9          idiv    ecx                              ;  用户名ASCII和(&H4EB) MOD &H0A
    0041E33C   .  8B46 74       mov     eax, dword ptr [esi+74]          ;  假码
    0041E33F   .  8B48 F4       mov     ecx, dword ptr [eax-C]           ;  假码位数
    0041E342   .  85C9          test    ecx, ecx
    0041E344   .  885424 19     mov     byte ptr [esp+19], dl            ;  [000DF601]<--09 结果5
    0041E348   .  7D 0A         jge     short 0041E354
    0041E34A   .  68 57000780   push    80070057
    0041E34F   .  E8 AC2FFEFF   call    00401300
    0041E354   > \8A10          mov     dl, byte ptr [eax]               ;  dl<--注册码第一位
    0041E356   .  8B4E 74       mov     ecx, dword ptr [esi+74]
    0041E359   .  8379 F4 01    cmp     dword ptr [ecx-C], 1
    0041E35D   .  885424 1A     mov     byte ptr [esp+1A], dl            ;  [esp+1A]<--注册码第一位
    0041E361   .  7D 0A         jge     short 0041E36D
    0041E363   .  68 57000780   push    80070057
    0041E368   .  E8 932FFEFF   call    00401300
    0041E36D   >  8A41 01       mov     al, byte ptr [ecx+1]             ;  al<--注册码第二位
    0041E370   .  8B4E 74       mov     ecx, dword ptr [esi+74]
    0041E373   .  884424 12     mov     byte ptr [esp+12], al            ;  [esp+12]<--注册码第二位
    0041E377   .  8379 F4 02    cmp     dword ptr [ecx-C], 2
    0041E37B   .  7D 0A         jge     short 0041E387
    0041E37D   .  68 57000780   push    80070057
    0041E382   .  E8 792FFEFF   call    00401300
    0041E387   >  8A49 02       mov     cl, byte ptr [ecx+2]             ;  cl<--注册码第三位
    0041E38A   .  884C24 13     mov     byte ptr [esp+13], cl            ;  [esp+13]<--注册码第三位
    0041E38E   .  8B4E 74       mov     ecx, dword ptr [esi+74]
    0041E391   .  8379 F4 03    cmp     dword ptr [ecx-C], 3
    0041E395   .  7D 0A         jge     short 0041E3A1
    0041E397   .  68 57000780   push    80070057
    0041E39C   .  E8 5F2FFEFF   call    00401300
    0041E3A1   >  8A41 03       mov     al, byte ptr [ecx+3]             ;  al<--注册码第四位
    0041E3A4   .  8B4E 74       mov     ecx, dword ptr [esi+74]
    0041E3A7   .  884424 14     mov     byte ptr [esp+14], al            ;  [esp+14]<--注册码第四位
    0041E3AB   .  8379 F4 04    cmp     dword ptr [ecx-C], 4
    0041E3AF   .  7D 0A         jge     short 0041E3BB
    0041E3B1   .  68 57000780   push    80070057
    0041E3B6   .  E8 452FFEFF   call    00401300
    0041E3BB   >  8A49 04       mov     cl, byte ptr [ecx+4]
    0041E3BE   .  884C24 15     mov     byte ptr [esp+15], cl            ;  [esp+15]<--注册码第五位
    0041E3C2   .  8B4E 74       mov     ecx, dword ptr [esi+74]
    0041E3C5   .  8379 F4 05    cmp     dword ptr [ecx-C], 5
    0041E3C9   .  7D 0A         jge     short 0041E3D5
    0041E3CB   .  68 57000780   push    80070057
    0041E3D0   .  E8 2B2FFEFF   call    00401300
    0041E3D5   >  8A41 05       mov     al, byte ptr [ecx+5]             ;  al<--注册码第六位
    0041E3D8   .  8B4E 74       mov     ecx, dword ptr [esi+74]          ;  ecx<--假码
    0041E3DB   .  8B79 F4       mov     edi, dword ptr [ecx-C]
    0041E3DE   .  83FF 06       cmp     edi, 6
    0041E3E1   .  884424 1B     mov     byte ptr [esp+1B], al            ;  [esp+1B]<--注册码第六位
    0041E3E5   .  7D 0A         jge     short 0041E3F1
    0041E3E7   .  68 57000780   push    80070057
    0041E3EC   .  E8 0F2FFEFF   call    00401300
    0041E3F1   >  8B7E 74       mov     edi, dword ptr [esi+74]
    0041E3F4   .  8B6F F4       mov     ebp, dword ptr [edi-C]
    0041E3F7   .  8A41 06       mov     al, byte ptr [ecx+6]             ;  al<--注册码第七位
    0041E3FA   .  BB 07000000   mov     ebx, 7
    0041E3FF   .  3BEB          cmp     ebp, ebx
    0041E401   .  7D 0A         jge     short 0041E40D
    0041E403   >  68 57000780   push    80070057
    0041E408   .  E8 F32EFEFF   call    00401300
    0041E40D   >  8A4F 07       mov     cl, byte ptr [edi+7]             ;  cl<--注册码第八位
    0041E410   .  0FB66C24 16   movzx   ebp, byte ptr [esp+16]           ;  ebp<--结果1
    0041E415   .  0FB6FA        movzx   edi, dl                          ;  edi<--注册码第一位
    0041E418   .  83EF 30       sub     edi, 30
    0041E41B   .  3BEF          cmp     ebp, edi                         ;  注册码第一位和用户名计算结果1比较
    0041E41D   .  75 48         jnz     short 0041E467                   ;  不等就跳,跳就到比较固定注册码
    0041E41F   .  0FB65424 12   movzx   edx, byte ptr [esp+12]           ;  edx<--注册码第二位
    0041E424   .  0FB67C24 11   movzx   edi, byte ptr [esp+11]           ;  edi<--结果2
    0041E429   .  83EA 30       sub     edx, 30
    0041E42C   .  3BFA          cmp     edi, edx                         ;  注册码第二位和用户名计算结果2比较
    0041E42E   .  75 33         jnz     short 0041E463                   ;  不等就跳,跳就挂
    0041E430   .  0FB65424 13   movzx   edx, byte ptr [esp+13]           ;  edx<--注册码第三位
    0041E435   .  0FB67C24 17   movzx   edi, byte ptr [esp+17]           ;  edi<--结果3
    0041E43A   .  83EA 30       sub     edx, 30
    0041E43D   .  3BFA          cmp     edi, edx                         ;  注册码第三位和用户名计算结果3比较
    0041E43F   .  75 22         jnz     short 0041E463                   ;  不等就跳,跳就挂
    0041E441   .  0FB65424 14   movzx   edx, byte ptr [esp+14]           ;  edx<--注册码第四位
    0041E446   .  0FB67C24 18   movzx   edi, byte ptr [esp+18]           ;  edi<--结果4
    0041E44B   .  83EA 30       sub     edx, 30
    0041E44E   .  3BFA          cmp     edi, edx                         ;  注册码第四位和用户名计算结果4比较
    0041E450   .  75 11         jnz     short 0041E463                   ;  不等就跳,跳就挂
    0041E452   .  0FB65424 15   movzx   edx, byte ptr [esp+15]           ;  edx<--注册码第五位
    0041E457   .  0FB67C24 19   movzx   edi, byte ptr [esp+19]           ;  edi<--结果5
    0041E45C   .  83EA 30       sub     edx, 30
    0041E45F   .  3BFA          cmp     edi, edx                         ;  注册码第五位和用户名计算结果5比较
    0041E461   .  74 55         je      short 0041E4B8                   ;  相等跳到注册正确
    0041E463   >  8A5424 1A     mov     dl, byte ptr [esp+1A]
    0041E467   >  80FA 35       cmp     dl, 35                           ;  注册码第一位和5比较
    0041E46A   .  0F85 D7000000 jnz     0041E547
    0041E470   .  807C24 12 31  cmp     byte ptr [esp+12], 31            ;  注册码第二位和1比较
    0041E475   .  0F85 CC000000 jnz     0041E547
    0041E47B   .  807C24 13 38  cmp     byte ptr [esp+13], 38            ;  注册码第三位和8比较
    0041E480   .  0F85 C1000000 jnz     0041E547
    0041E486   .  807C24 14 39  cmp     byte ptr [esp+14], 39            ;  注册码第四位和9比较
    0041E48B   .  0F85 B6000000 jnz     0041E547
    0041E491   .  807C24 15 37  cmp     byte ptr [esp+15], 37            ;  注册码第五位和7比较
    0041E496   .  0F85 AB000000 jnz     0041E547
    0041E49C   .  807C24 1B 36  cmp     byte ptr [esp+1B], 36            ;  注册码第六位和6比较
    0041E4A1   .  0F85 A0000000 jnz     0041E547
    0041E4A7   .  3C 31         cmp     al, 31                           ;  注册码第七位和1比较
    0041E4A9   .  0F85 98000000 jnz     0041E547
    0041E4AF   .  80F9 38       cmp     cl, 38                           ;  注册码第八位和8比较
    0041E4B2   .  0F85 8F000000 jnz     0041E547
    0041E4B8   >  6A 6A         push    6A
    0041E4BA   .  8D4424 24     lea     eax, dword ptr [esp+24]
    0041E4BE   .  50            push    eax
    0041E4BF   .  B9 081F4900   mov     ecx, 00491F08
    0041E4C4   .  E8 5719FFFF   call    0040FE20
    0041E4C9   .  8B00          mov     eax, dword ptr [eax]
    0041E4CB   .  6A 00         push    0
    0041E4CD   .  68 805D4500   push    00455D80                         ;  ok
    0041E4D2   .  50            push    eax
    0041E4D3   .  8BCE          mov     ecx, esi
    0041E4D5   .  C74424 3C 060>mov     dword ptr [esp+3C], 6
    0041E4DD   .  E8 7AE00100   call    0043C55C                         ;  正确提示
    0041E4E2   .  8D4C24 20     lea     ecx, dword ptr [esp+20]
    0041E4E6   .  C74424 30 FFF>mov     dword ptr [esp+30], -1




    ------------------------------------------------------------------------
    【破解总结】总结,程序通过用户名的前两个字符计算出注册码的前4位,通过用户名的ASCII和计算出注册码第5位,后面任意,但注册码必须大于8位,需要注意的是程序读取用户名的时候是以ANSI方式读取的,写算法注册机的时候需要注意.另外程序还有一个固定的注册码51897618,感谢蚊香MM提醒o(∩_∩)o...

    VB算法注册机
    1. Private Sub Command1_Click()
    2.     Dim i As Integer
    3.     Dim a As Long
    4.     Dim t As String
    5.     t = Text1
    6.     If LenB(t) >= 2 Then
    7.         s1 = Asc(Mid$(t, 1, 1))
    8.         If s1 < 0 Then
    9.             s1 = "&H" & Mid$(Hex$(Asc(Mid$(t, 1, 1))), 1, 2)
    10.             s2 = "&H" & Mid$(Hex$(Asc(Mid$(t, 1, 1))), 3, 2)
    11.         Else
    12.             s2 = Asc(Mid$(t, 2, 1))
    13.             If s2 < 0 Then
    14.                 s2 = "&H" & Mid$(Hex$(Asc(Mid$(t, 2, 1))), 1, 2)
    15.             End If
    16.         End If
    17.         c = (s1 Or &H50) Mod &HA
    18.         c = c & (s2 Or &H48) Mod &HA
    19.         c = c & (s1 Or &H4F) Mod &HA
    20.         c = c & (s2 Or &H54) Mod &HA
    21.         For i = 1 To Len(t)
    22.             If Asc(Mid$(t, i, 1)) > 0 Then
    23.                 a = a + Asc(Mid$(t, i, 1))
    24.             Else
    25.                 a = a + CLng("&H" & Mid$(Hex$(Asc(Mid$(t, i, 1))), 1, 2)) + CLng("&H" & Mid$(Hex$(Asc(Mid$(t, i, 1))), 3, 2))
    26.             End If
    27.         Next i
    28.         c = c & a Mod &HA
    29.         Text2.Text = CStr(c) & "XXX(后三位任意)"
    30.     Else
    31.         Text2.Text = "用户名不得小于2位"
    32.     End If
    33. End Sub
    复制代码
    这个软件算法一会就看完了,写算法注册机字符处理费了不少心思

                                                                                    冰糖
                                                                                  2008.6.15
    ------------------------------------------------------------------------
    【版权声明】技术交流而已,转载请注明作者并保持文章的完整, 谢谢!

    [ 本帖最后由 冰糖 于 2008-6-17 21:12 编辑 ]
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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