【破文标题】非常简单的Calendar Builder 3.45注册算法
【破文作者】XXNB
【作者邮箱】
【作者主页】http://free.ys168.com/?binbinbin7456
【破解工具】OD
【破解平台】xpsp2
【软件名称】Calendar Builder 3.45
【软件大小】1727KB
【原版下载】http://www.onlinedown.net/soft/3467.htm
【保护方式】名+码
【软件简介】非常棒的日历制作软件,程序内建多种的日历模式样板,如每月、每年、每周等等,它支持中文字形,可加入文字及喜欢的图片

,更可将每个节日放上喜欢的ICON来表示,相当不错,设计完并可将它打出来使用。 
【破解声明】向大侠们学习!!!
------------------------------------------------------------------------
【破解过程】
------------------------------------------------------------------------
献给象我一样想学算法的同志们


1、字符串查找“invalid serial number or name.\n\nyou may need to remove one or more periods from the name”,可以找到如下代码



004DAFE8  /.  55            push    ebp
004DAFE9  |.  8BEC          mov     ebp, esp
004DAFEB  |.  33C9          xor     ecx, ecx
004DAFED  |.  51            push    ecx
004DAFEE  |.  51            push    ecx
004DAFEF  |.  51            push    ecx
004DAFF0  |.  51            push    ecx
004DAFF1  |.  51            push    ecx
004DAFF2  |.  51            push    ecx
004DAFF3  |.  53            push    ebx
004DAFF4  |.  56            push    esi
004DAFF5  |.  57            push    edi
004DAFF6  |.  8945 F4       mov     [ebp-C], eax
004DAFF9  |.  33C0          xor     eax, eax
004DAFFB  |.  55            push    ebp
004DAFFC  |.  68 D2B14D00   push    004DB1D2
004DB001  |.  64:FF30       push    dword ptr fs:[eax]
004DB004  |.  64:8920       mov     fs:[eax], esp
004DB007  |.  8D4D F0       lea     ecx, [ebp-10]
004DB00A  |.  8B45 F4       mov     eax, [ebp-C]
004DB00D  |.  8B80 D0010000 mov     eax, [eax+1D0]                   ;  CB
004DB013  |.  BA 20000000   mov     edx, 20
004DB018  |.  E8 1BEBFFFF   call    004D9B38
004DB01D  |.  8D55 EC       lea     edx, [ebp-14]
004DB020  |.  8B45 F4       mov     eax, [ebp-C]
004DB023  |.  8B80 AC010000 mov     eax, [eax+1AC]
004DB029  |.  E8 46ACF3FF   call    00415C74
004DB02E  |.  8B45 EC       mov     eax, [ebp-14]                    ;  用户名
004DB031  |.  8D55 FC       lea     edx, [ebp-4]
004DB034  |.  E8 B3CEFFFF   call    004D7EEC
004DB039  |.  8B45 FC       mov     eax, [ebp-4]                     ;  用户名
004DB03C  |.  E8 D787F2FF   call    00403818                         ;  计算位数函数
004DB041  |.  85C0          test    eax, eax
004DB043  |.  0F84 56010000 je      004DB19F
004DB049  |.  8D55 F8       lea     edx, [ebp-8]
004DB04C  |.  8B45 F4       mov     eax, [ebp-C]
004DB04F  |.  8B80 B0010000 mov     eax, [eax+1B0]
004DB055  |.  E8 1AACF3FF   call    00415C74
004DB05A  |.  8B45 F4       mov     eax, [ebp-C]
004DB05D  |.  8B88 D0010000 mov     ecx, [eax+1D0]                   ;  CB
004DB063  |.  8B55 F8       mov     edx, [ebp-8]                     ;  假码
004DB066  |.  8B45 FC       mov     eax, [ebp-4]                     ;  用户名
004DB069  |.  E8 5AF0FFFF   call    004DA0C8                         ;  想都不用想了。这个关键call
004DB06E  |.  84C0          test    al, al                           ;标志位
004DB070  |.  74 12         je      short 004DB084                   ;关键跳

2、跟进 004DB069   call    004DA0C8   得到:

004DA0C8  /$  55            push    ebp
004DA0C9  |.  8BEC          mov     ebp, esp
004DA0CB  |.  6A 00         push    0
004DA0CD  |.  6A 00         push    0
004DA0CF  |.  6A 00         push    0
004DA0D1  |.  6A 00         push    0
004DA0D3  |.  6A 00         push    0
004DA0D5  |.  6A 00         push    0
004DA0D7  |.  6A 00         push    0
004DA0D9  |.  6A 00         push    0
004DA0DB  |.  53            push    ebx
004DA0DC  |.  56            push    esi
004DA0DD  |.  57            push    edi
004DA0DE  |.  894D F4       mov     [ebp-C], ecx
004DA0E1  |.  8955 F8       mov     [ebp-8], edx
004DA0E4  |.  8945 FC       mov     [ebp-4], eax
004DA0E7  |.  8B45 FC       mov     eax, [ebp-4]
004DA0EA  |.  E8 DD98F2FF   call    004039CC
004DA0EF  |.  8B45 F8       mov     eax, [ebp-8]
004DA0F2  |.  E8 D598F2FF   call    004039CC
004DA0F7  |.  8B45 F4       mov     eax, [ebp-C]
004DA0FA  |.  E8 CD98F2FF   call    004039CC
004DA0FF  |.  33C0          xor     eax, eax
004DA101  |.  55            push    ebp
004DA102  |.  68 31A44D00   push    004DA431
004DA107  |.  64:FF30       push    dword ptr fs:[eax]
004DA10A  |.  64:8920       mov     fs:[eax], esp
004DA10D  |.  33DB          xor     ebx, ebx
004DA10F  |.  8D55 E8       lea     edx, [ebp-18]
004DA112  |.  8B45 FC       mov     eax, [ebp-4]
004DA115  |.  E8 D2DDFFFF   call    004D7EEC
004DA11A  |.  8D55 E4       lea     edx, [ebp-1C]
004DA11D  |.  8B45 F8       mov     eax, [ebp-8]
004DA120  |.  E8 87C0F2FF   call    004061AC                         ;  对输入的注册码的格式化
004DA125  |.  8B55 E4       mov     edx, [ebp-1C]
004DA128  |.  8D45 F8       lea     eax, [ebp-8]
004DA12B  |.  E8 0896F2FF   call    00403738
004DA130  |.  8B45 E8       mov     eax, [ebp-18]
004DA133  |.  E8 E096F2FF   call    00403818                         ;  位数
004DA138  |.  85C0          test    eax, eax
004DA13A  |.  0F8E D6020000 jle     004DA416
004DA140  |.  8B45 F8       mov     eax, [ebp-8]
004DA143  |.  E8 D096F2FF   call    00403818                         ;  位数
004DA148  |.  85C0          test    eax, eax
004DA14A  |.  0F8E C6020000 jle     004DA416
004DA150  |.  8D45 EC       lea     eax, [ebp-14]
004DA153  |.  50            push    eax
004DA154  |.  B9 20000000   mov     ecx, 20
004DA159  |.  8B55 F4       mov     edx, [ebp-C]
004DA15C  |.  8B45 FC       mov     eax, [ebp-4]
004DA15F  |.  E8 88FEFFFF   call    004D9FEC                         ;  第一次调用,最关键的地方 里 嘻嘻!
004DA164  |.  8D45 F0       lea     eax, [ebp-10]
004DA167  |.  50            push    eax
004DA168  |.  B9 10000000   mov     ecx, 10
004DA16D  |.  8B55 F4       mov     edx, [ebp-C]
004DA170  |.  8B45 FC       mov     eax, [ebp-4]
004DA173  |.  E8 74FEFFFF   call    004D9FEC                         ;  第二次调用关键代码
004DA178  |.  8D55 E0       lea     edx, [ebp-20]
004DA17B  |.  8B45 F8       mov     eax, [ebp-8]
004DA17E  |.  E8 F1DCFFFF   call    004D7E74
004DA183  |.  8B45 E0       mov     eax, [ebp-20]
004DA186  |.  8D55 E4       lea     edx, [ebp-1C]
004DA189  |.  E8 66DCFFFF   call    004D7DF4                         ;  这个出现了。
004DA18E  |.  8B55 E4       mov     edx, [ebp-1C]                    ;  假码
004DA191  |.  8B45 F0       mov     eax, [ebp-10]                    ;  真码"RKS-5202132"
004DA194  |.  E8 8F97F2FF   call    00403928                         ;  比较函数
004DA199  |.  74 27         je      short 004DA1C2
004DA19B  |.  8D55 E0       lea     edx, [ebp-20]
004DA19E  |.  8B45 F8       mov     eax, [ebp-8]
004DA1A1  |.  E8 CEDCFFFF   call    004D7E74
004DA1A6  |.  8B45 E0       mov     eax, [ebp-20]
004DA1A9  |.  8D55 E4       lea     edx, [ebp-1C]
004DA1AC  |.  E8 43DCFFFF   call    004D7DF4
004DA1B1  |.  8B55 E4       mov     edx, [ebp-1C]
004DA1B4  |.  8B45 EC       mov     eax, [ebp-14]                    ;同样是真码“RKS-1300038”
004DA1B7  |.  E8 6C97F2FF   call    00403928                         ;比较函数
004DA1BC  |.  74 04         je      short 004DA1C2
004DA1BE  |.  33DB          xor     ebx, ebx
004DA1C0  |.  EB 02         jmp     short 004DA1C4
004DA1C2  |>  B3 01         mov     bl, 1
004DA1C4  |>  84DB          test    bl, bl
004DA1C6  |. /0F85 1A010000 jnz     004DA2E6
004DA1CC  |. |8B45 F4       mov     eax, [ebp-C]                     ;  固定字符串“CB”
004DA1CF  |. |BA 4CA44D00   mov     edx, 004DA44C                    ;  “MF”和“CB”比较。
004DA1D4  |. |E8 4F97F2FF   call    00403928
004DA1D9  |. |0F85 80000000 jnz     004DA25F                         ;  当然不等,跳
004DA1DF  |. |8D45 EC       lea     eax, [ebp-14]
004DA1E2  |. |50            push    eax
004DA1E3  |. |B9 20000000   mov     ecx, 20
004DA1E8  |. |BA 58A44D00   mov     edx, 004DA458                    ;  jtf
004DA1ED  |. |8B45 FC       mov     eax, [ebp-4]
004DA1F0  |. |E8 F7FDFFFF   call    004D9FEC
004DA1F5  |. |8D45 F0       lea     eax, [ebp-10]
004DA1F8  |. |50            push    eax
004DA1F9  |. |B9 10000000   mov     ecx, 10
004DA1FE  |. |BA 58A44D00   mov     edx, 004DA458                    ;  jtf
004DA203  |. |8B45 FC       mov     eax, [ebp-4]
004DA206  |. |E8 E1FDFFFF   call    004D9FEC
004DA20B  |. |8D55 E0       lea     edx, [ebp-20]
004DA20E  |. |8B45 F8       mov     eax, [ebp-8]
004DA211  |. |E8 5EDCFFFF   call    004D7E74
004DA216  |. |8B45 E0       mov     eax, [ebp-20]
004DA219  |. |8D55 E4       lea     edx, [ebp-1C]
004DA21C  |. |E8 D3DBFFFF   call    004D7DF4
004DA221  |. |8B55 E4       mov     edx, [ebp-1C]
004DA224  |. |8B45 EC       mov     eax, [ebp-14]
004DA227  |. |E8 FC96F2FF   call    00403928
004DA22C  |. |74 2A         je      short 004DA258
004DA22E  |. |8D55 E0       lea     edx, [ebp-20]
004DA231  |. |8B45 F8       mov     eax, [ebp-8]
004DA234  |. |E8 3BDCFFFF   call    004D7E74
004DA239  |. |8B45 E0       mov     eax, [ebp-20]
004DA23C  |. |8D55 E4       lea     edx, [ebp-1C]
004DA23F  |. |E8 B0DBFFFF   call    004D7DF4
004DA244  |. |8B55 E4       mov     edx, [ebp-1C]
004DA247  |. |8B45 F0       mov     eax, [ebp-10]
004DA24A  |. |E8 D996F2FF   call    00403928
004DA24F  |. |74 07         je      short 004DA258
004DA251  |. |33DB          xor     ebx, ebx
004DA253  |. |E9 8E000000   jmp     004DA2E6
004DA258  |> |B3 01         mov     bl, 1
004DA25A  |. |E9 87000000   jmp     004DA2E6
004DA25F  |> |8B45 F4       mov     eax, [ebp-C]
004DA262  |. |BA 58A44D00   mov     edx, 004DA458                    ;  jtf
004DA267  |. |E8 BC96F2FF   call    00403928
004DA26C  |. |75 78         jnz     short 004DA2E6                   ;  和“JTF”比较当然也不等。跳
004DA26E  |. |8D45 EC       lea     eax, [ebp-14]
004DA271  |. |50            push    eax
004DA272  |. |B9 20000000   mov     ecx, 20
004DA277  |. |BA 4CA44D00   mov     edx, 004DA44C                    ;  mf
004DA27C  |. |8B45 FC       mov     eax, [ebp-4]
004DA27F  |. |E8 68FDFFFF   call    004D9FEC
004DA284  |. |8D45 F0       lea     eax, [ebp-10]
004DA287  |. |50            push    eax
004DA288  |. |B9 10000000   mov     ecx, 10
004DA28D  |. |BA 4CA44D00   mov     edx, 004DA44C                    ;  mf
004DA292  |. |8B45 FC       mov     eax, [ebp-4]
004DA295  |. |E8 52FDFFFF   call    004D9FEC
004DA29A  |. |8D55 E0       lea     edx, [ebp-20]
004DA29D  |. |8B45 F8       mov     eax, [ebp-8]
004DA2A0  |. |E8 CFDBFFFF   call    004D7E74
004DA2A5  |. |8B45 E0       mov     eax, [ebp-20]
004DA2A8  |. |8D55 E4       lea     edx, [ebp-1C]
004DA2AB  |. |E8 44DBFFFF   call    004D7DF4
004DA2B0  |. |8B55 E4       mov     edx, [ebp-1C]
004DA2B3  |. |8B45 EC       mov     eax, [ebp-14]
004DA2B6  |. |E8 6D96F2FF   call    00403928
004DA2BB  |. |74 27         je      short 004DA2E4
004DA2BD  |. |8D55 E0       lea     edx, [ebp-20]
004DA2C0  |. |8B45 F8       mov     eax, [ebp-8]
004DA2C3  |. |E8 ACDBFFFF   call    004D7E74
004DA2C8  |. |8B45 E0       mov     eax, [ebp-20]
004DA2CB  |. |8D55 E4       lea     edx, [ebp-1C]
004DA2CE  |. |E8 21DBFFFF   call    004D7DF4
004DA2D3  |. |8B55 E4       mov     edx, [ebp-1C]
004DA2D6  |. |8B45 F0       mov     eax, [ebp-10]
004DA2D9  |. |E8 4A96F2FF   call    00403928
004DA2DE  |. |74 04         je      short 004DA2E4
004DA2E0  |. |33DB          xor     ebx, ebx
004DA2E2  |. |EB 02         jmp     short 004DA2E6
004DA2E4  |> |B3 01         mov     bl, 1
004DA2E6  |> \84DB          test    bl, bl
004DA2E8  |.  0F85 1A010000 jnz     004DA408
004DA2EE  |.  8B45 F4       mov     eax, [ebp-C]
004DA2F1  |.  BA 64A44D00   mov     edx, 004DA464                    ;  flm
004DA2F6  |.  E8 2D96F2FF   call    00403928
004DA2FB  |.  0F85 80000000 jnz     004DA381                         ;  和“FLM”比较,不等,跳
004DA301  |.  8D45 EC       lea     eax, [ebp-14]
004DA304  |.  50            push    eax
004DA305  |.  B9 20000000   mov     ecx, 20
004DA30A  |.  BA 70A44D00   mov     edx, 004DA470                    ;  mlm
004DA30F  |.  8B45 FC       mov     eax, [ebp-4]
004DA312  |.  E8 D5FCFFFF   call    004D9FEC
004DA317  |.  8D45 F0       lea     eax, [ebp-10]
004DA31A  |.  50            push    eax
004DA31B  |.  B9 10000000   mov     ecx, 10
004DA320  |.  BA 70A44D00   mov     edx, 004DA470                    ;  mlm
004DA325  |.  8B45 FC       mov     eax, [ebp-4]
004DA328  |.  E8 BFFCFFFF   call    004D9FEC
004DA32D  |.  8D55 E0       lea     edx, [ebp-20]
004DA330  |.  8B45 F8       mov     eax, [ebp-8]
004DA333  |.  E8 3CDBFFFF   call    004D7E74
004DA338  |.  8B45 E0       mov     eax, [ebp-20]
004DA33B  |.  8D55 E4       lea     edx, [ebp-1C]
004DA33E  |.  E8 B1DAFFFF   call    004D7DF4
004DA343  |.  8B55 E4       mov     edx, [ebp-1C]
004DA346  |.  8B45 EC       mov     eax, [ebp-14]
004DA349  |.  E8 DA95F2FF   call    00403928
004DA34E  |.  74 2A         je      short 004DA37A
004DA350  |.  8D55 E0       lea     edx, [ebp-20]
004DA353  |.  8B45 F8       mov     eax, [ebp-8]
004DA356  |.  E8 19DBFFFF   call    004D7E74
004DA35B  |.  8B45 E0       mov     eax, [ebp-20]
004DA35E  |.  8D55 E4       lea     edx, [ebp-1C]
004DA361  |.  E8 8EDAFFFF   call    004D7DF4
004DA366  |.  8B55 E4       mov     edx, [ebp-1C]
004DA369  |.  8B45 F0       mov     eax, [ebp-10]
004DA36C  |.  E8 B795F2FF   call    00403928
004DA371  |.  74 07         je      short 004DA37A
004DA373  |.  33DB          xor     ebx, ebx
004DA375  |.  E9 8E000000   jmp     004DA408
004DA37A  |>  B3 01         mov     bl, 1
004DA37C  |.  E9 87000000   jmp     004DA408
004DA381  |>  8B45 F4       mov     eax, [ebp-C]
004DA384  |.  BA 70A44D00   mov     edx, 004DA470                    ;  mlm
004DA389  |.  E8 9A95F2FF   call    00403928
004DA38E  |.  75 78         jnz     short 004DA408                   ;  和“MLM”比较
004DA390  |.  8D45 EC       lea     eax, [ebp-14]
004DA393  |.  50            push    eax
004DA394  |.  B9 20000000   mov     ecx, 20
004DA399  |.  BA 64A44D00   mov     edx, 004DA464                    ;  flm
004DA39E  |.  8B45 FC       mov     eax, [ebp-4]
004DA3A1  |.  E8 46FCFFFF   call    004D9FEC
004DA3A6  |.  8D45 F0       lea     eax, [ebp-10]
004DA3A9  |.  50            push    eax
004DA3AA  |.  B9 10000000   mov     ecx, 10
004DA3AF  |.  BA 64A44D00   mov     edx, 004DA464                    ;  flm
004DA3B4  |.  8B45 FC       mov     eax, [ebp-4]
004DA3B7  |.  E8 30FCFFFF   call    004D9FEC
004DA3BC  |.  8D55 E0       lea     edx, [ebp-20]
004DA3BF  |.  8B45 F8       mov     eax, [ebp-8]
004DA3C2  |.  E8 ADDAFFFF   call    004D7E74
004DA3C7  |.  8B45 E0       mov     eax, [ebp-20]
004DA3CA  |.  8D55 E4       lea     edx, [ebp-1C]
004DA3CD  |.  E8 22DAFFFF   call    004D7DF4
004DA3D2  |.  8B55 E4       mov     edx, [ebp-1C]
004DA3D5  |.  8B45 EC       mov     eax, [ebp-14]
004DA3D8  |.  E8 4B95F2FF   call    00403928
004DA3DD  |.  74 27         je      short 004DA406
004DA3DF  |.  8D55 E0       lea     edx, [ebp-20]
004DA3E2  |.  8B45 F8       mov     eax, [ebp-8]
004DA3E5  |.  E8 8ADAFFFF   call    004D7E74
004DA3EA  |.  8B45 E0       mov     eax, [ebp-20]
004DA3ED  |.  8D55 E4       lea     edx, [ebp-1C]
004DA3F0  |.  E8 FFD9FFFF   call    004D7DF4
004DA3F5  |.  8B55 E4       mov     edx, [ebp-1C]
004DA3F8  |.  8B45 F0       mov     eax, [ebp-10]
004DA3FB  |.  E8 2895F2FF   call    00403928
004DA400  |.  74 04         je      short 004DA406
004DA402  |.  33DB          xor     ebx, ebx
004DA404  |.  EB 02         jmp     short 004DA408
004DA406  |>  B3 01         mov     bl, 1
004DA408  |>  8B45 FC       mov     eax, [ebp-4]
004DA40B  |.  E8 8CDDFEFF   call    004C819C
004DA410  |.  84C0          test    al, al
004DA412  |.  74 02         je      short 004DA416
004DA414  |.  33DB          xor     ebx, ebx
004DA416  |>  33C0          xor     eax, eax
004DA418  |.  5A            pop     edx
004DA419  |.  59            pop     ecx
004DA41A  |.  59            pop     ecx
004DA41B  |.  64:8910       mov     fs:[eax], edx
004DA41E  |.  68 38A44D00   push    004DA438
004DA423  |>  8D45 E0       lea     eax, [ebp-20]
004DA426  |.  BA 08000000   mov     edx, 8
004DA42B  |.  E8 9492F2FF   call    004036C4
004DA430  \.  C3            retn



3、跟进call    004D9FEC 后是这样的。



004D9FEC  /$  55            push    ebp
004D9FED  |.  8BEC          mov     ebp, esp
004D9FEF  |.  83C4 EC       add     esp, -14
004D9FF2  |.  53            push    ebx
004D9FF3  |.  56            push    esi
004D9FF4  |.  57            push    edi
004D9FF5  |.  33DB          xor     ebx, ebx
004D9FF7  |.  895D EC       mov     [ebp-14], ebx
004D9FFA  |.  895D F4       mov     [ebp-C], ebx
004D9FFD  |.  8BD9          mov     ebx, ecx
004D9FFF  |.  8955 F8       mov     [ebp-8], edx
004DA002  |.  8945 FC       mov     [ebp-4], eax
004DA005  |.  8B45 FC       mov     eax, [ebp-4]
004DA008  |.  E8 BF99F2FF   call    004039CC
004DA00D  |.  8B45 F8       mov     eax, [ebp-8]
004DA010  |.  E8 B799F2FF   call    004039CC
004DA015  |.  33C0          xor     eax, eax
004DA017  |.  55            push    ebp
004DA018  |.  68 A8A04D00   push    004DA0A8
004DA01D  |.  64:FF30       push    dword ptr fs:[eax]
004DA020  |.  64:8920       mov     fs:[eax], esp
004DA023  |.  33F6          xor     esi, esi
004DA025  |.  8BD3          mov     edx, ebx
004DA027  |.  8B45 F8       mov     eax, [ebp-8]
004DA02A  |.  E8 19F7FFFF   call    004D9748                         ;  第一次这个call跟进取后,会根据固定字符来判断到底赋予

什么值,我这里固定字符是“CB”,对应的值就是“7CD”也许每个电脑都有不同的值吧。第二次跟进这个call的时候,同样是固定字符串“CB

”但它对应的值却取了“1F37”。就是刚才那个7CD(1997)反过来1F37(7991)。
004DA02F  |.  8945 F0       mov     [ebp-10], eax
004DA032  |.  8D55 F4       lea     edx, [ebp-C]
004DA035  |.  8B45 FC       mov     eax, [ebp-4]                     ;  用户名
004DA038  |.  E8 6FC1F2FF   call    004061AC
004DA03D  |.  8B45 F4       mov     eax, [ebp-C]                     ;  变成大写了。
004DA040  |.  E8 D397F2FF   call    00403818                         ;  位数
004DA045  |.  8BD0          mov     edx, eax
004DA047  |.  85D2          test    edx, edx
004DA049  |.  7E 20         jle     short 004DA06B
004DA04B  |.  B9 01000000   mov     ecx, 1                           ;  计数器
004DA050  |>  8B45 F4       /mov     eax, [ebp-C]                    ;  循环开始了,用的是大写的用户名“BINBINBIN”
004DA053  |.  8A4408 FF     |mov     al, [eax+ecx-1]                 ;  逐个取用户名
004DA057  |.  3C 20         |cmp     al, 20                          ;  和“20”比较,看看是不是空格
004DA059  |.  74 0C         |je      short 004DA067
004DA05B  |.  25 FF000000   |and     eax, 0FF
004DA060  |.  0FAF45 F0     |imul    eax, [ebp-10]                   ;  ASCII码值(16进制)乘以固定值7CD(1997)
004DA064  |.  48            |dec     eax                             ;  -1
004DA065  |.  03F0          |add     esi, eax                        ;  累加。最后的值在esi
004DA067  |>  41            |inc     ecx
004DA068  |.  4A            |dec     edx
004DA069  |.^ 75 E5         \jnz     short 004DA050
004DA06B  |>  8D55 EC       lea     edx, [ebp-14]
004DA06E  |.  8BC6          mov     eax, esi                         ;  结果转到eax
004DA070  |.  E8 87C4F2FF   call    004064FC                         ;  转变成10进制
004DA075  |.  8B4D EC       mov     ecx, [ebp-14]                    ;  第一次得到的值是1300038。第二次调用得到的值是5202132
004DA078  |.  8B45 08       mov     eax, [ebp+8]
004DA07B  |.  BA C0A04D00   mov     edx, 004DA0C0                    ;  “RKS-”固定字符串。将作为注册码的前面部分
004DA080  |.  E8 DF97F2FF   call    00403864
004DA085  |.  33C0          xor     eax, eax
004DA087  |.  5A            pop     edx
004DA088  |.  59            pop     ecx
004DA089  |.  59            pop     ecx
004DA08A  |.  64:8910       mov     fs:[eax], edx
004DA08D  |.  68 AFA04D00   push    004DA0AF
004DA092  |>  8D45 EC       lea     eax, [ebp-14]
004DA095  |.  E8 0A96F2FF   call    004036A4
004DA09A  |.  8D45 F4       lea     eax, [ebp-C]
004DA09D  |.  BA 03000000   mov     edx, 3
004DA0A2  |.  E8 1D96F2FF   call    004036C4
004DA0A7  \.  C3            retn




【算法总结】
------------------------------------------------------------------------
1、首先是一个固定字符“CB”,这个值也许每个人装了软件后不同,但我的无论怎么弄都是这个字符。

2、根据这个固定字符得到“7CD”(第一次)或者“1F37”(第二次)。

3、用户名变大写后,逐个取用户名的ASCII值(16进制),乘以固定值7CD(1F37),再-1。然后累加在ESI中。

4、将刚才ESI中的值转成10进制,在和“RKS-”固定字符串连接就是注册码了。

5、注册码有两个的,随便一个都可以注册成功。注册信息保存在根目录的“CB.ini”里面


用户名:binbinbin
注册码:RKS-1300038(或者RKS-5202132)