飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 7339|回复: 11

[原创] FastStone Capture v6.5汉化版算法分析 by:yAtEs 2010.1.11

[复制链接]
  • TA的每日心情
    开心
    2022-11-26 13:46
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2010-1-12 09:23:18 | 显示全部楼层 |阅读模式
    FastStone Capture v6.5汉化版算法分析 by:yAtEs 2010.1.11

    软件下载地址:http://www.skycn.com/soft/38193.html
                http://hdcnc1.skycn.com/down/HA-FSCapture_65-FzH.zip

    查壳:ASProtect 1.2x - 1.3x [Registered] -> Alexey Solodovnikov

    OEP=0024C7F0
    RVA=002661F4
    Size=000CB041

    运行Aspr2.XX Unpacker V1.15.OSC脚本,掏出ImportREC进行修复,无效指针直接剪切。

    脱壳修复后查壳:Borland Delphi 6.0 - 7.0

    查算法:

    ADLER32 :: 000E81EF :: 004E81EF
    BASE64 table :: 0025D5B8 :: 0065D5B8
    BASE64 table :: 0025D90C :: 0065D90C
    BLOWFISH [sbox] :: 0025D994 :: 0065D994
    CRC32 :: 00250A40 :: 00650A40
    PI fraction (NIMBUS / BLOWFISH) :: 0025D94C :: 0065D94C
    SHA1 [Compress] :: 001E3869 :: 005E3869
    SHA-512 [init] :: 001EE4FD :: 005EE4FD
    ZLIB deflate [long] :: 0024EB24 :: 0064EB24
    {Big number} :: 001EF3A0 :: 005EF3A0

    用户名:Spring_2050
    注册码:1234567890ABCDEFGHIJKLMN

    经分析调整注册信息:

    用户名:Spring_2050
    注册码:CRACKBYSPRINGHIJKLMN

    下bp MessageBoxA拦截无果,不知怎么回事,用DEDE载入后没有办法查找注册按钮事件,只好用脚本了,运行delphi按钮事件脚本.txt,点击注册后断下来,然后F7跟进CALL然后来到关键代码开始分析:

            
    算法分析:
    ===========================================================================================================================================
    005EF756   .  55            push    ebp                                 ;  开始分析
    005EF757   .  68 78FA5E00   push    005EFA78
    005EF75C   .  64:FF30       push    dword ptr fs:[eax]
    005EF75F   .  64:8920       mov     dword ptr fs:[eax], esp
    005EF762   .  8D55 E8       lea     edx, dword ptr [ebp-18]
    005EF765   .  8B45 FC       mov     eax, dword ptr [ebp-4]
    005EF768   .  8B80 04030000 mov     eax, dword ptr [eax+304]
    005EF76E   .  E8 8DABE5FF   call    0044A300                            ;  取用户名
    005EF773   .  8B45 E8       mov     eax, dword ptr [ebp-18]
    005EF776   .  8D55 F8       lea     edx, dword ptr [ebp-8]
    005EF779   .  E8 429BE1FF   call    004092C0
    005EF77E   .  8D55 E0       lea     edx, dword ptr [ebp-20]
    005EF781   .  8B45 FC       mov     eax, dword ptr [ebp-4]
    005EF784   .  8B80 0C030000 mov     eax, dword ptr [eax+30C]
    005EF78A   .  E8 71ABE5FF   call    0044A300                            ;  取假码
    005EF78F   .  8B45 E0       mov     eax, dword ptr [ebp-20]
    005EF792   .  8D55 E4       lea     edx, dword ptr [ebp-1C]
    005EF795   .  E8 269BE1FF   call    004092C0
    005EF79A   .  8B45 E4       mov     eax, dword ptr [ebp-1C]
    005EF79D   .  8D55 F0       lea     edx, dword ptr [ebp-10]
    005EF7A0   .  E8 CB98E1FF   call    00409070
    005EF7A5   .  8D45 EC       lea     eax, dword ptr [ebp-14]
    005EF7A8   .  E8 AF50E1FF   call    0040485C
    005EF7AD   .  8B45 F0       mov     eax, dword ptr [ebp-10]             ;  假码存入EAX
    005EF7B0   .  E8 5F53E1FF   call    00404B14                            ;  取假码位数存入EAX
    005EF7B5   .  8BF8          mov     edi, eax                            ;  EAX=EDI
    005EF7B7   .  4F            dec     edi                                 ;  EDI-1结果存入EDI
    005EF7B8   .  85FF          test    edi, edi
    005EF7BA   .  7C 66         jl      short 005EF822
    005EF7BC   .  47            inc     edi                                 ;  EDI+1结果存入EDI
    005EF7BD   .  33F6          xor     esi, esi                            ;  ESI清零
    005EF7BF   >  8B45 F0       mov     eax, dword ptr [ebp-10]             ;  假码存入EAX
    005EF7C2   .  8A1C30        mov     bl, byte ptr [eax+esi]              ;  取假码第一位存入bl
    005EF7C5   .  80FB 41       cmp     bl, 41                              ;  假码第一位ASCII值与41H的ASCII值A比较
    005EF7C8   .  72 20         jb      short 005EF7EA                      ;  小于等于则跳转实现
    005EF7CA   .  8B45 F0       mov     eax, dword ptr [ebp-10]             ;  假码存入EAX
    005EF7CD   .  80FB 5A       cmp     bl, 5A                              ;  假码第一位ASCII值与5AH的ASCII值A比较
    005EF7D0   .  77 18         ja      short 005EF7EA                      ;  大于Z则跳转实现
    005EF7D2   .  8D45 DC       lea     eax, dword ptr [ebp-24]
    005EF7D5   .  8B55 F0       mov     edx, dword ptr [ebp-10]             ;  假码存入EDX
    005EF7D8   .  8BD3          mov     edx, ebx                            ;  EBX=EDX
    005EF7DA   .  E8 5D52E1FF   call    00404A3C
    005EF7DF   .  8B55 DC       mov     edx, dword ptr [ebp-24]
    005EF7E2   .  8D45 EC       lea     eax, dword ptr [ebp-14]
    005EF7E5   .  E8 3253E1FF   call    00404B1C
    005EF7EA   >  8B45 EC       mov     eax, dword ptr [ebp-14]             ;  取计算过的假码存入EAX
    005EF7ED   .  E8 2253E1FF   call    00404B14                            ;  “假码计数器”
    005EF7F2   .  83F8 05       cmp     eax, 5                              ;  EAX与5比较
    005EF7F5   .  74 1A         je      short 005EF811                      ;  相等则跳
    005EF7F7   .  8B45 EC       mov     eax, dword ptr [ebp-14]             ;  假码第一位地址存入EAX
    005EF7FA   .  E8 1553E1FF   call    00404B14                            ;  取假码第一位
    005EF7FF   .  83F8 0B       cmp     eax, 0B                             ;  假码位数与0B(11)比较
    005EF802   .  74 0D         je      short 005EF811                      ;  相等则跳
    005EF804   .  8B45 EC       mov     eax, dword ptr [ebp-14]             ;  假码第一位地址存入EAX
    005EF807   .  E8 0853E1FF   call    00404B14                            ;  取假码位数存入EAX
    005EF80C   .  83F8 11       cmp     eax, 11                             ;  假码位数与11H(17)比较
    005EF80F   .  75 0D         jnz     short 005EF81E                      ;  不等则跳
    005EF811   >  8D45 EC       lea     eax, dword ptr [ebp-14]
    005EF814   .  BA D8FA5E00   mov     edx, 005EFAD8
    005EF819   .  E8 FE52E1FF   call    00404B1C
    005EF81E   >  46            inc     esi                                 ;  ESI+1结果存入ESI
    005EF81F   .  4F            dec     edi                                 ;  EDI-1结果存入EDI
    005EF820   .^ 75 9D         jnz     short 005EF7BF                      ;  依次取假码比较,并每五个字符之后加上一横线
    005EF822   >  8D45 F4       lea     eax, dword ptr [ebp-C]
    005EF825   .  8B55 EC       mov     edx, dword ptr [ebp-14]             ;  把上面循环计算的定好格式的字符串存入EDX
    005EF828   .  E8 C750E1FF   call    004048F4                            ;  取用户名
    005EF82D   .  837D F8 00    cmp     dword ptr [ebp-8], 0                ;  用户名与0比较
    005EF831   .  75 33         jnz     short 005EF866                      ;  不等则跳
    005EF833   .  6A 00         push    0
    005EF835   .  66:8B0D DCFA5>mov     cx, word ptr [5EFADC]
    005EF83C   .  B2 02         mov     dl, 2
    005EF83E   .  B8 E8FA5E00   mov     eax, 005EFAE8
    005EF843   .  E8 6036E5FF   call    00442EA8
    005EF848   .  8B45 FC       mov     eax, dword ptr [ebp-4]
    005EF84B   .  8B80 04030000 mov     eax, dword ptr [eax+304]
    005EF851   .  8B10          mov     edx, dword ptr [eax]
    005EF853   .  FF92 C0000000 call    dword ptr [edx+C0]
    005EF859   .  33C0          xor     eax, eax
    005EF85B   .  5A            pop     edx
    005EF85C   .  59            pop     ecx
    005EF85D   .  59            pop     ecx
    005EF85E   .  64:8910       mov     dword ptr fs:[eax], edx
    005EF861   .  E9 1C020000   jmp     005EFA82
    005EF866   >  8B4D F4       mov     ecx, dword ptr [ebp-C]              ;  计算得出的字符串存入ECX
    005EF869   .  8B55 F8       mov     edx, dword ptr [ebp-8]              ;  用户名存入EDX
    005EF86C   .  8B45 FC       mov     eax, dword ptr [ebp-4]
    005EF86F   .  E8 84FBFFFF   call    005EF3F8                       ;  关键CALL,跟进,计算注册码11~15位
    005EF874   .  84C0          test    al, al
    005EF876   .  0F84 D3010000 je      005EFA4F
    005EF87C   .  8B4D F4       mov     ecx, dword ptr [ebp-C]              ;  假码字符串存入ECX
    005EF87F   .  8B55 F8       mov     edx, dword ptr [ebp-8]              ;  用户名存入EDX
    005EF882   .  8B45 FC       mov     eax, dword ptr [ebp-4]
    005EF885   .  E8 FEFBFFFF   call    005EF488                            ;  关键CALL,跟进,计算注册码16~20位
    005EF88A   .  84C0          test    al, al
    005EF88C   .  0F84 BD010000 je      005EFA4F
    005EF892   .  8B55 F4       mov     edx, dword ptr [ebp-C]              ;  假码存入EDX
    005EF895   .  8B45 FC       mov     eax, dword ptr [ebp-4]
    005EF898   .  E8 7BFCFFFF   call    005EF518
    005EF89D   .  8BD8          mov     ebx, eax
    005EF89F   .  83FB 01       cmp     ebx, 1                              ;  Switch (cases 457..1387)
    005EF8A2   .  7F 2D         jg      short 005EF8D1
    005EF8A4   .  6A 00         push    0
    005EF8A6   .  6A 00         push    0
    005EF8A8   .  8D45 D8       lea     eax, dword ptr [ebp-28]
    005EF8AB   .  50            push    eax
    005EF8AC   .  33C9          xor     ecx, ecx
    005EF8AE   .  8B55 F8       mov     edx, dword ptr [ebp-8]              ;  用户名存入EDX
    005EF8B1   .  B8 0CFB5E00   mov     eax, 005EFB0C
    005EF8B6   .  E8 81650500   call    00645E3C
    005EF8BB   .  8B45 D8       mov     eax, dword ptr [ebp-28]
    005EF8BE   .  66:8B0D DCFA5>mov     cx, word ptr [5EFADC]
    005EF8C5   .  B2 02         mov     dl, 2
    005EF8C7   .  E8 DC35E5FF   call    00442EA8
    005EF8CC   .  E9 36010000   jmp     005EFA07
    ===========================================================================================================================================
    跟进第一个关键CALL[005EF3F8]后跟进后来到这里:
    005EF3F8  /$  55            push    ebp
    005EF3F9  |.  8BEC          mov     ebp, esp
    005EF3FB  |.  83C4 F4       add     esp, -0C
    005EF3FE  |.  53            push    ebx
    005EF3FF  |.  33DB          xor     ebx, ebx
    005EF401  |.  895D F4       mov     dword ptr [ebp-C], ebx
    005EF404  |.  894D F8       mov     dword ptr [ebp-8], ecx              ;  结果字符串存入[ebp-8]
    005EF407  |.  8955 FC       mov     dword ptr [ebp-4], edx              ;  用户名存入[ebp-4]
    005EF40A  |.  8BD8          mov     ebx, eax
    005EF40C  |.  8B45 FC       mov     eax, dword ptr [ebp-4]              ;  用户名存入EAX
    005EF40F  |.  E8 E858E1FF   call    00404CFC
    005EF414  |.  8B45 F8       mov     eax, dword ptr [ebp-8]              ;  结果字符串存入EAX
    005EF417  |.  E8 E058E1FF   call    00404CFC
    005EF41C  |.  33C0          xor     eax, eax                            ;  EAX清零
    005EF41E  |.  55            push    ebp
    005EF41F  |.  68 7AF45E00   push    005EF47A
    005EF424  |.  64:FF30       push    dword ptr fs:[eax]
    005EF427  |.  64:8920       mov     dword ptr fs:[eax], esp
    005EF42A  |.  8B4D F8       mov     ecx, dword ptr [ebp-8]              ;  结果字符串存入ECX
    005EF42D  |.  8B55 FC       mov     edx, dword ptr [ebp-4]              ;  用户名存入EDX
    005EF430  |.  8BC3          mov     eax, ebx                            ;  EBX=EAX
    005EF432  |.  E8 F1F7FFFF   call    005EEC28                            ;  关键CALL,跟进去
    005EF437  |.  84C0          test    al, al                              ;  标志位比较
    005EF439  |.  75 20         jnz     short 005EF45B                      ;  相等则跳
    005EF43B  |.  8D55 F4       lea     edx, dword ptr [ebp-C]
    005EF43E  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
    005EF441  |.  E8 EAB00500   call    0064A530
    005EF446  |.  8B55 F4       mov     edx, dword ptr [ebp-C]
    005EF449  |.  8B4D F8       mov     ecx, dword ptr [ebp-8]
    005EF44C  |.  8BC3          mov     eax, ebx
    005EF44E  |.  E8 D5F7FFFF   call    005EEC28
    005EF453  |.  84C0          test    al, al
    005EF455  |.  75 04         jnz     short 005EF45B
    005EF457  |.  33C0          xor     eax, eax
    005EF459  |.  EB 02         jmp     short 005EF45D
    005EF45B  |>  B0 01         mov     al, 1                               ;  al置1
    005EF45D  |>  8BD8          mov     ebx, eax
    005EF45F  |.  33C0          xor     eax, eax
    005EF461  |.  5A            pop     edx
    005EF462  |.  59            pop     ecx
    005EF463  |.  59            pop     ecx
    005EF464  |.  64:8910       mov     dword ptr fs:[eax], edx
    005EF467  |.  68 81F45E00   push    005EF481
    005EF46C  |>  8D45 F4       lea     eax, dword ptr [ebp-C]
    005EF46F  |.  BA 03000000   mov     edx, 3
    005EF474  |.  E8 0754E1FF   call    00404880
    005EF479  \.  C3            retn
    005EF47A   .^ E9 814DE1FF   jmp     00404200
    005EF47F   .^ EB EB         jmp     short 005EF46C
    005EF481   .  8BC3          mov     eax, ebx
    005EF483   .  5B            pop     ebx
    005EF484   .  8BE5          mov     esp, ebp
    005EF486   .  5D            pop     ebp
    005EF487   .  C3            retn
    ===========================================================================================================================================
    005EEC28   $  55            push    ebp
    005EEC29   .  8BEC          mov     ebp, esp
    005EEC2B   .  51            push    ecx
    005EEC2C   .  B9 0C000000   mov     ecx, 0C
    005EEC31   >  6A 00         push    0
    005EEC33   .  6A 00         push    0
    005EEC35   .  49            dec     ecx
    005EEC36   .^ 75 F9         jnz     short 005EEC31
    005EEC38   .  874D FC       xchg    dword ptr [ebp-4], ecx
    005EEC3B   .  53            push    ebx
    005EEC3C   .  56            push    esi
    005EEC3D   .  57            push    edi                                 ;  继续分析!!!
    005EEC3E   .  894D F4       mov     dword ptr [ebp-C], ecx              ;  结果字符串存入[ebp-4]
    005EEC41   .  8955 F8       mov     dword ptr [ebp-8], edx              ;  用户名存入[ebp-8]
    005EEC44   .  8945 FC       mov     dword ptr [ebp-4], eax
    005EEC47   .  8B45 F8       mov     eax, dword ptr [ebp-8]              ;  用户名存入EAX
    005EEC4A   .  E8 AD60E1FF   call    00404CFC
    005EEC4F   .  8B45 F4       mov     eax, dword ptr [ebp-C]              ;  结果字符串存入EAX
    005EEC52   .  E8 A560E1FF   call    00404CFC
    005EEC57   .  33C0          xor     eax, eax                            ;  EAX清零
    005EEC59   .  55            push    ebp
    005EEC5A   .  68 A2EF5E00   push    005EEFA2
    005EEC5F   .  64:FF30       push    dword ptr fs:[eax]
    005EEC62   .  64:8920       mov     dword ptr fs:[eax], esp
    005EEC65   .  33C0          xor     eax, eax
    005EEC67   .  55            push    ebp
    005EEC68   .  68 56EF5E00   push    005EEF56
    005EEC6D   .  64:FF30       push    dword ptr fs:[eax]
    005EEC70   .  64:8920       mov     dword ptr fs:[eax], esp
    005EEC73   .  C645 F3 00    mov     byte ptr [ebp-D], 0
    005EEC77   .  8D55 E4       lea     edx, dword ptr [ebp-1C]
    005EEC7A   .  8B45 F8       mov     eax, dword ptr [ebp-8]              ;  用户名存入EAX
    005EEC7D   .  E8 EEA3E1FF   call    00409070
    005EEC82   .  8D55 D4       lea     edx, dword ptr [ebp-2C]
    005EEC85   .  8B45 F4       mov     eax, dword ptr [ebp-C]              ;  结果字符串存入EAX
    005EEC88   .  E8 33A6E1FF   call    004092C0                            ;  结果字符串计算存入[ebp-2C]
    005EEC8D   .  8B45 D4       mov     eax, dword ptr [ebp-2C]             ;  结果字符串存入EAX
    005EEC90   .  8D55 D8       lea     edx, dword ptr [ebp-28]
    005EEC93   .  E8 D8A3E1FF   call    00409070                            ;  取用户名
    005EEC98   .  837D E4 00    cmp     dword ptr [ebp-1C], 0               ;  与0比较
    005EEC9C   .  75 0D         jnz     short 005EECAB                      ;  不等则跳
    005EEC9E   .  33C0          xor     eax, eax
    005EECA0   .  5A            pop     edx
    005EECA1   .  59            pop     ecx
    005EECA2   .  59            pop     ecx
    005EECA3   .  64:8910       mov     dword ptr fs:[eax], edx
    005EECA6   .  E9 B5020000   jmp     005EEF60
    005EECAB   >  837D D8 00    cmp     dword ptr [ebp-28], 0               ;  取结果字符串与0比较
    005EECAF   .  75 0D         jnz     short 005EECBE                      ;  不等则跳
    005EECB1   .  33C0          xor     eax, eax
    005EECB3   .  5A            pop     edx
    005EECB4   .  59            pop     ecx
    005EECB5   .  59            pop     ecx
    005EECB6   .  64:8910       mov     dword ptr fs:[eax], edx
    005EECB9   .  E9 A2020000   jmp     005EEF60
    005EECBE   >  8B45 D8       mov     eax, dword ptr [ebp-28]             ;  结果字符串存入EAX
    005EECC1   .  E8 4E5EE1FF   call    00404B14                            ;  假码长度存入EAX
    005EECC6   .  83F8 17       cmp     eax, 17                             ;  EAX与17H(23)比较
    005EECC9   .  75 71         jnz     short 005EED3C                      ;  不等则跳
    005EECCB   .  8D45 D0       lea     eax, dword ptr [ebp-30]
    005EECCE   .  50            push    eax
    005EECCF   .  B9 05000000   mov     ecx, 5
    005EECD4   .  BA 01000000   mov     edx, 1
    005EECD9   .  8B45 D8       mov     eax, dword ptr [ebp-28]             ;  假码存入EAX
    005EECDC   .  E8 8B60E1FF   call    00404D6C                            ;  取假码字符串前五位
    005EECE1   .  FF75 D0       push    dword ptr [ebp-30]
    005EECE4   .  8D45 CC       lea     eax, dword ptr [ebp-34]
    005EECE7   .  50            push    eax
    005EECE8   .  B9 05000000   mov     ecx, 5
    005EECED   .  BA 07000000   mov     edx, 7
    005EECF2   .  8B45 D8       mov     eax, dword ptr [ebp-28]             ;  假码存入EAX
    005EECF5   .  E8 7260E1FF   call    00404D6C                            ;  取假码字符串6~10位
    005EECFA   .  FF75 CC       push    dword ptr [ebp-34]
    005EECFD   .  8D45 C8       lea     eax, dword ptr [ebp-38]
    005EED00   .  50            push    eax
    005EED01   .  B9 05000000   mov     ecx, 5
    005EED06   .  BA 0D000000   mov     edx, 0D
    005EED0B   .  8B45 D8       mov     eax, dword ptr [ebp-28]             ;  假码存入EAX
    005EED0E   .  E8 5960E1FF   call    00404D6C                            ;  取假码字符串11~15位
    005EED13   .  FF75 C8       push    dword ptr [ebp-38]
    005EED16   .  8D45 C4       lea     eax, dword ptr [ebp-3C]
    005EED19   .  50            push    eax
    005EED1A   .  B9 05000000   mov     ecx, 5
    005EED1F   .  BA 13000000   mov     edx, 13
    005EED24   .  8B45 D8       mov     eax, dword ptr [ebp-28]             ;  假码存入EAX
    005EED27   .  E8 4060E1FF   call    00404D6C                            ;  取假码字符串161~20位
    005EED2C   .  FF75 C4       push    dword ptr [ebp-3C]
    005EED2F   .  8D45 D8       lea     eax, dword ptr [ebp-28]
    005EED32   .  BA 04000000   mov     edx, 4
    005EED37   .  E8 985EE1FF   call    00404BD4
    005EED3C   >  8B45 E4       mov     eax, dword ptr [ebp-1C]             ;  取用户名存入EAX
    005EED3F   .  E8 D05DE1FF   call    00404B14                            ;  取用户名位数存入EAX
    005EED44   .  83F8 03       cmp     eax, 3                              ;  用户名长度与3H比较
    005EED47   .  7C 0D         jl      short 005EED56                      ;  用户名长度≤3则跳
    005EED49   .  8B45 D8       mov     eax, dword ptr [ebp-28]             ;  假码存入EAX
    005EED4C   .  E8 C35DE1FF   call    00404B14                            ;  取假码位数存入EAX
    005EED51   .  83F8 14       cmp     eax, 14                             ;  假码长度与14H(20)比较
    005EED54   .  74 0D         je      short 005EED63                      ;  相等则跳
    005EED56   >  33C0          xor     eax, eax
    005EED58   .  5A            pop     edx
    005EED59   .  59            pop     ecx
    005EED5A   .  59            pop     ecx
    005EED5B   .  64:8910       mov     dword ptr fs:[eax], edx
    005EED5E   .  E9 FD010000   jmp     005EEF60
    005EED63   >  8D45 EC       lea     eax, dword ptr [ebp-14]
    005EED66   .  50            push    eax
    005EED67   .  B9 08000000   mov     ecx, 8
    005EED6C   .  BA 01000000   mov     edx, 1
    005EED71   .  8B45 D8       mov     eax, dword ptr [ebp-28]             ;  试炼码存入EAX
    005EED74   .  E8 F35FE1FF   call    00404D6C
    005EED79   .  8D45 E8       lea     eax, dword ptr [ebp-18]
    005EED7C   .  E8 DB5AE1FF   call    0040485C
    005EED81   .  BB 01000000   mov     ebx, 1
    005EED86   .  BE 01000000   mov     esi, 1
    005EED8B   .  BF 01000000   mov     edi, 1
    005EED90   .  EB 63         jmp     short 005EEDF5
    005EED92   >  8BC7          mov     eax, edi
    005EED94   .  25 01000080   and     eax, 80000001
    005EED99   .  79 05         jns     short 005EEDA0
    005EED9B   .  48            dec     eax
    005EED9C   .  83C8 FE       or      eax, FFFFFFFE
    005EED9F   .  40            inc     eax
    005EEDA0   >  85C0          test    eax, eax
    005EEDA2   .  75 29         jnz     short 005EEDCD
    005EEDA4   .  8B45 EC       mov     eax, dword ptr [ebp-14]             ;  假码前八位存入EAX
    005EEDA7   .  E8 685DE1FF   call    00404B14                            ;  假码位数存入EAX
    005EEDAC   .  3BD8          cmp     ebx, eax                            ;  EAX与EBX比较
    005EEDAE   .  7F 44         jg      short 005EEDF4                      ;  大于等于则跳
    005EEDB0   .  8D45 C0       lea     eax, dword ptr [ebp-40]
    005EEDB3   .  8B55 EC       mov     edx, dword ptr [ebp-14]             ;  假码存入EDX
    005EEDB6   .  8A541A FF     mov     dl, byte ptr [edx+ebx-1]            ;  假码ASCII值存入dl
    005EEDBA   .  E8 7D5CE1FF   call    00404A3C
    005EEDBF   .  8B55 C0       mov     edx, dword ptr [ebp-40]
    005EEDC2   .  8D45 E8       lea     eax, dword ptr [ebp-18]
    005EEDC5   .  E8 525DE1FF   call    00404B1C
    005EEDCA   .  43            inc     ebx
    005EEDCB   .  EB 27         jmp     short 005EEDF4
    005EEDCD   >  8B45 E4       mov     eax, dword ptr [ebp-1C]             ;  取用户名存入EAX
    005EEDD0   .  E8 3F5DE1FF   call    00404B14                            ;  计算用户名长度存入EAX
    005EEDD5   .  3BF0          cmp     esi, eax                            ;  EAX与ESI比较
    005EEDD7   .  7F 1B         jg      short 005EEDF4                      ;  大于等于则跳
    005EEDD9   .  8D45 BC       lea     eax, dword ptr [ebp-44]
    005EEDDC   .  8B55 E4       mov     edx, dword ptr [ebp-1C]             ;  用户名存入EDX
    005EEDDF   .  8A5432 FF     mov     dl, byte ptr [edx+esi-1]            ;  取假码后一半存入EDX
    005EEDE3   .  E8 545CE1FF   call    00404A3C
    005EEDE8   .  8B55 BC       mov     edx, dword ptr [ebp-44]
    005EEDEB   .  8D45 E8       lea     eax, dword ptr [ebp-18]
    005EEDEE   .  E8 295DE1FF   call    00404B1C
    005EEDF3   .  46            inc     esi
    005EEDF4   >  47            inc     edi
    005EEDF5   >  8B45 EC       mov     eax, dword ptr [ebp-14]             ;  试炼码前八位存入EAX
    005EEDF8   .  E8 175DE1FF   call    00404B14
    005EEDFD   .  3BD8          cmp     ebx, eax                            ;  EAX与EBX比较
    005EEDFF   .^ 7E 91         jle     short 005EED92                      ;  循环计算假码位数
    005EEE01   .  8B45 E4       mov     eax, dword ptr [ebp-1C]             ;  用户名存入EAX
    005EEE04   .  E8 0B5DE1FF   call    00404B14                            ;  取用户名长度存入EAX
    005EEE09   .  3BF0          cmp     esi, eax                            ;  用户名长度与9H比较
    005EEE0B   .^ 7E 85         jle     short 005EED92                      ;  用户名长度≤9则跳转
    005EEE0D   .  68 BCEF5E00   push    005EEFBC                            ;  ASCII "me4T6cBLV"
    005EEE12   .  FF75 EC       push    dword ptr [ebp-14]
    005EEE15   .  68 D0EF5E00   push    005EEFD0                            ;  ASCII "CpCwxrvCJZ30pKLu8Svxjhnhut437glCpofVssnFeBh2G0ekUq4VcxFintMix52vL0iJNbdtWqHPyeumkDUC+4AaoSX+xpl56Esonk4="
    005EEE1A   .  8D45 B8       lea     eax, dword ptr [ebp-48]
    005EEE1D   .  BA 03000000   mov     edx, 3
    005EEE22   .  E8 AD5DE1FF   call    00404BD4
    005EEE27   .  8B55 B8       mov     edx, dword ptr [ebp-48]             ;  字符串1+假码前八位+字符串2存入EDX
    005EEE2A   .  8B45 FC       mov     eax, dword ptr [ebp-4]
    005EEE2D   .  8B80 F8020000 mov     eax, dword ptr [eax+2F8]
    005EEE33   .  8B0D 782A5E00 mov     ecx, dword ptr [5E2A78]             ;  UnPack_.005E2AC4
    005EEE39   .  E8 F610FFFF   call    005DFF34
    005EEE3E   .  8D45 AC       lea     eax, dword ptr [ebp-54]
    005EEE41   .  8B55 EC       mov     edx, dword ptr [ebp-14]             ;  假码前八位存入EDX
    005EEE44   .  E8 9362E1FF   call    004050DC
    005EEE49   .  FF75 AC       push    dword ptr [ebp-54]
    005EEE4C   .  A1 64EE6500   mov     eax, dword ptr [65EE64]
    005EEE51   .  8B00          mov     eax, dword ptr [eax]
    005EEE53   .  FFB0 C8040000 push    dword ptr [eax+4C8]                 ;  96338
    005EEE59   .  8D45 A8       lea     eax, dword ptr [ebp-58]
    005EEE5C   .  8B55 E8       mov     edx, dword ptr [ebp-18]             ;  SCPRRAICNKGB_Y2S050存入EDX
    005EEE5F   .  E8 7862E1FF   call    004050DC                            ;  组合字符串1存入EAX
    005EEE64   .  FF75 A8       push    dword ptr [ebp-58]
    005EEE67   .  8D45 B0       lea     eax, dword ptr [ebp-50]
    005EEE6A   .  BA 03000000   mov     edx, 3
    005EEE6F   .  E8 F462E1FF   call    00405168
    005EEE74   .  8B55 B0       mov     edx, dword ptr [ebp-50]             ;  “假码前八位+96338+组合字符串”存入EDX
    005EEE77   .  8D45 B4       lea     eax, dword ptr [ebp-4C]
    005EEE7A   .  E8 5D5CE1FF   call    00404ADC
    005EEE7F   .  8B55 B4       mov     edx, dword ptr [ebp-4C]             ;  组合字符串2存入EDX
    005EEE82   .  8B45 FC       mov     eax, dword ptr [ebp-4]
    005EEE85   .  8B80 F4020000 mov     eax, dword ptr [eax+2F4]
    005EEE8B   .  8B0D A8405E00 mov     ecx, dword ptr [5E40A8]             ;  UnPack_.005E40F4
    005EEE91   .  E8 9E10FFFF   call    005DFF34                            ;  组合字符串2存入ECX
    005EEE96   .  8D4D E0       lea     ecx, dword ptr [ebp-20]
    005EEE99   .  8B45 FC       mov     eax, dword ptr [ebp-4]
    005EEE9C   .  8B80 F8020000 mov     eax, dword ptr [eax+2F8]
    005EEEA2   .  8B55 E8       mov     edx, dword ptr [ebp-18]             ;  组合字符串1存入EDX
    005EEEA5   .  8B18          mov     ebx, dword ptr [eax]
    005EEEA7   .  FF53 54       call    dword ptr [ebx+54]                  ;  加密算法1
    005EEEAA   .  8D4D A4       lea     ecx, dword ptr [ebp-5C]
    005EEEAD   .  8B45 FC       mov     eax, dword ptr [ebp-4]
    005EEEB0   .  8B80 F4020000 mov     eax, dword ptr [eax+2F4]
    005EEEB6   .  8B55 E0       mov     edx, dword ptr [ebp-20]
    005EEEB9   .  8B18          mov     ebx, dword ptr [eax]
    005EEEBB   .  FF53 54       call    dword ptr [ebx+54]                  ;  加密算法2
    005EEEBE   .  8B55 A4       mov     edx, dword ptr [ebp-5C]
    005EEEC1   .  8D45 E0       lea     eax, dword ptr [ebp-20]
    005EEEC4   .  E8 2B5AE1FF   call    004048F4
    005EEEC9   .  8D45 DC       lea     eax, dword ptr [ebp-24]
    005EEECC   .  E8 8B59E1FF   call    0040485C
    005EEED1   .  8B45 E0       mov     eax, dword ptr [ebp-20]             ;  加密字符串2存入EAX
    005EEED4   .  E8 3B5CE1FF   call    00404B14
    005EEED9   .  8BF0          mov     esi, eax
    005EEEDB   .  85F6          test    esi, esi
    005EEEDD   .  7E 46         jle     short 005EEF25
    005EEEDF   .  BB 01000000   mov     ebx, 1
    005EEEE4   >  8B45 E0       mov     eax, dword ptr [ebp-20]             ;  加密字符串2存入EAX
    005EEEE7   .  8A4418 FF     mov     al, byte ptr [eax+ebx-1]            ;  取加密字符串2第一位
    005EEEEB   .  3C 41         cmp     al, 41                              ;  与41H(A)比较
    005EEEED   .  72 32         jb      short 005EEF21                      ;  小于等于则跳
    005EEEEF   .  8B45 E0       mov     eax, dword ptr [ebp-20]             ;  加密字符串2存入EAX
    005EEEF2   .  8A4418 FF     mov     al, byte ptr [eax+ebx-1]            ;  取加密字符串2第一位
    005EEEF6   .  3C 5A         cmp     al, 5A                              ;  与5AH(Z)比较
    005EEEF8   .  77 27         ja      short 005EEF21                      ;  大于等于则跳
    005EEEFA   .  8B45 DC       mov     eax, dword ptr [ebp-24]
    005EEEFD   .  E8 125CE1FF   call    00404B14
    005EEF02   .  83F8 08       cmp     eax, 8
    005EEF05   .  7D 1A         jge     short 005EEF21
    005EEF07   .  8D45 A0       lea     eax, dword ptr [ebp-60]
    005EEF0A   .  8B55 E0       mov     edx, dword ptr [ebp-20]             ;  取加密字符串2存入EDX
    005EEF0D   .  8A541A FF     mov     dl, byte ptr [edx+ebx-1]            ;  取加密字符串2第一位
    005EEF11   .  E8 265BE1FF   call    00404A3C
    005EEF16   .  8B55 A0       mov     edx, dword ptr [ebp-60]
    005EEF19   .  8D45 DC       lea     eax, dword ptr [ebp-24]
    005EEF1C   .  E8 FB5BE1FF   call    00404B1C
    005EEF21   >  43            inc     ebx
    005EEF22   .  4E            dec     esi
    005EEF23   .^ 75 BF         jnz     short 005EEEE4                      ;  逐位取加密字符串循环计算,算法不明白,功力不够哈^_^
    005EEF25   >  8D45 9C       lea     eax, dword ptr [ebp-64]
    005EEF28   .  50            push    eax
    005EEF29   .  B9 08000000   mov     ecx, 8
    005EEF2E   .  BA 09000000   mov     edx, 9
    005EEF33   .  8B45 D8       mov     eax, dword ptr [ebp-28]             ;  取假码存入EAX
    005EEF36   .  E8 315EE1FF   call    00404D6C
    005EEF3B   .  8B55 9C       mov     edx, dword ptr [ebp-64]             ;  假码9~16位存入EDX
    005EEF3E   .  8B45 DC       mov     eax, dword ptr [ebp-24]             ;  [ebp-24]存入EAX,[ebp-24]里面存放的是加密字符串2里面的大写字母
    005EEF41   .  E8 125DE1FF   call    00404C58                            ;  关键CALL,比较,计算注册码9~16位
    005EEF46   .  75 04         jnz     short 005EEF4C                      ;  相等则跳
    005EEF48   .  C645 F3 01    mov     byte ptr [ebp-D], 1
    005EEF4C   >  33C0          xor     eax, eax
    ===========================================================================================================================================
    跟进第二个关键CALL[005EF488]后来到这里:
    005EF488  /$  55            push    ebp
    005EF489  |.  8BEC          mov     ebp, esp
    005EF48B  |.  83C4 F4       add     esp, -0C
    005EF48E  |.  53            push    ebx
    005EF48F  |.  33DB          xor     ebx, ebx
    005EF491  |.  895D F4       mov     dword ptr [ebp-C], ebx
    005EF494  |.  894D F8       mov     dword ptr [ebp-8], ecx
    005EF497  |.  8955 FC       mov     dword ptr [ebp-4], edx
    005EF49A  |.  8BD8          mov     ebx, eax
    005EF49C  |.  8B45 FC       mov     eax, dword ptr [ebp-4]              ;  用户名存入EAX
    005EF49F  |.  E8 5858E1FF   call    00404CFC
    005EF4A4  |.  8B45 F8       mov     eax, dword ptr [ebp-8]              ;  假码字符串存入EAX
    005EF4A7  |.  E8 5058E1FF   call    00404CFC
    005EF4AC  |.  33C0          xor     eax, eax                            ;  EAX清零
    005EF4AE  |.  55            push    ebp
    005EF4AF  |.  68 0AF55E00   push    005EF50A
    005EF4B4  |.  64:FF30       push    dword ptr fs:[eax]
    005EF4B7  |.  64:8920       mov     dword ptr fs:[eax], esp
    005EF4BA  |.  8B4D F8       mov     ecx, dword ptr [ebp-8]              ;  假码字符串存入ECX
    005EF4BD  |.  8B55 FC       mov     edx, dword ptr [ebp-4]              ;  用户名存入EDX
    005EF4C0  |.  8BC3          mov     eax, ebx
    005EF4C2  |.  E8 75FBFFFF   call    005EF03C                            ;  计算16~20位注册码
    005EF4C7  |.  84C0          test    al, al
    005EF4C9  |.  75 20         jnz     short 005EF4EB
    005EF4CB  |.  8D55 F4       lea     edx, dword ptr [ebp-C]
    005EF4CE  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
    005EF4D1  |.  E8 5AB00500   call    0064A530
    005EF4D6  |.  8B55 F4       mov     edx, dword ptr [ebp-C]
    005EF4D9  |.  8B4D F8       mov     ecx, dword ptr [ebp-8]
    005EF4DC  |.  8BC3          mov     eax, ebx
    005EF4DE  |.  E8 59FBFFFF   call    005EF03C
    005EF4E3  |.  84C0          test    al, al
    005EF4E5  |.  75 04         jnz     short 005EF4EB
    005EF4E7  |.  33C0          xor     eax, eax
    005EF4E9  |.  EB 02         jmp     short 005EF4ED
    005EF4EB  |>  B0 01         mov     al, 1
    005EF4ED  |>  8BD8          mov     ebx, eax
    005EF4EF  |.  33C0          xor     eax, eax
    005EF4F1  |.  5A            pop     edx
    005EF4F2  |.  59            pop     ecx
    005EF4F3  |.  59            pop     ecx
    005EF4F4  |.  64:8910       mov     dword ptr fs:[eax], edx
    005EF4F7  |.  68 11F55E00   push    005EF511
    005EF4FC  |>  8D45 F4       lea     eax, dword ptr [ebp-C]
    005EF4FF  |.  BA 03000000   mov     edx, 3
    005EF504  |.  E8 7753E1FF   call    00404880
    005EF509  \.  C3            retn
    005EF50A   .^ E9 F14CE1FF   jmp     00404200
    005EF50F   .^ EB EB         jmp     short 005EF4FC
    005EF511   .  8BC3          mov     eax, ebx
    005EF513   .  5B            pop     ebx
    005EF514   .  8BE5          mov     esp, ebp
    005EF516   .  5D            pop     ebp
    005EF517   .  C3            retn
    ===========================================================================================================================================
    005EF03C   $  55            push    ebp
    005EF03D   .  8BEC          mov     ebp, esp
    005EF03F   .  51            push    ecx
    005EF040   .  B9 0B000000   mov     ecx, 0B
    005EF045   >  6A 00         push    0
    005EF047   .  6A 00         push    0
    005EF049   .  49            dec     ecx
    005EF04A   .^ 75 F9         jnz     short 005EF045
    005EF04C   .  51            push    ecx
    005EF04D   .  874D FC       xchg    dword ptr [ebp-4], ecx
    005EF050   .  53            push    ebx
    005EF051   .  56            push    esi
    005EF052   .  57            push    edi
    005EF053   .  894D F4       mov     dword ptr [ebp-C], ecx              ;  假码存入[ebp-C]
    005EF056   .  8955 F8       mov     dword ptr [ebp-8], edx              ;  用户名存入[ebp-8]
    005EF059   .  8945 FC       mov     dword ptr [ebp-4], eax
    005EF05C   .  8B45 F8       mov     eax, dword ptr [ebp-8]
    005EF05F   .  E8 985CE1FF   call    00404CFC
    005EF064   .  8B45 F4       mov     eax, dword ptr [ebp-C]
    005EF067   .  E8 905CE1FF   call    00404CFC
    005EF06C   .  33C0          xor     eax, eax
    005EF06E   .  55            push    ebp
    005EF06F   .  68 86F35E00   push    005EF386
    005EF074   .  64:FF30       push    dword ptr fs:[eax]
    005EF077   .  64:8920       mov     dword ptr fs:[eax], esp
    005EF07A   .  33C0          xor     eax, eax
    005EF07C   .  55            push    ebp
    005EF07D   .  68 3AF35E00   push    005EF33A
    005EF082   .  64:FF30       push    dword ptr fs:[eax]
    005EF085   .  64:8920       mov     dword ptr fs:[eax], esp
    005EF088   .  8D55 E4       lea     edx, dword ptr [ebp-1C]
    005EF08B   .  8B45 F8       mov     eax, dword ptr [ebp-8]              ;  用户名存入EAX
    005EF08E   .  E8 DD9FE1FF   call    00409070
    005EF093   .  8D55 D4       lea     edx, dword ptr [ebp-2C]
    005EF096   .  8B45 F4       mov     eax, dword ptr [ebp-C]              ;  假码存入EAX
    005EF099   .  E8 22A2E1FF   call    004092C0
    005EF09E   .  8B45 D4       mov     eax, dword ptr [ebp-2C]
    005EF0A1   .  8D55 D8       lea     edx, dword ptr [ebp-28]
    005EF0A4   .  E8 C79FE1FF   call    00409070
    005EF0A9   .  8B45 D8       mov     eax, dword ptr [ebp-28]
    005EF0AC   .  E8 635AE1FF   call    00404B14                            ;  取假码位数存入EAX
    005EF0B1   .  83F8 17       cmp     eax, 17                             ;  假码位数与17H比较
    005EF0B4   .  75 71         jnz     short 005EF127                      ;  不等则跳转
    005EF0B6   .  8D45 D0       lea     eax, dword ptr [ebp-30]
    005EF0B9   .  50            push    eax
    005EF0BA   .  B9 05000000   mov     ecx, 5
    005EF0BF   .  BA 01000000   mov     edx, 1
    005EF0C4   .  8B45 D8       mov     eax, dword ptr [ebp-28]             ;  假码存入EAX
    005EF0C7   .  E8 A05CE1FF   call    00404D6C
    005EF0CC   .  FF75 D0       push    dword ptr [ebp-30]                  ;  取假码前五位
    005EF0CF   .  8D45 CC       lea     eax, dword ptr [ebp-34]
    005EF0D2   .  50            push    eax
    005EF0D3   .  B9 05000000   mov     ecx, 5
    005EF0D8   .  BA 07000000   mov     edx, 7
    005EF0DD   .  8B45 D8       mov     eax, dword ptr [ebp-28]
    005EF0E0   .  E8 875CE1FF   call    00404D6C                            ;  取假码6~10位
    005EF0E5   .  FF75 CC       push    dword ptr [ebp-34]
    005EF0E8   .  8D45 C8       lea     eax, dword ptr [ebp-38]
    005EF0EB   .  50            push    eax
    005EF0EC   .  B9 05000000   mov     ecx, 5
    005EF0F1   .  BA 0D000000   mov     edx, 0D
    005EF0F6   .  8B45 D8       mov     eax, dword ptr [ebp-28]
    005EF0F9   .  E8 6E5CE1FF   call    00404D6C                            ;  取假码11~15位
    005EF0FE   .  FF75 C8       push    dword ptr [ebp-38]
    005EF101   .  8D45 C4       lea     eax, dword ptr [ebp-3C]
    005EF104   .  50            push    eax
    005EF105   .  B9 05000000   mov     ecx, 5
    005EF10A   .  BA 13000000   mov     edx, 13
    005EF10F   .  8B45 D8       mov     eax, dword ptr [ebp-28]
    005EF112   .  E8 555CE1FF   call    00404D6C                            ;  取假码16~20位
    005EF117   .  FF75 C4       push    dword ptr [ebp-3C]
    005EF11A   .  8D45 D8       lea     eax, dword ptr [ebp-28]
    005EF11D   .  BA 04000000   mov     edx, 4
    005EF122   .  E8 AD5AE1FF   call    00404BD4
    005EF127   >  8B45 E4       mov     eax, dword ptr [ebp-1C]             ;  用户名存入EAX
    005EF12A   .  E8 E559E1FF   call    00404B14                            ;  计算用户名位数存入EAX
    005EF12F   .  83F8 03       cmp     eax, 3                              ;  用户名位数与3比较
    005EF132   .  7C 0D         jl      short 005EF141                      ;  小于等于3则跳转
    005EF134   .  8B45 D8       mov     eax, dword ptr [ebp-28]             ;  假码存入EAX
    005EF137   .  E8 D859E1FF   call    00404B14                            ;  计算假码位数存入EAX
    005EF13C   .  83F8 14       cmp     eax, 14                             ;  用户名长度与14H(20)比较
    005EF13F   .  74 0D         je      short 005EF14E                      ;  相等则跳
    005EF141   >  33C0          xor     eax, eax
    005EF143   .  5A            pop     edx
    005EF144   .  59            pop     ecx
    005EF145   .  59            pop     ecx
    005EF146   .  64:8910       mov     dword ptr fs:[eax], edx
    005EF149   .  E9 F6010000   jmp     005EF344
    005EF14E   >  8D45 EC       lea     eax, dword ptr [ebp-14]
    005EF151   .  50            push    eax
    005EF152   .  B9 08000000   mov     ecx, 8
    005EF157   .  BA 01000000   mov     edx, 1
    005EF15C   .  8B45 D8       mov     eax, dword ptr [ebp-28]
    005EF15F   .  E8 085CE1FF   call    00404D6C
    005EF164   .  8D45 E8       lea     eax, dword ptr [ebp-18]
    005EF167   .  E8 F056E1FF   call    0040485C
    005EF16C   .  BB 01000000   mov     ebx, 1
    005EF171   .  BE 01000000   mov     esi, 1
    005EF176   .  BF 01000000   mov     edi, 1
    005EF17B   .  EB 63         jmp     short 005EF1E0
    005EF17D   >  8BC7          mov     eax, edi
    005EF17F   .  25 01000080   and     eax, 80000001
    005EF184   .  79 05         jns     short 005EF18B
    005EF186   .  48            dec     eax
    005EF187   .  83C8 FE       or      eax, FFFFFFFE
    005EF18A   .  40            inc     eax
    005EF18B   >  85C0          test    eax, eax
    005EF18D   .  75 29         jnz     short 005EF1B8
    005EF18F   .  8B45 EC       mov     eax, dword ptr [ebp-14]
    005EF192   .  E8 7D59E1FF   call    00404B14
    005EF197   .  3BD8          cmp     ebx, eax
    005EF199   .  7F 44         jg      short 005EF1DF
    005EF19B   .  8D45 C0       lea     eax, dword ptr [ebp-40]
    005EF19E   .  8B55 EC       mov     edx, dword ptr [ebp-14]
    005EF1A1   .  8A541A FF     mov     dl, byte ptr [edx+ebx-1]
    005EF1A5   .  E8 9258E1FF   call    00404A3C
    005EF1AA   .  8B55 C0       mov     edx, dword ptr [ebp-40]
    005EF1AD   .  8D45 E8       lea     eax, dword ptr [ebp-18]
    005EF1B0   .  E8 6759E1FF   call    00404B1C
    005EF1B5   .  43            inc     ebx
    005EF1B6   .  EB 27         jmp     short 005EF1DF
    005EF1B8   >  8B45 E4       mov     eax, dword ptr [ebp-1C]             ;  取用户名
    005EF1BB   .  E8 5459E1FF   call    00404B14                            ;  取用户名位数
    005EF1C0   .  3BF0          cmp     esi, eax                            ;  EAX与ESI比较
    005EF1C2   .  7F 1B         jg      short 005EF1DF                      ;  大于等于则跳
    005EF1C4   .  8D45 BC       lea     eax, dword ptr [ebp-44]
    005EF1C7   .  8B55 E4       mov     edx, dword ptr [ebp-1C]             ;  取用户名存入EDX
    005EF1CA   .  8A5432 FF     mov     dl, byte ptr [edx+esi-1]            ;  逐位取用户名
    005EF1CE   .  E8 6958E1FF   call    00404A3C                            ;  假码后七位
    005EF1D3   .  8B55 BC       mov     edx, dword ptr [ebp-44]
    005EF1D6   .  8D45 E8       lea     eax, dword ptr [ebp-18]
    005EF1D9   .  E8 3E59E1FF   call    00404B1C
    005EF1DE   .  46            inc     esi
    005EF1DF   >  47            inc     edi
    005EF1E0   >  8B45 EC       mov     eax, dword ptr [ebp-14]             ;  假码前八位
    005EF1E3   .  E8 2C59E1FF   call    00404B14                            ;  假码位数计数器
    005EF1E8   .  3BD8          cmp     ebx, eax                            ;  EAX与EBX比较
    005EF1EA   .^ 7E 91         jle     short 005EF17D                      ;  循环计算!
    005EF1EC   .  8B45 E4       mov     eax, dword ptr [ebp-1C]             ;  用户名存入EAX
    005EF1EF   .  E8 2059E1FF   call    00404B14                            ;  计算用户名位数
    005EF1F4   .  3BF0          cmp     esi, eax                            ;  EAX与ESI比较
    005EF1F6   .^ 7E 85         jle     short 005EF17D                      ;  小于等于则跳,循环依次取用户名和注册码计算
    005EF1F8   .  8B45 FC       mov     eax, dword ptr [ebp-4]
    005EF1FB   .  8B80 F8020000 mov     eax, dword ptr [eax+2F8]
    005EF201   .  8B0D A8405E00 mov     ecx, dword ptr [5E40A8]             ;  UnPack_.005E40F4
    005EF207   .  BA A0F35E00   mov     edx, 005EF3A0                       ;  ASCII  
    "09232849248398340903834873297239340547237623242043324398489390309284343843223493299435"
    005EF20C   .  E8 230DFFFF   call    005DFF34
    005EF211   .  8D45 B0       lea     eax, dword ptr [ebp-50]
    005EF214   .  8B55 EC       mov     edx, dword ptr [ebp-14]             ;  假码前八位存入EDX
    005EF217   .  E8 C05EE1FF   call    004050DC
    005EF21C   .  FF75 B0       push    dword ptr [ebp-50]
    005EF21F   .  A1 64EE6500   mov     eax, dword ptr [65EE64]
    005EF224   .  8B00          mov     eax, dword ptr [eax]
    005EF226   .  FFB0 C8040000 push    dword ptr [eax+4C8]                 ;  96338
    005EF22C   .  8D45 AC       lea     eax, dword ptr [ebp-54]
    005EF22F   .  8B55 E8       mov     edx, dword ptr [ebp-18]             ;  用户名(大写)前八位与假码前八位奇偶组合
    005EF232   .  E8 A55EE1FF   call    004050DC
    005EF237   .  FF75 AC       push    dword ptr [ebp-54]
    005EF23A   .  8D45 B4       lea     eax, dword ptr [ebp-4C]
    005EF23D   .  BA 03000000   mov     edx, 3
    005EF242   .  E8 215FE1FF   call    00405168
    005EF247   .  8B55 B4       mov     edx, dword ptr [ebp-4C]             ;  “假码前八位+96338+组合字符串”存入EDX
    005EF24A   .  8D45 B8       lea     eax, dword ptr [ebp-48]
    005EF24D   .  E8 8A58E1FF   call    00404ADC
    005EF252   .  8B55 B8       mov     edx, dword ptr [ebp-48]
    005EF255   .  8B45 FC       mov     eax, dword ptr [ebp-4]
    005EF258   .  8B80 F4020000 mov     eax, dword ptr [eax+2F4]
    005EF25E   .  8B0D 782A5E00 mov     ecx, dword ptr [5E2A78]             ;  UnPack_.005E2AC4
    005EF264   .  E8 CB0CFFFF   call    005DFF34
    005EF269   .  8B45 EC       mov     eax, dword ptr [ebp-14]             ;  假码前八位存入EAX
    005EF26C   .  0FB630        movzx   esi, byte ptr [eax]                 ;  取假码第一位ASCII值存入ESI
    005EF26F   .  83EE 32       sub     esi, 32                             ;  假码第一位ASCII值C-32H=11H存入ESI
    005EF272   .  85F6          test    esi, esi
    005EF274   .  7C 18         jl      short 005EF28E
    005EF276   .  46            inc     esi                                 ;  ESI+1结果存入ESI
    005EF277   >  8D4D E0       lea     ecx, dword ptr [ebp-20]
    005EF27A   .  8B45 FC       mov     eax, dword ptr [ebp-4]
    005EF27D   .  8B80 F4020000 mov     eax, dword ptr [eax+2F4]
    005EF283   .  8B55 E8       mov     edx, dword ptr [ebp-18]
    005EF286   .  8B18          mov     ebx, dword ptr [eax]
    005EF288   .  FF53 54       call    dword ptr [ebx+54]                  ;  加密算法3
    005EF28B   .  4E            dec     esi                                 ;  ESI-1结果存入ESI
    005EF28C   .^ 75 E9         jnz     short 005EF277                      ;  循环计算
    005EF28E   >  8D4D A8       lea     ecx, dword ptr [ebp-58]
    005EF291   .  8B45 FC       mov     eax, dword ptr [ebp-4]
    005EF294   .  8B80 F8020000 mov     eax, dword ptr [eax+2F8]
    005EF29A   .  8B55 E0       mov     edx, dword ptr [ebp-20]             ;  加密字符串3
    005EF29D   .  8B18          mov     ebx, dword ptr [eax]
    005EF29F   .  FF53 54       call    dword ptr [ebx+54]
    005EF2A2   .  8B55 A8       mov     edx, dword ptr [ebp-58]             ;  加密字符串4
    005EF2A5   .  8D45 E0       lea     eax, dword ptr [ebp-20]
    005EF2A8   .  E8 4756E1FF   call    004048F4
    005EF2AD   .  8D45 DC       lea     eax, dword ptr [ebp-24]
    005EF2B0   .  E8 A755E1FF   call    0040485C
    005EF2B5   .  8B45 E0       mov     eax, dword ptr [ebp-20]             ;  加密字符串
    005EF2B8   .  E8 5758E1FF   call    00404B14
    005EF2BD   .  8BF0          mov     esi, eax
    005EF2BF   .  85F6          test    esi, esi
    005EF2C1   .  7E 46         jle     short 005EF309
    005EF2C3   .  BB 01000000   mov     ebx, 1
    005EF2C8   >  8B45 E0       mov     eax, dword ptr [ebp-20]
    005EF2CB   .  8A4418 FF     mov     al, byte ptr [eax+ebx-1]
    005EF2CF   .  3C 41         cmp     al, 41
    005EF2D1   .  72 32         jb      short 005EF305
    005EF2D3   .  8B45 E0       mov     eax, dword ptr [ebp-20]
    005EF2D6   .  8A4418 FF     mov     al, byte ptr [eax+ebx-1]
    005EF2DA   .  3C 5A         cmp     al, 5A
    005EF2DC   .  77 27         ja      short 005EF305
    005EF2DE   .  8B45 DC       mov     eax, dword ptr [ebp-24]
    005EF2E1   .  E8 2E58E1FF   call    00404B14
    005EF2E6   .  83F8 04       cmp     eax, 4
    005EF2E9   .  7D 1A         jge     short 005EF305
    005EF2EB   .  8D45 A4       lea     eax, dword ptr [ebp-5C]
    005EF2EE   .  8B55 E0       mov     edx, dword ptr [ebp-20]
    005EF2F1   .  8A541A FF     mov     dl, byte ptr [edx+ebx-1]
    005EF2F5   .  E8 4257E1FF   call    00404A3C
    005EF2FA   .  8B55 A4       mov     edx, dword ptr [ebp-5C]
    005EF2FD   .  8D45 DC       lea     eax, dword ptr [ebp-24]
    005EF300   .  E8 1758E1FF   call    00404B1C
    005EF305   >  43            inc     ebx
    005EF306   .  4E            dec     esi
    005EF307   .^ 75 BF         jnz     short 005EF2C8                      ;  循环计算
    005EF309   >  8D45 A0       lea     eax, dword ptr [ebp-60]
    005EF30C   .  50            push    eax
    005EF30D   .  B9 04000000   mov     ecx, 4
    005EF312   .  BA 11000000   mov     edx, 11
    005EF317   .  8B45 D8       mov     eax, dword ptr [ebp-28]             ;  取假码
    005EF31A   .  E8 4D5AE1FF   call    00404D6C
    005EF31F   .  8B55 A0       mov     edx, dword ptr [ebp-60]             ;  假码最后四位存入EDX
    005EF322   .  8B45 DC       mov     eax, dword ptr [ebp-24]             ;  计算结果前四位大写字母存入EAX
    005EF325   .  E8 2E59E1FF   call    00404C58                          ;  关键CALL,比较,后四位计算结果
    005EF32A   .  75 04         jnz     short 005EF330
    005EF32C   .  C645 F3 01    mov     byte ptr [ebp-D], 1
    005EF330   >  33C0          xor     eax, eax
    ===========================================================================================================================================
    总结:

    算法就不总结了,由于功力不到家,写了一下午,也没不清楚,我的破解分析笔记都记录在UnPack_.udd里面了,写的比较乱,凑合着看吧,附件里面的Word版笔记根据颜色找相应代码可便于阅读!

    一组可用注册信息:
    用户名:Spring_2050
    注册码:CRACK-BYSEE-QZXIC-CMYFW

    支持飘云阁,回报飘云阁!

    附两张胜利截图:
    注册成功.gif
    关于.gif

    附件下载:
    FastStone Capture v6.5汉化版算法分析.part01.rar (976.56 KB, 下载次数: 8) FastStone Capture v6.5汉化版算法分析.part02.rar (976.56 KB, 下载次数: 6) FastStone Capture v6.5汉化版算法分析.part03.rar (976.56 KB, 下载次数: 6) FastStone Capture v6.5汉化版算法分析.part04.rar (877.54 KB, 下载次数: 8)

    评分

    参与人数 1威望 +40 飘云币 +80 收起 理由
    Luckly + 40 + 80 感谢您发布的原创作品!

    查看全部评分

    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2015-8-23 23:49
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2010-1-12 09:34:05 | 显示全部楼层
    兄弟高产哈。顶下了!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2010-1-12 10:09:02 | 显示全部楼层
    感谢啊!学习一下!
    PYG19周年生日快乐!
  • TA的每日心情

    2015-11-21 19:12
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2010-1-12 10:53:37 | 显示全部楼层
    学习算法 UP
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2015-8-3 23:07
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2010-1-12 11:37:35 | 显示全部楼层
    学习下,
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-5-1 14:44
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2010-1-12 12:18:50 | 显示全部楼层
    厉害!!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2022-11-26 13:46
  • 签到天数: 7 天

    [LV.3]偶尔看看II

     楼主| 发表于 2010-1-12 13:31:44 | 显示全部楼层

    回复 6# tianxj 的帖子

    小弟班门弄斧了,努力ING!:loveliness:
    谢谢T大!/:good
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2019-4-26 10:19
  • 签到天数: 14 天

    [LV.3]偶尔看看II

    发表于 2010-1-12 14:24:19 | 显示全部楼层
    分析的很详细,继续把注册机写出来吧/:good
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2010-1-17 18:31:28 | 显示全部楼层
    不错,兄弟真的很高产
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2015-10-9 11:25
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2010-1-24 21:09:10 | 显示全部楼层
    学习了,写的很好
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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