破解工具OD

http://www.winimage.com/download.htm 下载网址 怎么找下断点的这我就不多说了。我主要学习算法分析了。



004454FB    53              PUSH    EBX                                        ; //下断F2
004454FC    57              PUSH    EDI
004454FD    68 01010000     PUSH    101
00445502    BF B8DE4800     MOV     EDI,winimage.0048DEB8                      ; ASCII "fcrjzmd"
00445507    57              PUSH    EDI
00445508    68 16080000     PUSH    816
0044550D    FF75 08         PUSH    DWORD PTR SS:[EBP+8]
00445510    FFD6            CALL    ESI                                        ; 取用户名,并把长度送入EAX
00445512    6A 7F           PUSH    7F
00445514    BB 38E24800     MOV     EBX,winimage.0048E238                      ; ASCII "98765432100"
00445519    53              PUSH    EBX
0044551A    68 17080000     PUSH    817
0044551F    FF75 08         PUSH    DWORD PTR SS:[EBP+8]
00445522    FFD6            CALL    ESI                                        ; 取假码,并把长度送入EAX
00445524    57              PUSH    EDI
00445525    BF 70DB4800     MOV     EDI,winimage.0048DB70
0044552A    8BC3            MOV     EAX,EBX
0044552C    E8 2E720000     CALL    winimage.0044C75F                          ; 关键CALL跟进

================================================================================

跟进0044C75F

0044C75F    55              PUSH    EBP
0044C760    8BEC            MOV     EBP,ESP
0044C762    81EC 00020000   SUB     ESP,200
0044C768    85FF            TEST    EDI,EDI
0044C76A    74 03           JE      SHORT winimage.0044C76F
0044C76C    8327 00         AND     DWORD PTR DS:[EDI],0
0044C76F    56              PUSH    ESI
0044C770    8D8D 00FFFFFF   LEA     ECX,DWORD PTR SS:[EBP-100]
0044C776    E8 FBFEFFFF     CALL    winimage.0044C676                          ; 假码第一位和20做比较
0044C77B    8B45 08         MOV     EAX,DWORD PTR SS:[EBP+8]                   ; EAX=用户名
0044C77E    E8 14FFFFFF     CALL    winimage.0044C697                          ; 关键CALL跟进!!计算用户(762C78)
0044C783    8BF0            MOV     ESI,EAX                                    ; ESI=762C78
0044C785    81FE 26DDDCB8   CMP     ESI,B8DCDD26                               ; 762C78和B8DCDD26做比较
0044C78B    0F84 0A020000   JE      winimage.0044C99B                          ; 相等则失败,反之继续运算。

================================================================================

跟进0044C697


0044C697    55              PUSH    EBP
0044C698    8BEC            MOV     EBP,ESP
0044C69A    81EC 08010000   SUB     ESP,108
0044C6A0    8D8D F8FEFFFF   LEA     ECX,DWORD PTR SS:[EBP-108]
0044C6A6    C745 FC 4C69470>MOV     DWORD PTR SS:[EBP-4],winimage.0047694C
0044C6AD    E8 C4FFFFFF     CALL    winimage.0044C676                          ; 将用户名转换成大写
0044C6B2    8D85 F8FEFFFF   LEA     EAX,DWORD PTR SS:[EBP-108]                 ; 用户名地址送入EAX
0044C6B8    50              PUSH    EAX                                        ; 压入用户名
0044C6B9    FF15 20334700   CALL    DWORD PTR DS:[<&KERNEL32.lstrlenA>]        ; 取用户名长度
0044C6BF    33C9            XOR     ECX,ECX                                    ; ECX=0
0044C6C1    85C0            TEST    EAX,EAX                                    ; 测试EAX
0044C6C3    8945 F8         MOV     DWORD PTR SS:[EBP-8],EAX                   ; 保存用户名长度
0044C6C6    7E 46           JLE     SHORT winimage.0044C70E                    ; 小于或者等于则转移
0044C6C8    53              PUSH    EBX                                        ; 压入假码
0044C6C9    56              PUSH    ESI
0044C6CA    8B75 F8         MOV     ESI,DWORD PTR SS:[EBP-8]                   ; 将用户名长度送入ESI
0044C6CD    57              PUSH    EDI
0044C6CE    8DBD F8FEFFFF   LEA     EDI,DWORD PTR SS:[EBP-108]                 ; 用户名地址送入EDI
0044C6D4    83EF 03         SUB     EDI,3                                      ; EDI=EDI-3
0044C6D7    8BC1            MOV     EAX,ECX                                    ; EAX=0
0044C6D9    6A 0E           PUSH    0E                                         ; 压入E
0044C6DB    99              CDQ                                                ; 双字扩展
0044C6DC    5B              POP     EBX                                        ; 弹出E到EBX
0044C6DD    F7FB            IDIV    EBX                                        ; 除以E(带符号除法)
0044C6DF    85D2            TEST    EDX,EDX                                    ; 测试EDX
0044C6E1    75 03           JNZ     SHORT winimage.0044C6E6
0044C6E3    6A 27           PUSH    27                                         ; 压入27
0044C6E5    5E              POP     ESI                                        ; 弹出27到ESI
0044C6E6    8D41 03         LEA     EAX,DWORD PTR DS:[ECX+3]                   ; ECX+3地址送入EAX
0044C6E9    0FB61407        MOVZX   EDX,BYTE PTR DS:[EDI+EAX]                  ; 依次取用户名的ASCII码送入EDX
0044C6ED    0FAFD6          IMUL    EDX,ESI                                    ; EDX=EDX*ESI(带符号乘法)
0044C6F0    0155 FC         ADD     DWORD PTR SS:[EBP-4],EDX                   ; 0012E944=47694C+EDX
0044C6F3    6A 0E           PUSH    0E                                         ; 压入E
0044C6F5    99              CDQ                                                ; 双字扩展
0044C6F6    5B              POP     EBX                                        ; 弹出E到EBX
0044C6F7    F7FB            IDIV    EBX                                        ; 除以E(带符号除法)
0044C6F9    85D2            TEST    EDX,EDX                                    ; 测试EDX
0044C6FB    74 05           JE      SHORT winimage.0044C702
0044C6FD    8D3476          LEA     ESI,DWORD PTR DS:[ESI+ESI*2]               ; ESI=ESI+ESI*2
0044C700    EB 03           JMP     SHORT winimage.0044C705
0044C702    6BF6 07         IMUL    ESI,ESI,7
0044C705    41              INC     ECX                                        ; ECX=ECX+1
0044C706    3B4D F8         CMP     ECX,DWORD PTR SS:[EBP-8]                   ; ECX和7做比较
0044C709  ^ 7C CC           JL      SHORT winimage.0044C6D7                    ; 小于转移
0044C70B    5F              POP     EDI
0044C70C    5E              POP     ESI
0044C70D    5B              POP     EBX
0044C70E    8B45 FC         MOV     EAX,DWORD PTR SS:[EBP-4]
0044C711    C9              LEAVE
0044C712    C3              RETN

=================================================================================

如下是我列的用户名算法公式:(乱来的。。可能只有我看得懂了。)


F       C               R               J                  Z                   M                  D               (用户名)
 
46      43              52              4A                 5A                  4D                 44              (ASCII码)

27   (27+27*2)=75   (75+75*2)=15F   (15F+15F*2)=41D    (41D+41D*2)=C57    (C57+C57*2)=2505   (2505+2505*2)=6F0F       

*
---------------------------------------------------------------------------------------------------------------------------+47694C=762C78(最后得出的值)
AAA     1E9F            706E           13062              45696               B2281              1D7FFC

好啦知道用户名的运算,运算完就返回了继续下面的运算

0044C783    8BF0            MOV     ESI,EAX                                    ; ESI=762C78
0044C785    81FE 26DDDCB8   CMP     ESI,B8DCDD26                               ; 762C78和B8DCDD26做比较
0044C78B    0F84 0A020000   JE      winimage.0044C99B                          ; 相等则失败,反之继续运算。
0044C791    8D85 00FFFFFF   LEA     EAX,DWORD PTR SS:[EBP-100]
0044C797    50              PUSH    EAX
0044C798    8D85 00FEFFFF   LEA     EAX,DWORD PTR SS:[EBP-200]
0044C79E    56              PUSH    ESI
0044C79F    50              PUSH    EAX
0044C7A0    E8 6EFFFFFF     CALL    winimage.0044C713                          ; 1、注册码运算(762C7B)
0044C7A5    59              POP     ECX
0044C7A6    59              POP     ECX
0044C7A7    50              PUSH    EAX
0044C7A8    E8 C35A0100     CALL    winimage.00462270
0044C7AD    85C0            TEST    EAX,EAX
0044C7AF    59              POP     ECX
0044C7B0    59              POP     ECX
0044C7B1    0F84 AC010000   JE      winimage.0044C963
0044C7B7    8D85 00FFFFFF   LEA     EAX,DWORD PTR SS:[EBP-100]
0044C7BD    50              PUSH    EAX
0044C7BE    8D86 48190514   LEA     EAX,DWORD PTR DS:[ESI+14051948]            ; EAX=762C78+14051948=147B45C0
0044C7C4    50              PUSH    EAX
0044C7C5    8D85 00FEFFFF   LEA     EAX,DWORD PTR SS:[EBP-200]
0044C7CB    50              PUSH    EAX
0044C7CC    E8 42FFFFFF     CALL    winimage.0044C713                          ; 2、注册码运算(147845C0)
0044C7D1    59              POP     ECX
0044C7D2    59              POP     ECX
0044C7D3    50              PUSH    EAX
0044C7D4    E8 975A0100     CALL    winimage.00462270
0044C7D9    85C0            TEST    EAX,EAX
0044C7DB    59              POP     ECX
0044C7DC    59              POP     ECX
0044C7DD    0F84 80010000   JE      winimage.0044C963
0044C7E3    8D85 00FFFFFF   LEA     EAX,DWORD PTR SS:[EBP-100]
0044C7E9    50              PUSH    EAX
0044C7EA    8D86 54190617   LEA     EAX,DWORD PTR DS:[ESI+17061954]            ; EAX=762C78+17061954=177C45CC
0044C7F0    50              PUSH    EAX
0044C7F1    8D85 00FEFFFF   LEA     EAX,DWORD PTR SS:[EBP-200]
0044C7F7    50              PUSH    EAX
0044C7F8    E8 16FFFFFF     CALL    winimage.0044C713                          ; 3、注册码运算(177C45CC)
0044C7FD    59              POP     ECX
0044C7FE    59              POP     ECX
0044C7FF    50              PUSH    EAX
0044C800    E8 6B5A0100     CALL    winimage.00462270
0044C805    85C0            TEST    EAX,EAX
0044C807    59              POP     ECX
0044C808    59              POP     ECX
0044C809    0F84 54010000   JE      winimage.0044C963
0044C80F    8D85 00FFFFFF   LEA     EAX,DWORD PTR SS:[EBP-100]
0044C815    50              PUSH    EAX
0044C816    8D86 81190510   LEA     EAX,DWORD PTR DS:[ESI+10051981]            ; EAX=762C78+10051981=107B45F9
0044C81C    50              PUSH    EAX
0044C81D    8D85 00FEFFFF   LEA     EAX,DWORD PTR SS:[EBP-200]
0044C823    50              PUSH    EAX
0044C824    E8 EAFEFFFF     CALL    winimage.0044C713                          ; 4、注册码运算(107845F9)
0044C829    59              POP     ECX
0044C82A    59              POP     ECX
0044C82B    50              PUSH    EAX
0044C82C    E8 3F5A0100     CALL    winimage.00462270
0044C831    85C0            TEST    EAX,EAX
0044C833    59              POP     ECX
0044C834    59              POP     ECX
0044C835    0F84 55010000   JE      winimage.0044C990
0044C83B    8D85 00FFFFFF   LEA     EAX,DWORD PTR SS:[EBP-100]
0044C841    50              PUSH    EAX
0044C842    8D86 95190104   LEA     EAX,DWORD PTR DS:[ESI+4011995]             ; EAX=762C78+4011995=477460D
0044C848    50              PUSH    EAX
0044C849    8D85 00FEFFFF   LEA     EAX,DWORD PTR SS:[EBP-200]
0044C84F    50              PUSH    EAX
0044C850    E8 BEFEFFFF     CALL    winimage.0044C713                          ; 5、注册码运算(477460D)
0044C855    59              POP     ECX
0044C856    59              POP     ECX
0044C857    50              PUSH    EAX
0044C858    E8 135A0100     CALL    winimage.00462270
0044C85D    85C0            TEST    EAX,EAX
0044C85F    59              POP     ECX
0044C860    59              POP     ECX
0044C861    0F84 FC000000   JE      winimage.0044C963
0044C867    8D85 00FFFFFF   LEA     EAX,DWORD PTR SS:[EBP-100]
0044C86D    50              PUSH    EAX
0044C86E    8D86 97190602   LEA     EAX,DWORD PTR DS:[ESI+2061997]             ; EAX=762C78+2061997=27C460F
0044C874    50              PUSH    EAX
0044C875    8D85 00FEFFFF   LEA     EAX,DWORD PTR SS:[EBP-200]
0044C87B    50              PUSH    EAX
0044C87C    E8 92FEFFFF     CALL    winimage.0044C713                          ; 6、注册码运算(27C460F)
0044C881    59              POP     ECX
0044C882    59              POP     ECX
0044C883    50              PUSH    EAX
0044C884    E8 E7590100     CALL    winimage.00462270
0044C889    85C0            TEST    EAX,EAX
0044C88B    59              POP     ECX
0044C88C    59              POP     ECX
0044C88D    0F84 FD000000   JE      winimage.0044C990
0044C893    8D85 00FFFFFF   LEA     EAX,DWORD PTR SS:[EBP-100]
0044C899    50              PUSH    EAX
0044C89A    8D86 99190912   LEA     EAX,DWORD PTR DS:[ESI+12091999]            ; EAX=762C78+12091999=127F4611
0044C8A0    50              PUSH    EAX
0044C8A1    8D85 00FEFFFF   LEA     EAX,DWORD PTR SS:[EBP-200]
0044C8A7    50              PUSH    EAX
0044C8A8    E8 66FEFFFF     CALL    winimage.0044C713                          ; 7、注册码运算(127F4611)
0044C8AD    59              POP     ECX
0044C8AE    59              POP     ECX
0044C8AF    50              PUSH    EAX
0044C8B0    E8 BB590100     CALL    winimage.00462270
0044C8B5    85C0            TEST    EAX,EAX
0044C8B7    59              POP     ECX
0044C8B8    59              POP     ECX
0044C8B9    0F84 A4000000   JE      winimage.0044C963
0044C8BF    8D85 00FFFFFF   LEA     EAX,DWORD PTR SS:[EBP-100]
0044C8C5    50              PUSH    EAX
0044C8C6    8D86 04200616   LEA     EAX,DWORD PTR DS:[ESI+16062004]            ; EAX=762C78+16062004=167C4C7C
0044C8CC    50              PUSH    EAX
0044C8CD    8D85 00FEFFFF   LEA     EAX,DWORD PTR SS:[EBP-200]
0044C8D3    50              PUSH    EAX
0044C8D4    E8 3AFEFFFF     CALL    winimage.0044C713                          ; 8、注册码运算(167C4C7C)
0044C8D9    59              POP     ECX
0044C8DA    59              POP     ECX
0044C8DB    50              PUSH    EAX
0044C8DC    E8 8F590100     CALL    winimage.00462270
0044C8E1    85C0            TEST    EAX,EAX
0044C8E3    59              POP     ECX
0044C8E4    59              POP     ECX
0044C8E5    0F84 A5000000   JE      winimage.0044C990
0044C8EB    8D85 00FFFFFF   LEA     EAX,DWORD PTR SS:[EBP-100]
0044C8F1    50              PUSH    EAX
0044C8F2    8D86 02200421   LEA     EAX,DWORD PTR DS:[ESI+21042002]            ; EAX=762C78+21042002=217A4C7A
0044C8F8    50              PUSH    EAX
0044C8F9    8D85 00FEFFFF   LEA     EAX,DWORD PTR SS:[EBP-200]
0044C8FF    50              PUSH    EAX
0044C900    E8 0EFEFFFF     CALL    winimage.0044C713                          ; 9、注册码运算(217A4C7A)
0044C905    59              POP     ECX
0044C906    59              POP     ECX
0044C907    50              PUSH    EAX
0044C908    E8 63590100     CALL    winimage.00462270
0044C90D    85C0            TEST    EAX,EAX
0044C90F    59              POP     ECX
0044C910    59              POP     ECX
0044C911    74 50           JE      SHORT winimage.0044C963
0044C913    8D85 00FFFFFF   LEA     EAX,DWORD PTR SS:[EBP-100]
0044C919    50              PUSH    EAX
0044C91A    8D86 04200613   LEA     EAX,DWORD PTR DS:[ESI+13062004]            ; EAX=762C78+13062004=137C4C7C
0044C920    50              PUSH    EAX
0044C921    8D85 00FEFFFF   LEA     EAX,DWORD PTR SS:[EBP-200]
0044C927    50              PUSH    EAX
0044C928    E8 E6FDFFFF     CALL    winimage.0044C713                          ; 10、注册码运算(137C4C7C)
0044C92D    59              POP     ECX
0044C92E    59              POP     ECX
0044C92F    50              PUSH    EAX
0044C930    E8 3B590100     CALL    winimage.00462270
0044C935    85C0            TEST    EAX,EAX
0044C937    59              POP     ECX
0044C938    59              POP     ECX
0044C939    74 55           JE      SHORT winimage.0044C990
0044C93B    8D85 00FFFFFF   LEA     EAX,DWORD PTR SS:[EBP-100]
0044C941    50              PUSH    EAX
0044C942    8D86 05201109   LEA     EAX,DWORD PTR DS:[ESI+9112005]             ; EAX=762C78+9112005=9874C7D
0044C948    50              PUSH    EAX
0044C949    8D85 00FEFFFF   LEA     EAX,DWORD PTR SS:[EBP-200]
0044C94F    50              PUSH    EAX
0044C950    E8 BEFDFFFF     CALL    winimage.0044C713                          ; 11、注册码运算(9B74C7D)
0044C955    59              POP     ECX
0044C956    59              POP     ECX
0044C957    50              PUSH    EAX
0044C958    E8 13590100     CALL    winimage.00462270
0044C95D    85C0            TEST    EAX,EAX
0044C95F    59              POP     ECX
0044C960    59              POP     ECX
0044C961    75 05           JNZ     SHORT winimage.0044C968                    
0044C963    33C0            XOR     EAX,EAX
0044C965    40              INC     EAX
0044C966    EB 35           JMP     SHORT winimage.0044C99D
0044C968    8D85 00FFFFFF   LEA     EAX,DWORD PTR SS:[EBP-100]
0044C96E    50              PUSH    EAX
0044C96F    81C6 05201124   ADD     ESI,24112005                               ; ESI=762C78+24112005=24874C7D
0044C975    8D85 00FEFFFF   LEA     EAX,DWORD PTR SS:[EBP-200]
0044C97B    56              PUSH    ESI
0044C97C    50              PUSH    EAX
0044C97D    E8 91FDFFFF     CALL    winimage.0044C713                          ; 12、注册码运算(24B74C7D)
0044C982    59              POP     ECX                                        
0044C983    59              POP     ECX
0044C984    50              PUSH    EAX
0044C985    E8 E6580100     CALL    winimage.00462270
0044C98A    85C0            TEST    EAX,EAX
0044C98C    59              POP     ECX
0044C98D    59              POP     ECX
0044C98E    75 0B           JNZ     SHORT winimage.0044C99B
0044C990    33C0            XOR     EAX,EAX
0044C992    40              INC     EAX
0044C993    85FF            TEST    EDI,EDI
0044C995    74 06           JE      SHORT winimage.0044C99D
0044C997    8907            MOV     DWORD PTR DS:[EDI],EAX
0044C999    EB 02           JMP     SHORT winimage.0044C99D
0044C99B    33C0            XOR     EAX,EAX
0044C99D    5E              POP     ESI
0044C99E    C9              LEAVE
0044C99F    C3              RETN

==================================================================================

1~12都调用相同的CALL来运算的。在这里我们就先看一下00447133里面到底有什么东东了!!跟进。。。


0044C713    55              PUSH    EBP
0044C714    8BEC            MOV     EBP,ESP
0044C716    83EC 10         SUB     ESP,10
0044C719    56              PUSH    ESI
0044C71A    FF75 0C         PUSH    DWORD PTR SS:[EBP+C]
0044C71D    8B75 08         MOV     ESI,DWORD PTR SS:[EBP+8]
0044C720    8D45 F0         LEA     EAX,DWORD PTR SS:[EBP-10]
0044C723    68 14DB4700     PUSH    winimage.0047DB14                          ; ASCII "%lX"
0044C728    50              PUSH    EAX
0044C729    FF15 14354700   CALL    DWORD PTR DS:[<&USER32.wsprintfA>]         ; USER32.wsprintfA
0044C72F    8A45 F0         MOV     AL,BYTE PTR SS:[EBP-10]
0044C732    83C4 0C         ADD     ESP,0C
0044C735    84C0            TEST    AL,AL
0044C737    74 1D           JE      SHORT winimage.0044C756
0044C739    8D4D F0         LEA     ECX,DWORD PTR SS:[EBP-10]
0044C73C    2BCE            SUB     ECX,ESI
0044C73E    3C 38           CMP     AL,38                                      ; AL和38做比较
0044C740    75 04           JNZ     SHORT winimage.0044C746                    ; 不等转移
0044C742    04 0A           ADD     AL,0A                                      ; 相等则AL加A
0044C744    EB 06           JMP     SHORT winimage.0044C74C                    ; 无条件转移
0044C746    3C 42           CMP     AL,42                                      ; AL和42做比较
0044C748    75 02           JNZ     SHORT winimage.0044C74C                    ; 不等转移
0044C74A    04 F6           ADD     AL,0F6                                     ; 相等则AL和F6相加
0044C74C    8806            MOV     BYTE PTR DS:[ESI],AL                       ; 保存AL到0012E954
0044C74E    46              INC     ESI                                        ; ESI=ESI+1
0044C74F    8A0431          MOV     AL,BYTE PTR DS:[ECX+ESI]
0044C752    84C0            TEST    AL,AL
0044C754  ^ 75 E8           JNZ     SHORT winimage.0044C73E
0044C756    8B45 08         MOV     EAX,DWORD PTR SS:[EBP+8]
0044C759    C606 00         MOV     BYTE PTR DS:[ESI],0
0044C75C    5E              POP     ESI
0044C75D    C9              LEAVE
0044C75E    C3              RETN

=================================================================================

从上面这不难看出这个CALL的作用是将运算出的注册码逐个和38(8)、42(B)做比较,和38相等的则和A相加,和42相等的则和F6相加取低位AL的值。
再从044C783往下看我看到相同算法有12处之多,

762C78

762C78+14051948=147B45C0

762C78+17061954=177C45CC

762C78+10051981=107B45F9

762C78+4011995=477460D

762C78+2061997=27C460F

762C78+12091999=127F4611

762C78+16062004=167C4C7C

762C78+21042002=217A4C7A

762C78+13062004=137C4C7C

762C78+9112005=9874C7D

762C78+24112005=24874C7D

通过和38、42比较相加就得出真码了。
仔细看了一下762C78后面加的这一串数字全部竟是日期来的,而且这个12组加得的值都是注册码来的。晕哦。前面11组为标准的注册码,最一组为专业版的注册码。
通过下面的这个跳转来判断是否为专为版或是标准版的。

================================================================================

0044C961    75 05           JNZ     SHORT winimage.0044C968                    ; 不等则转移为专业版,相等则转移标准版!!
0044C963    33C0            XOR     EAX,EAX
0044C965    40              INC     EAX
0044C966    EB 35           JMP     SHORT winimage.0044C99D                    ; 转移到标准版。

注册成功注册表信息如下:

[HKEY_CURRENT_USER\Software\WinImage]

"NameRegistered"="fcrjzmd"

"CodeRegistered"="24B74C7D"


标准版注册码:
762C7B、147845C0、177C45CC、107845F9、477460D、27C460F、127F4611、167C4C7C、217A4C7A、137C4C7C、9874C7D、

专业版注册码:
24874C7D

结后言:

总的来说这个软件算法很简单适合我等初学者学习算法,哎!夜深了一口气写完破文有点凌乱哦真是不好意思啦,眼悃了脑袋有点乱了想不出那么多,总结了过于简单文风不好希望

大侠们不要见怪了。我要睡了现在3点钟了,谢谢您能坚持看完我这个菜文。


fcrjzmd

3:01 2006-1-6

  • 标 题: 答复
  • 作 者:fallwolf
  • 时 间:2006-01-06 13:21

好文章,不过为了大家方便,参考楼主给的信息发布了这个注册机代码,本来是在Excel的VBA中的,可是没有附件上传能力,只好贴源码了。希望楼主不介意。
=================================
Private Sub B_ok_Click()
Dim username As String
Dim i, tmp1, tmp2 As Long
username = UCase(T_username.Text)
tmp1 = 4680012  
tmp2 = 39 '十六进制的27
For i = 1 To Len(username)
    tmp1 = tmp1 + Asc(Mid(username, i, 1)) * tmp2
    tmp2 = tmp2 * 3
Next i
If Hex(tmp1) = "B8DCDD26" Then '
MsgBox "错误的用户名"
T_usersig.Text = "Wrong UserName"
Else
T_usersig.Text = Hex(tmp1 + 605102085)
End If
End Sub

================================