先运行看看,,,哦这个注册机制很聪明。。。注册完了就重新运行。。
如果想从此处下手是不能做任何事的。。。
它实际上是把你的注册信息保存到了注册表中。。
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\gb2big5]
"RegUser"="123456"
"RegNo"="00000000"
它在你按下那个按钮时做的就是这些
这怎么办呢。。。
先用W32ASM看看吧。。。
看看有那些字符给我们引路。。
哦。。
我们看到了两处
"RegUser
"RegNo"
;..............

"RegUser"
"RegNo"

点击看看之后发现有一处是我们刚才注册用到的位置..
另一处就是我们要找的位置。。。
0058387A  |.  8D4D FC       lea     ecx, dword ptr [ebp-4]
0058387D  |.  BA BC395800   mov     edx, 005839BC                    ;  reguser
00583882  |.  8BC3          mov     eax, ebx
00583884  |.  E8 8F4CF1FF   call    00498518
00583889  |.  8B55 FC       mov     edx, dword ptr [ebp-4]
0058388C  |.  B8 00EC5B00   mov     eax, 005BEC00
00583891  |.  E8 7E0DE8FF   call    00404614
00583896  |.  8D4D F8       lea     ecx, dword ptr [ebp-8]
00583899  |.  BA CC395800   mov     edx, 005839CC                    ;  regno
0058389E  |.  8BC3          mov     eax, ebx
005838A0  |.  E8 734CF1FF   call    00498518
005838A5  |.  8B45 F8       mov     eax, dword ptr [ebp-8]
005838A8  |.  50            push    eax
005838A9  |.  8D4D F4       lea     ecx, dword ptr [ebp-C]
005838AC  |.  BA DC395800   mov     edx, 005839DC                    ;  gb2big5china
005838B1  |.  A1 00EC5B00   mov     eax, dword ptr [5BEC00]
005838B6  |.  E8 1147FDFF   call    00557FCC             //此处产生序列号
005838BB  |.  8B55 F4       mov     edx, dword ptr [ebp-C]
005838BE  |.  58            pop     eax
005838BF  |.  E8 F810E8FF   call    004049BC   此处比较   可在这里找到序烈号
005838C4  |.  75 07         jnz     short 005838CD  不同就跳咯。。。想爆就改这。。。
call    00557FCC             //此处产生序列号

代码有点长。。。
0055752E  |.  BE 3CA15800   mov     esi, 0058A13C
00557533  |.  BF 1CA15800   mov     edi, 0058A11C
00557538  |.  8BEC          mov     ebp, esp

0055753A  |.  8A55 07       mov     dl, byte ptr [ebp+7]     ;dl=a7
0055753D  |.  F6C2 40       test    dl, 40
00557540  |.  0F97C0        seta    al                                          ;  
00557543  |.  8807          mov     byte ptr [edi], al

00557545  |.  F6C2 80       test    dl, 80
00557548  |.  0F97C0        seta    al
0055754B  |.  8806          mov     byte ptr [esi], al               

/////////////////////////////////////
0055754D  |.  8A4D 06       mov     cl, byte ptr [ebp+6]   ;cl=a6
00557550  |.  F6C1 40       test    cl, 40
00557553  |.  0F97C0        seta    al
00557556  |.  8847 01       mov     byte ptr [edi+1], al

00557559  |.  F6C1 80       test    cl, 80
0055755C  |.  0F97C0        seta    al
0055755F  |.  8846 01       mov     byte ptr [esi+1], al
///////////////////////////
00557562  |.  8A45 05       mov     al, byte ptr [ebp+5]   ;al=a5
00557565  |.  F6C0 40       test    al, 40
00557568  |.  0F97C3        seta    bl
0055756B  |.  885F 02       mov     byte ptr [edi+2], bl

0055756E  |.  F6C0 80       test    al, 80
00557571  |.  0F97C3        seta    bl
00557574  |.  885E 02       mov     byte ptr [esi+2], bl
//////////////////////////////
00557577  |.  F645 04 40    test    byte ptr [ebp+4], 40
0055757B  |.  0F97C3        seta    bl
0055757E  |.  885F 03       mov     byte ptr [edi+3], bl

00557581  |.  F645 04 80    test    byte ptr [ebp+4], 80
00557585  |.  0F97C3        seta    bl
00557588  |.  885E 03       mov     byte ptr [esi+3], bl
///////////////////////////////

0055758B  |.  F645 03 40    test    byte ptr [ebp+3], 40
0055758F  |.  0F97C3        seta    bl
00557592  |.  885F 04       mov     byte ptr [edi+4], bl

00557595  |.  F645 03 80    test    byte ptr [ebp+3], 80
00557599  |.  0F97C3        seta    bl
0055759C  |.  885E 04       mov     byte ptr [esi+4], bl
///////////////////////
0055759F  |.  F645 02 40    test    byte ptr [ebp+2], 40
005575A3  |.  0F97C3        seta    bl
005575A6  |.  885F 05       mov     byte ptr [edi+5], bl

005575A9  |.  F645 02 80    test    byte ptr [ebp+2], 80
005575AD  |.  0F97C3        seta    bl
005575B0  |.  885E 05       mov     byte ptr [esi+5], bl
//////////////////////////
005575B3  |.  F645 01 40    test    byte ptr [ebp+1], 40
005575B7  |.  0F97C3        seta    bl
005575BA  |.  885F 06       mov     byte ptr [edi+6], bl

005575BD  |.  F645 01 80    test    byte ptr [ebp+1], 80
005575C1  |.  0F97C3        seta    bl
005575C4  |.  885E 06       mov     byte ptr [esi+6], bl
/////////////////////////
005575C7  |.  F645 00 40    test    byte ptr [ebp], 40
005575CB  |.  0F97C3        seta    bl
005575CE  |.  885F 07       mov     byte ptr [edi+7], bl

005575D1  |.  F645 00 80    test    byte ptr [ebp], 80
005575D5  |.  0F97C3        seta    bl
005575D8  |.  885E 07       mov     byte ptr [esi+7], bl
上面的代码就是把输入的用户名的前8个字符的ASCLL依次和$ 40 $ 80 比较 来生成
两个序列  si di


==========================================================
005575DB  |.  F6C2 10       test    dl, 10                                                                ;dl=a7
005575DE  |.  0F97C3        seta    bl
005575E1  |.  885F 08       mov     byte ptr [edi+8], bl                                         bl<<<<

005575E4  |.  F6C2 20       test    dl, 20
005575E7  |.  0F97C2        seta    dl
005575EA  |.  8856 08       mov     byte ptr [esi+8], dl
//////////////////////////
005575ED  |.  F6C1 10       test    cl, 10                                                              ;cl=a6
005575F0  |.  0F97C2        seta    dl
005575F3  |.  8857 09       mov     byte ptr [edi+9], dl

005575F6  |.  F6C1 20       test    cl, 20
005575F9  |.  0F97C2        seta    dl
005575FC  |.  8856 09       mov     byte ptr [esi+9], dl
//////////////////////////
005575FF  |.  F6C0 10       test    al, 10                                                           al=a5
00557602  |.  0F97C2        seta    dl
00557605  |.  8857 0A       mov     byte ptr [edi+A], dl                                     dl<<<<<<<<<

00557608  |.  F6C0 20       test    al, 20
0055760B  |.  0F97C0        seta    al
0055760E  |.  8846 0A       mov     byte ptr [esi+A], al                                        
//////////////////////////////
00557611  |.  F645 04 10    test    byte ptr [ebp+4], 10
00557615  |.  0F97C0        seta    al
00557618  |.  8847 0B       mov     byte ptr [edi+B], al

0055761B  |.  F645 04 20    test    byte ptr [ebp+4], 20
0055761F  |.  0F97C0        seta    al
00557622  |.  8846 0B       mov     byte ptr [esi+B], al
/////////////////////////////////
00557625  |.  F645 03 10    test    byte ptr [ebp+3], 10
00557629  |.  0F97C0        seta    al
0055762C  |.  8847 0C       mov     byte ptr [edi+C], al

0055762F  |.  F645 03 20    test    byte ptr [ebp+3], 20
00557633  |.  0F97C0        seta    al
00557636  |.  8846 0C       mov     byte ptr [esi+C], al
////////////////////////
00557639  |.  F645 02 10    test    byte ptr [ebp+2], 10
0055763D  |.  0F97C0        seta    al
00557640  |.  8847 0D       mov     byte ptr [edi+D], al

00557643  |.  F645 02 20    test    byte ptr [ebp+2], 20
00557647  |.  0F97C0        seta    al
0055764A  |.  8846 0D       mov     byte ptr [esi+D], al
///////////////////////
0055764D  |.  F645 01 10    test    byte ptr [ebp+1], 10
00557651  |.  0F97C0        seta    al
00557654  |.  8847 0E       mov     byte ptr [edi+E], al

00557657  |.  F645 01 20    test    byte ptr [ebp+1], 20
0055765B  |.  0F97C0        seta    al
0055765E  |.  8846 0E       mov     byte ptr [esi+E], al
///////////////////////
00557661  |.  F645 00 10    test    byte ptr [ebp], 10
00557665  |.  0F97C0        seta    al
00557668  |.  8847 0F       mov     byte ptr [edi+F], al

0055766B  |.  F645 00 20    test    byte ptr [ebp], 20
0055766F  |.  0F97C0        seta    al
00557672  |.  8846 0F       mov     byte ptr [esi+F], al

上面的代码就是把输入的用户名的前8个字符的ASCLL依次和$ 10 $ 20 比较 改变
两个序列  si di的值
//////////////////////////>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
00557675  |.  F645 07 04    test    byte ptr [ebp+7], 4
00557679  |.  0F97C0        seta    al
0055767C  |.  8847 10       mov     byte ptr [edi+10], al

0055767F  |.  F645 07 08    test    byte ptr [ebp+7], 8
00557683  |.  0F97C0        seta    al
00557686  |.  8846 10       mov     byte ptr [esi+10], al
////////////////////////
00557689  |.  F645 06 04    test    byte ptr [ebp+6], 4
0055768D  |.  0F97C0        seta    al
00557690  |.  8847 11       mov     byte ptr [edi+11], al

00557693  |.  F645 06 08    test    byte ptr [ebp+6], 8
00557697  |.  0F97C0        seta    al
0055769A  |.  8846 11       mov     byte ptr [esi+11], al
///////////////////
0055769D  |.  F645 05 04    test    byte ptr [ebp+5], 4
005576A1  |.  0F97C0        seta    al
005576A4  |.  8847 12       mov     byte ptr [edi+12], al

005576A7  |.  F645 05 08    test    byte ptr [ebp+5], 8
005576AB  |.  0F97C0        seta    al
005576AE  |.  8846 12       mov     byte ptr [esi+12], al
/////////////////////////////
005576B1  |.  F645 04 04    test    byte ptr [ebp+4], 4
005576B5  |.  0F97C0        seta    al
005576B8  |.  8847 13       mov     byte ptr [edi+13], al

005576BB  |.  F645 04 08    test    byte ptr [ebp+4], 8
005576BF  |.  0F97C0        seta    al
005576C2  |.  8846 13       mov     byte ptr [esi+13], al
////////////////////////////////
005576C5  |.  F645 03 04    test    byte ptr [ebp+3], 4
005576C9  |.  0F97C0        seta    al
005576CC  |.  8847 14       mov     byte ptr [edi+14], al

005576CF  |.  F645 03 08    test    byte ptr [ebp+3], 8
005576D3  |.  0F97C0        seta    al
005576D6  |.  8846 14       mov     byte ptr [esi+14], al
////////////////////////
005576D9  |.  F645 02 04    test    byte ptr [ebp+2], 4
005576DD  |.  0F97C0        seta    al
005576E0  |.  8847 15       mov     byte ptr [edi+15], al

005576E3  |.  F645 02 08    test    byte ptr [ebp+2], 8
005576E7  |.  0F97C0        seta    al
005576EA  |.  8846 15       mov     byte ptr [esi+15], al
////////////////////////
005576ED  |.  F645 01 04    test    byte ptr [ebp+1], 4
005576F1  |.  0F97C0        seta    al
005576F4  |.  8847 16       mov     byte ptr [edi+16], al

005576F7  |.  F645 01 08    test    byte ptr [ebp+1], 8
005576FB  |.  0F97C0        seta    al
005576FE  |.  8846 16       mov     byte ptr [esi+16], al
//////////////////////
00557701  |.  F645 00 04    test    byte ptr [ebp], 4
00557705  |.  0F97C0        seta    al
00557708  |.  8847 17       mov     byte ptr [edi+17], al

0055770B  |.  F645 00 08    test    byte ptr [ebp], 8
0055770F  |.  0F97C0        seta    al
00557712  |.  8846 17       mov     byte ptr [esi+17], al
///////////////////////////////

上面的代码就是把输入的用户名的前8个字符的ASCLL依次和$ 4 $8 比较 改变
两个序列  si di的值
00557715  |.  8A45 07       mov     al, byte ptr [ebp+7]           `%%%%%%%%%%%%%%%%
00557718  |.  24 01         and     al, 1
0055771A  |.  8847 18       mov     byte ptr [edi+18], al

0055771D  |.  F645 07 02    test    byte ptr [ebp+7], 2
00557721  |.  0F97C0        seta    al
00557724  |.  8846 18       mov     byte ptr [esi+18], al
/////////////////////
00557727  |.  8A45 06       mov     al, byte ptr [ebp+6]
0055772A  |.  24 01         and     al, 1
0055772C  |.  8847 19       mov     byte ptr [edi+19], al

0055772F  |.  F645 06 02    test    byte ptr [ebp+6], 2
00557733  |.  0F97C0        seta    al
00557736  |.  8846 19       mov     byte ptr [esi+19], al
///////////////////////
00557739  |.  8A45 05       mov     al, byte ptr [ebp+5]
0055773C  |.  24 01         and     al, 1
0055773E  |.  8847 1A       mov     byte ptr [edi+1A], al

00557741  |.  F645 05 02    test    byte ptr [ebp+5], 2
00557745  |.  0F97C0        seta    al
00557748  |.  8846 1A       mov     byte ptr [esi+1A], al
///////////////////////
0055774B  |.  8A45 04       mov     al, byte ptr [ebp+4]
0055774E  |.  24 01         and     al, 1
00557750  |.  8847 1B       mov     byte ptr [edi+1B], al

00557753  |.  F645 04 02    test    byte ptr [ebp+4], 2
00557757  |.  0F97C0        seta    al
0055775A  |.  8846 1B       mov     byte ptr [esi+1B], al
////////////////////////
0055775D  |.  8A45 03       mov     al, byte ptr [ebp+3]
00557760  |.  24 01         and     al, 1
00557762  |.  8847 1C       mov     byte ptr [edi+1C], al

00557765  |.  F645 03 02    test    byte ptr [ebp+3], 2
00557769  |.  0F97C0        seta    al
0055776C  |.  8846 1C       mov     byte ptr [esi+1C], al
//////////////////////////////
0055776F  |.  8A45 02       mov     al, byte ptr [ebp+2]
00557772  |.  24 01         and     al, 1
00557774  |.  8847 1D       mov     byte ptr [edi+1D], al

00557777  |.  F645 02 02    test    byte ptr [ebp+2], 2
0055777B  |.  0F97C0        seta    al
0055777E  |.  8846 1D       mov     byte ptr [esi+1D], al
/////////////////////////////
00557781  |.  8A45 01       mov     al, byte ptr [ebp+1]
00557784  |.  24 01         and     al, 1
00557786  |.  8847 1E       mov     byte ptr [edi+1E], al

00557789  |.  F645 01 02    test    byte ptr [ebp+1], 2
0055778D  |.  0F97C0        seta    al
00557790  |.  8846 1E       mov     byte ptr [esi+1E], al
//////////////////////////
00557793  |.  8A45 00       mov     al, byte ptr [ebp]
00557796  |.  24 01         and     al, 1
00557798  |.  8847 1F       mov     byte ptr [edi+1F], al

0055779B  |.  F645 00 02    test    byte ptr [ebp], 2
0055779F  |.  0F97C0        seta    al
005577A2  |.  8846 1F       mov     byte ptr [esi+1F], al

上面的代码就是把输入的用户名的前8个字符的ASCLL依次和$ 4 $8 比较 改变
两个序列  si di的值
/////////////////////////
005577A5  |.  B2 10         mov     dl, 10 //循环16次
005577A7  |.  B8 1C9E5800   mov     eax, 00589E1C         //另一个己预先生成的加密序列称为b[]
005577AC  |>  8A4E 1F       /mov     cl, byte ptr [esi+1F]
005577AF  |.  3208          |xor     cl, byte ptr [eax]
005577B1  |.  81E1 FF000000 |and     ecx, 0FF
005577B7  |.  C1E1 05       |shl     ecx, 5

005577BA  |.  8A5E 04       |mov     bl, byte ptr [esi+4]
005577BD  |.  3258 05       |xor     bl, byte ptr [eax+5]
005577C0  |.  81E3 FF000000 |and     ebx, 0FF
005577C6  |.  C1E3 04       |shl     ebx, 4
005577C9  |.  66:0BCB       |or      cx, bx

005577CC  |.  8A1E          |mov     bl, byte ptr [esi]
005577CE  |.  3258 01       |xor     bl, byte ptr [eax+1]
005577D1  |.  81E3 FF000000 |and     ebx, 0FF
005577D7  |.  C1E3 03       |shl     ebx, 3
005577DA  |.  66:0BCB       |or      cx, bx

005577DD  |.  8A5E 01       |mov     bl, byte ptr [esi+1]
005577E0  |.  3258 02       |xor     bl, byte ptr [eax+2]
005577E3  |.  81E3 FF000000 |and     ebx, 0FF
005577E9  |.  C1E3 02       |shl     ebx, 2
005577EC  |.  66:0BCB       |or      cx, bx

005577EF  |.  8A5E 02       |mov     bl, byte ptr [esi+2]
005577F2  |.  3258 03       |xor     bl, byte ptr [eax+3]
005577F5  |.  81E3 FF000000 |and     ebx, 0FF
005577FB  |.  03DB          |add     ebx, ebx           &&&&&&&&&&&&&&&&
005577FD  |.  66:0BCB       |or      cx, bx

00557800  |.  8A5E 03       |mov     bl, byte ptr [esi+3]
00557803  |.  3258 04       |xor     bl, byte ptr [eax+4]
00557806  |.  81E3 FF000000 |and     ebx, 0FF
0055780C  |.  66:0BCB       |or      cx, bx

0055780F  |.  0FB7D9        |movzx   ebx, cx

00557812  |.  8A9B C4715800 |mov     bl, byte ptr [ebx+5871C4]
00557818  |.  325F 08       |xor     bl, byte ptr [edi+8]
0055781B  |.  881D 64A15800 |mov     byte ptr [58A164], bl   用来改变C[]的值
00557821  |.  0FB7D9        |movzx   ebx, cx

00557824  |.  8A9B C4735800 |mov     bl, byte ptr [ebx+5873C4]
0055782A  |.  325F 10       |xor     bl, byte ptr [edi+10]
0055782D  |.  881D 6CA15800 |mov     byte ptr [58A16C], bl用来改变C[]的值
00557833  |.  0FB7D9        |movzx   ebx, cx

00557836  |.  8A9B C4755800 |mov     bl, byte ptr [ebx+5875C4]
0055783C  |.  325F 16       |xor     bl, byte ptr [edi+16]
0055783F  |.  881D 72A15800 |mov     byte ptr [58A172], bl用来改变C[]的值
00557845  |.  0FB7C9        |movzx   ecx, cx

00557848  |.  8A89 C4775800 |mov     cl, byte ptr [ecx+5877C4]
0055784E  |.  324F 1E       |xor     cl, byte ptr [edi+1E]
00557851  |.  880D 7AA15800 |mov     byte ptr [58A17A], cl用来改变C[]的值
/////////////////////////////////////1
一共有8个这样的小循环
00557857  |.  8A4E 03       |mov     cl, byte ptr [esi+3]
0055785A  |.  3248 06       |xor     cl, byte ptr [eax+6]
0055785D  |.  81E1 FF000000 |and     ecx, 0FF
00557863  |.  C1E1 05       |shl     ecx, 5

00557866  |.  8A5E 08       |mov     bl, byte ptr [esi+8]
00557869  |.  3258 0B       |xor     bl, byte ptr [eax+B]
0055786C  |.  81E3 FF000000 |and     ebx, 0FF
00557872  |.  C1E3 04       |shl     ebx, 4
00557875  |.  66:0BCB       |or      cx, bx

00557878  |.  8A5E 04       |mov     bl, byte ptr [esi+4]
0055787B  |.  3258 07       |xor     bl, byte ptr [eax+7]
0055787E  |.  81E3 FF000000 |and     ebx, 0FF
00557884  |.  C1E3 03       |shl     ebx, 3
00557887  |.  66:0BCB       |or      cx, bx

0055788A  |.  8A5E 05       |mov     bl, byte ptr [esi+5]
0055788D  |.  3258 08       |xor     bl, byte ptr [eax+8]
00557890  |.  81E3 FF000000 |and     ebx, 0FF
00557896  |.  C1E3 02       |shl     ebx, 2
00557899  |.  66:0BCB       |or      cx, bx

0055789C  |.  8A5E 06       |mov     bl, byte ptr [esi+6]
0055789F  |.  3258 09       |xor     bl, byte ptr [eax+9]
005578A2  |.  81E3 FF000000 |and     ebx, 0FF
005578A8  |.  03DB          |add     ebx, ebx
005578AA  |.  66:0BCB       |or      cx, bx

005578AD  |.  8A5E 07       |mov     bl, byte ptr [esi+7]
005578B0  |.  3258 0A       |xor     bl, byte ptr [eax+A]
005578B3  |.  81E3 FF000000 |and     ebx, 0FF
005578B9  |.  66:0BCB       |or      cx, bx

005578BC  |.  0FB7D9        |movzx   ebx, cx
005578BF  |.  8A9B 04725800 |mov     bl, byte ptr [ebx+587204]
005578C5  |.  325F 0C       |xor     bl, byte ptr [edi+C]
005578C8  |.  881D 68A15800 |mov     byte ptr [58A168], bl
005578CE  |.  0FB7D9        |movzx   ebx, cx

005578D1  |.  8A9B 04745800 |mov     bl, byte ptr [ebx+587404]
005578D7  |.  325F 1B       |xor     bl, byte ptr [edi+1B]
005578DA  |.  881D 77A15800 |mov     byte ptr [58A177], bl
005578E0  |.  0FB7D9        |movzx   ebx, cx

005578E3  |.  8A9B 04765800 |mov     bl, byte ptr [ebx+587604]
005578E9  |.  325F 01       |xor     bl, byte ptr [edi+1]
005578EC  |.  881D 5DA15800 |mov     byte ptr [58A15D], bl
005578F2  |.  0FB7C9        |movzx   ecx, cx

005578F5  |.  8A89 04785800 |mov     cl, byte ptr [ecx+587804]
005578FB  |.  324F 11       |xor     cl, byte ptr [edi+11]
005578FE  |.  880D 6DA15800 |mov     byte ptr [58A16D], cl
/////////////////2
00557904  |.  8A4E 07       |mov     cl, byte ptr [esi+7]
00557907  |.  3248 0C       |xor     cl, byte ptr [eax+C]
0055790A  |.  81E1 FF000000 |and     ecx, 0FF
00557910  |.  C1E1 05       |shl     ecx, 5
00557913  |.  8A5E 0C       |mov     bl, byte ptr [esi+C]
00557916  |.  3258 11       |xor     bl, byte ptr [eax+11]
00557919  |.  81E3 FF000000 |and     ebx, 0FF
0055791F  |.  C1E3 04       |shl     ebx, 4
00557922  |.  66:0BCB       |or      cx, bx

00557925  |.  8A5E 08       |mov     bl, byte ptr [esi+8]
00557928  |.  3258 0D       |xor     bl, byte ptr [eax+D]
0055792B  |.  81E3 FF000000 |and     ebx, 0FF
00557931  |.  C1E3 03       |shl     ebx, 3
00557934  |.  66:0BCB       |or      cx, bx

00557937  |.  8A5E 09       |mov     bl, byte ptr [esi+9]
0055793A  |.  3258 0E       |xor     bl, byte ptr [eax+E]
0055793D  |.  81E3 FF000000 |and     ebx, 0FF
00557943  |.  C1E3 02       |shl     ebx, 2
00557946  |.  66:0BCB       |or      cx, bx

00557949  |.  8A5E 0A       |mov     bl, byte ptr [esi+A]
0055794C  |.  3258 0F       |xor     bl, byte ptr [eax+F]
0055794F  |.  81E3 FF000000 |and     ebx, 0FF
00557955  |.  03DB          |add     ebx, ebx
00557957  |.  66:0BCB       |or      cx, bx

0055795A  |.  8A5E 0B       |mov     bl, byte ptr [esi+B]
0055795D  |.  3258 10       |xor     bl, byte ptr [eax+10]
00557960  |.  81E3 FF000000 |and     ebx, 0FF
00557966  |.  66:0BCB       |or      cx, bx

00557969  |.  0FB7D9        |movzx   ebx, cx

0055796C  |.  8A9B 44725800 |mov     bl, byte ptr [ebx+587244]
00557972  |.  325F 17       |xor     bl, byte ptr [edi+17]
00557975  |.  881D 73A15800 |mov     byte ptr [58A173], bl
0055797B  |.  0FB7D9        |movzx   ebx, cx

0055797E  |.  8A9B 44745800 |mov     bl, byte ptr [ebx+587444]
00557984  |.  325F 0F       |xor     bl, byte ptr [edi+F]
00557987  |.  881D 6BA15800 |mov     byte ptr [58A16B], bl
0055798D  |.  0FB7D9        |movzx   ebx, cx

00557990  |.  8A9B 44765800 |mov     bl, byte ptr [ebx+587644]
00557996  |.  325F 1D       |xor     bl, byte ptr [edi+1D]
00557999  |.  881D 79A15800 |mov     byte ptr [58A179], bl
0055799F  |.  0FB7C9        |movzx   ecx, cx

005579A2  |.  8A89 44785800 |mov     cl, byte ptr [ecx+587844]
005579A8  |.  324F 05       |xor     cl, byte ptr [edi+5]
005579AB  |.  880D 61A15800 |mov     byte ptr [58A161], cl
//////////////////3
005579B1  |.  8A4E 0B       |mov     cl, byte ptr [esi+B]
005579B4  |.  3248 12       |xor     cl, byte ptr [eax+12]
005579B7  |.  81E1 FF000000 |and     ecx, 0FF
005579BD  |.  C1E1 05       |shl     ecx, 5
005579C0  |.  8A5E 10       |mov     bl, byte ptr [esi+10]
005579C3  |.  3258 17       |xor     bl, byte ptr [eax+17]
005579C6  |.  81E3 FF000000 |and     ebx, 0FF
005579CC  |.  C1E3 04       |shl     ebx, 4
005579CF  |.  66:0BCB       |or      cx, bx

005579D2  |.  8A5E 0C       |mov     bl, byte ptr [esi+C]
005579D5  |.  3258 13       |xor     bl, byte ptr [eax+13]
005579D8  |.  81E3 FF000000 |and     ebx, 0FF
005579DE  |.  C1E3 03       |shl     ebx, 3
005579E1  |.  66:0BCB       |or      cx, bx

005579E4  |.  8A5E 0D       |mov     bl, byte ptr [esi+D]
005579E7  |.  3258 14       |xor     bl, byte ptr [eax+14]
005579EA  |.  81E3 FF000000 |and     ebx, 0FF
005579F0  |.  C1E3 02       |shl     ebx, 2
005579F3  |.  66:0BCB       |or      cx, bx

005579F6  |.  8A5E 0E       |mov     bl, byte ptr [esi+E]
005579F9  |.  3258 15       |xor     bl, byte ptr [eax+15]
005579FC  |.  81E3 FF000000 |and     ebx, 0FF
00557A02  |.  03DB          |add     ebx, ebx
00557A04  |.  66:0BCB       |or      cx, bx
00557A07  |.  8A5E 0F       |mov     bl, byte ptr [esi+F]
00557A0A  |.  3258 16       |xor     bl, byte ptr [eax+16]
00557A0D  |.  81E3 FF000000 |and     ebx, 0FF
00557A13  |.  66:0BCB       |or      cx, bx
00557A16  |.  0FB7D9        |movzx   ebx, cx

00557A19  |.  8A9B 84725800 |mov     bl, byte ptr [ebx+587284]
00557A1F  |.  325F 19       |xor     bl, byte ptr [edi+19]
00557A22  |.  881D 75A15800 |mov     byte ptr [58A175], bl
00557A28  |.  0FB7D9        |movzx   ebx, cx

00557A2B  |.  8A9B 84745800 |mov     bl, byte ptr [ebx+587484]
00557A31  |.  325F 13       |xor     bl, byte ptr [edi+13]
00557A34  |.  881D 6FA15800 |mov     byte ptr [58A16F], bl
00557A3A  |.  0FB7D9        |movzx   ebx, cx

00557A3D  |.  8A9B 84765800 |mov     bl, byte ptr [ebx+587684]
00557A43  |.  325F 09       |xor     bl, byte ptr [edi+9]
00557A46  |.  881D 65A15800 |mov     byte ptr [58A165], bl
00557A4C  |.  0FB7C9        |movzx   ecx, cx



00557A4F  |.  8A89 84785800 |mov     cl, byte ptr [ecx+587884]
00557A55  |.  320F          |xor     cl, byte ptr [edi]
00557A57  |.  880D 5CA15800 |mov     byte ptr [58A15C], cl
////////////////////4
00557A5D  |.  8A4E 0F       |mov     cl, byte ptr [esi+F]
00557A60  |.  3248 18       |xor     cl, byte ptr [eax+18]
00557A63  |.  81E1 FF000000 |and     ecx, 0FF
00557A69  |.  C1E1 05       |shl     ecx, 5
00557A6C  |.  8A5E 14       |mov     bl, byte ptr [esi+14]
00557A6F  |.  3258 1D       |xor     bl, byte ptr [eax+1D]
00557A72  |.  81E3 FF000000 |and     ebx, 0FF
00557A78  |.  C1E3 04       |shl     ebx, 4
00557A7B  |.  66:0BCB       |or      cx, bx

00557A7E  |.  8A5E 10       |mov     bl, byte ptr [esi+10]
00557A81  |.  3258 19       |xor     bl, byte ptr [eax+19]
00557A84  |.  81E3 FF000000 |and     ebx, 0FF
00557A8A  |.  C1E3 03       |shl     ebx, 3
00557A8D  |.  66:0BCB       |or      cx, bx

00557A90  |.  8A5E 11       |mov     bl, byte ptr [esi+11]
00557A93  |.  3258 1A       |xor     bl, byte ptr [eax+1A]
00557A96  |.  81E3 FF000000 |and     ebx, 0FF
00557A9C  |.  C1E3 02       |shl     ebx, 2
00557A9F  |.  66:0BCB       |or      cx, bx

00557AA2  |.  8A5E 12       |mov     bl, byte ptr [esi+12]
00557AA5  |.  3258 1B       |xor     bl, byte ptr [eax+1B]
00557AA8  |.  81E3 FF000000 |and     ebx, 0FF
00557AAE  |.  03DB          |add     ebx, ebx
00557AB0  |.  66:0BCB       |or      cx, bx

00557AB3  |.  8A5E 13       |mov     bl, byte ptr [esi+13]
00557AB6  |.  3258 1C       |xor     bl, byte ptr [eax+1C]
00557AB9  |.  81E3 FF000000 |and     ebx, 0FF
00557ABF  |.  66:0BCB       |or      cx, bx

00557AC2  |.  0FB7D9        |movzx   ebx, cx

00557AC5  |.  8A9B C4725800 |mov     bl, byte ptr [ebx+5872C4]
00557ACB  |.  325F 07       |xor     bl, byte ptr [edi+7]
00557ACE  |.  881D 63A15800 |mov     byte ptr [58A163], bl
00557AD4  |.  0FB7D9        |movzx   ebx, cx

00557AD7  |.  8A9B C4745800 |mov     bl, byte ptr [ebx+5874C4]
00557ADD  |.  325F 0D       |xor     bl, byte ptr [edi+D]
00557AE0  |.  881D 69A15800 |mov     byte ptr [58A169], bl
00557AE6  |.  0FB7D9        |movzx   ebx, cx

00557AE9  |.  8A9B C4765800 |mov     bl, byte ptr [ebx+5876C4]
00557AEF  |.  325F 18       |xor     bl, byte ptr [edi+18]
00557AF2  |.  881D 74A15800 |mov     byte ptr [58A174], bl
00557AF8  |.  0FB7C9        |movzx   ecx, cx

00557AFB  |.  8A89 C4785800 |mov     cl, byte ptr [ecx+5878C4]
00557B01  |.  324F 02       |xor     cl, byte ptr [edi+2]
00557B04  |.  880D 5EA15800 |mov     byte ptr [58A15E], cl
//////////////////////5
00557B0A  |.  8A4E 13       |mov     cl, byte ptr [esi+13]
00557B0D  |.  3248 1E       |xor     cl, byte ptr [eax+1E]
00557B10  |.  81E1 FF000000 |and     ecx, 0FF
00557B16  |.  C1E1 05       |shl     ecx, 5
00557B19  |.  8A5E 18       |mov     bl, byte ptr [esi+18]
00557B1C  |.  3258 23       |xor     bl, byte ptr [eax+23]
00557B1F  |.  81E3 FF000000 |and     ebx, 0FF
00557B25  |.  C1E3 04       |shl     ebx, 4
00557B28  |.  66:0BCB       |or      cx, bx

00557B2B  |.  8A5E 14       |mov     bl, byte ptr [esi+14]
00557B2E  |.  3258 1F       |xor     bl, byte ptr [eax+1F]
00557B31  |.  81E3 FF000000 |and     ebx, 0FF
00557B37  |.  C1E3 03       |shl     ebx, 3
00557B3A  |.  66:0BCB       |or      cx, bx

00557B3D  |.  8A5E 15       |mov     bl, byte ptr [esi+15]
00557B40  |.  3258 20       |xor     bl, byte ptr [eax+20]
00557B43  |.  81E3 FF000000 |and     ebx, 0FF
00557B49  |.  C1E3 02       |shl     ebx, 2
00557B4C  |.  66:0BCB       |or      cx, bx

00557B4F  |.  8A5E 16       |mov     bl, byte ptr [esi+16]
00557B52  |.  3258 21       |xor     bl, byte ptr [eax+21]
00557B55  |.  81E3 FF000000 |and     ebx, 0FF
00557B5B  |.  03DB          |add     ebx, ebx
00557B5D  |.  66:0BCB       |or      cx, bx

00557B60  |.  8A5E 17       |mov     bl, byte ptr [esi+17]
00557B63  |.  3258 22       |xor     bl, byte ptr [eax+22]
00557B66  |.  81E3 FF000000 |and     ebx, 0FF
00557B6C  |.  66:0BCB       |or      cx, bx

00557B6F  |.  0FB7D9        |movzx   ebx, cx
00557B72  |.  8A9B 04735800 |mov     bl, byte ptr [ebx+587304]
00557B78  |.  325F 03       |xor     bl, byte ptr [edi+3]
00557B7B  |.  881D 5FA15800 |mov     byte ptr [58A15F], bl
00557B81  |.  0FB7D9        |movzx   ebx, cx

00557B84  |.  8A9B 04755800 |mov     bl, byte ptr [ebx+587504]
00557B8A  |.  325F 1C       |xor     bl, byte ptr [edi+1C]
00557B8D  |.  881D 78A15800 |mov     byte ptr [58A178], bl
00557B93  |.  0FB7D9        |movzx   ebx, cx

00557B96  |.  8A9B 04775800 |mov     bl, byte ptr [ebx+587704]
00557B9C  |.  325F 0A       |xor     bl, byte ptr [edi+A]
00557B9F  |.  881D 66A15800 |mov     byte ptr [58A166], bl
00557BA5  |.  0FB7C9        |movzx   ecx, cx

00557BA8  |.  8A89 04795800 |mov     cl, byte ptr [ecx+587904]
00557BAE  |.  324F 12       |xor     cl, byte ptr [edi+12]
00557BB1  |.  880D 6EA15800 |mov     byte ptr [58A16E], cl
////////////////////6
00557BB7  |.  8A4E 17       |mov     cl, byte ptr [esi+17]
00557BBA  |.  3248 24       |xor     cl, byte ptr [eax+24]
00557BBD  |.  81E1 FF000000 |and     ecx, 0FF
00557BC3  |.  C1E1 05       |shl     ecx, 5
00557BC6  |.  8A5E 1C       |mov     bl, byte ptr [esi+1C]
00557BC9  |.  3258 29       |xor     bl, byte ptr [eax+29]
00557BCC  |.  81E3 FF000000 |and     ebx, 0FF
00557BD2  |.  C1E3 04       |shl     ebx, 4
00557BD5  |.  66:0BCB       |or      cx, bx

00557BD8  |.  8A5E 18       |mov     bl, byte ptr [esi+18]
00557BDB  |.  3258 25       |xor     bl, byte ptr [eax+25]
00557BDE  |.  81E3 FF000000 |and     ebx, 0FF
00557BE4  |.  C1E3 03       |shl     ebx, 3
00557BE7  |.  66:0BCB       |or      cx, bx

00557BEA  |.  8A5E 19       |mov     bl, byte ptr [esi+19]
00557BED  |.  3258 26       |xor     bl, byte ptr [eax+26]
00557BF0  |.  81E3 FF000000 |and     ebx, 0FF
00557BF6  |.  C1E3 02       |shl     ebx, 2
00557BF9  |.  66:0BCB       |or      cx, bx

00557BFC  |.  8A5E 1A       |mov     bl, byte ptr [esi+1A]
00557BFF  |.  3258 27       |xor     bl, byte ptr [eax+27]
00557C02  |.  81E3 FF000000 |and     ebx, 0FF
00557C08  |.  03DB          |add     ebx, ebx
00557C0A  |.  66:0BCB       |or      cx, bx

00557C0D  |.  8A5E 1B       |mov     bl, byte ptr [esi+1B]
00557C10  |.  3258 28       |xor     bl, byte ptr [eax+28]
00557C13  |.  81E3 FF000000 |and     ebx, 0FF
00557C19  |.  66:0BCB       |or      cx, bx

00557C1C  |.  0FB7D9        |movzx   ebx, cx
00557C1F  |.  8A9B 44735800 |mov     bl, byte ptr [ebx+587344]
00557C25  |.  325F 1F       |xor     bl, byte ptr [edi+1F]
00557C28  |.  881D 7BA15800 |mov     byte ptr [58A17B], bl
00557C2E  |.  0FB7D9        |movzx   ebx, cx

00557C31  |.  8A9B 44755800 |mov     bl, byte ptr [ebx+587544]
00557C37  |.  325F 0B       |xor     bl, byte ptr [edi+B]
00557C3A  |.  881D 67A15800 |mov     byte ptr [58A167], bl
00557C40  |.  0FB7D9        |movzx   ebx, cx

00557C43  |.  8A9B 44775800 |mov     bl, byte ptr [ebx+587744]
00557C49  |.  325F 15       |xor     bl, byte ptr [edi+15]
00557C4C  |.  881D 71A15800 |mov     byte ptr [58A171], bl
00557C52  |.  0FB7C9        |movzx   ecx, cx

00557C55  |.  8A89 44795800 |mov     cl, byte ptr [ecx+587944]
00557C5B  |.  324F 06       |xor     cl, byte ptr [edi+6]
00557C5E  |.  880D 62A15800 |mov     byte ptr [58A162], cl
/////////////7
00557C64  |.  8A4E 1B       |mov     cl, byte ptr [esi+1B]
00557C67  |.  3248 2A       |xor     cl, byte ptr [eax+2A]
00557C6A  |.  81E1 FF000000 |and     ecx, 0FF
00557C70  |.  C1E1 05       |shl     ecx, 5
00557C73  |.  8A1E          |mov     bl, byte ptr [esi]
00557C75  |.  3258 2F       |xor     bl, byte ptr [eax+2F]
00557C78  |.  81E3 FF000000 |and     ebx, 0FF
00557C7E  |.  C1E3 04       |shl     ebx, 4
00557C81  |.  66:0BCB       |or      cx, bx

00557C84  |.  8A5E 1C       |mov     bl, byte ptr [esi+1C]
00557C87  |.  3258 2B       |xor     bl, byte ptr [eax+2B]
00557C8A  |.  81E3 FF000000 |and     ebx, 0FF
00557C90  |.  C1E3 03       |shl     ebx, 3
00557C93  |.  66:0BCB       |or      cx, bx

00557C96  |.  8A5E 1D       |mov     bl, byte ptr [esi+1D]
00557C99  |.  3258 2C       |xor     bl, byte ptr [eax+2C]
00557C9C  |.  81E3 FF000000 |and     ebx, 0FF
00557CA2  |.  C1E3 02       |shl     ebx, 2
00557CA5  |.  66:0BCB       |or      cx, bx

00557CA8  |.  8A5E 1E       |mov     bl, byte ptr [esi+1E]
00557CAB  |.  3258 2D       |xor     bl, byte ptr [eax+2D]
00557CAE  |.  81E3 FF000000 |and     ebx, 0FF
00557CB4  |.  03DB          |add     ebx, ebx
00557CB6  |.  66:0BCB       |or      cx, bx

00557CB9  |.  8A5E 1F       |mov     bl, byte ptr [esi+1F]
00557CBC  |.  3258 2E       |xor     bl, byte ptr [eax+2E]
00557CBF  |.  81E3 FF000000 |and     ebx, 0FF
00557CC5  |.  66:0BCB       |or      cx, bx

00557CC8  |.  0FB7D9        |movzx   ebx, cx
00557CCB  |.  8A9B 84735800 |mov     bl, byte ptr [ebx+587384]
00557CD1  |.  325F 04       |xor     bl, byte ptr [edi+4]
00557CD4  |.  881D 60A15800 |mov     byte ptr [58A160], bl
00557CDA  |.  0FB7D9        |movzx   ebx, cx

00557CDD  |.  8A9B 84755800 |mov     bl, byte ptr [ebx+587584]
00557CE3  |.  325F 1A       |xor     bl, byte ptr [edi+1A]
00557CE6  |.  881D 76A15800 |mov     byte ptr [58A176], bl
00557CEC  |.  0FB7D9        |movzx   ebx, cx

00557CEF  |.  8A9B 84775800 |mov     bl, byte ptr [ebx+587784]
00557CF5  |.  325F 0E       |xor     bl, byte ptr [edi+E]
00557CF8  |.  881D 6AA15800 |mov     byte ptr [58A16A], bl
00557CFE  |.  0FB7C9        |movzx   ecx, cx

00557D01  |.  8A89 84795800 |mov     cl, byte ptr [ecx+587984]
00557D07  |.  324F 14       |xor     cl, byte ptr [edi+14]
00557D0A  |.  880D 70A15800 |mov     byte ptr [58A170], cl
//////////////////////8
00557D10  |.  56            |push    esi
00557D11  |.  57            |push    edi
00557D12  |.  B9 08000000   |mov     ecx, 8
00557D17  |.  F3:A5         |rep     movs dword ptr es:[edi], dword ptr [esi]  //si 复制到DI
00557D19  |.  5F            |pop     edi
00557D1A  |.  5E            |pop     esi
00557D1B  |.  56            |push    esi
00557D1C  |.  57            |push    edi
00557D1D  |.  8BFE          |mov     edi, esi
00557D1F  |.  BE 5CA15800   |mov     esi, 0058A15C //此处属于C[] 为了方便称为e[] (e[] si[]  di[] 大小相同)
00557D24  |.  B9 08000000   |mov     ecx, 8
00557D29  |.  F3:A5         |rep     movs dword ptr es:[edi], dword ptr [esi ]//e[]复制到si[]
00557D2B  |.  5F            |pop     edi
00557D2C  |.  5E            |pop     esi
00557D2D  |.  83C0 30       |add     eax, 30 //把C[]的指针移动48位
00557D30  |.  FECA          |dec     dl
00557D32  |.^ 0F85 74FAFFFF \jnz     005577AC //循环16次
前面的代码主要是用输入的名字和己生成的序列生成两个新的序列
下面就是用这两个序列生成序列号

00557D38  |.  8A47 07       mov     al, byte ptr [edi+7]
00557D3B  |.  C1E0 07       shl     eax, 7
00557D3E  |.  8A56 07       mov     dl, byte ptr [esi+7]
00557D41  |.  C1E2 06       shl     edx, 6
00557D44  |.  0AC2          or      al, dl
00557D46  |.  8A57 0F       mov     dl, byte ptr [edi+F]
00557D49  |.  C1E2 05       shl     edx, 5
00557D4C  |.  0AC2          or      al, dl
00557D4E  |.  8A56 0F       mov     dl, byte ptr [esi+F]
00557D51  |.  C1E2 04       shl     edx, 4
00557D54  |.  0AC2          or      al, dl
00557D56  |.  8A57 17       mov     dl, byte ptr [edi+17]
00557D59  |.  C1E2 03       shl     edx, 3
00557D5C  |.  0AC2          or      al, dl
00557D5E  |.  8A56 17       mov     dl, byte ptr [esi+17]
00557D61  |.  C1E2 02       shl     edx, 2
00557D64  |.  0AC2          or      al, dl
00557D66  |.  8A57 1F       mov     dl, byte ptr [edi+1F]
00557D69  |.  03D2          add     edx, edx
00557D6B  |.  0AC2          or      al, dl
00557D6D  |.  0A46 1F       or      al, byte ptr [esi+1F]
00557D70  |.  8B5424 08     mov     edx, dword ptr [esp+8]
00557D74  |.  8802          mov     byte ptr [edx], al                          ;  第1个字节


00557D76  |.  8A47 06       mov     al, byte ptr [edi+6]
00557D79  |.  C1E0 07       shl     eax, 7
00557D7C  |.  8A56 06       mov     dl, byte ptr [esi+6]
00557D7F  |.  C1E2 06       shl     edx, 6
00557D82  |.  0AC2          or      al, dl
00557D84  |.  8A57 0E       mov     dl, byte ptr [edi+E]
00557D87  |.  C1E2 05       shl     edx, 5
00557D8A  |.  0AC2          or      al, dl
00557D8C  |.  8A56 0E       mov     dl, byte ptr [esi+E]
00557D8F  |.  C1E2 04       shl     edx, 4
00557D92  |.  0AC2          or      al, dl
00557D94  |.  8A57 16       mov     dl, byte ptr [edi+16]
00557D97  |.  C1E2 03       shl     edx, 3
00557D9A  |.  0AC2          or      al, dl
00557D9C  |.  8A56 16       mov     dl, byte ptr [esi+16]
00557D9F  |.  C1E2 02       shl     edx, 2
00557DA2  |.  0AC2          or      al, dl
00557DA4  |.  8A57 1E       mov     dl, byte ptr [edi+1E]
00557DA7  |.  03D2          add     edx, edx
00557DA9  |.  0AC2          or      al, dl
00557DAB  |.  0A46 1E       or      al, byte ptr [esi+1E]
00557DAE  |.  8B5424 08     mov     edx, dword ptr [esp+8]
00557DB2  |.  8842 01       mov     byte ptr [edx+1], al                        ;  第2个字节

00557DB5  |.  8A47 05       mov     al, byte ptr [edi+5]
00557DB8  |.  C1E0 07       shl     eax, 7
00557DBB  |.  8A56 05       mov     dl, byte ptr [esi+5]
00557DBE  |.  C1E2 06       shl     edx, 6
00557DC1  |.  0AC2          or      al, dl
00557DC3  |.  8A57 0D       mov     dl, byte ptr [edi+D]
00557DC6  |.  C1E2 05       shl     edx, 5
00557DC9  |.  0AC2          or      al, dl
00557DCB  |.  8A56 0D       mov     dl, byte ptr [esi+D]
00557DCE  |.  C1E2 04       shl     edx, 4
00557DD1  |.  0AC2          or      al, dl
00557DD3  |.  8A57 15       mov     dl, byte ptr [edi+15]
00557DD6  |.  C1E2 03       shl     edx, 3
00557DD9  |.  0AC2          or      al, dl
00557DDB  |.  8A56 15       mov     dl, byte ptr [esi+15]
00557DDE  |.  C1E2 02       shl     edx, 2
00557DE1  |.  0AC2          or      al, dl
00557DE3  |.  8A57 1D       mov     dl, byte ptr [edi+1D]
00557DE6  |.  03D2          add     edx, edx
00557DE8  |.  0AC2          or      al, dl
00557DEA  |.  0A46 1D       or      al, byte ptr [esi+1D]
00557DED  |.  8B5424 08     mov     edx, dword ptr [esp+8]
00557DF1  |.  8842 02       mov     byte ptr [edx+2], al                        ;  第3个字节

00557DF4  |.  8A47 04       mov     al, byte ptr [edi+4]
00557DF7  |.  C1E0 07       shl     eax, 7
00557DFA  |.  8A56 04       mov     dl, byte ptr [esi+4]
00557DFD  |.  C1E2 06       shl     edx, 6
00557E00  |.  0AC2          or      al, dl
00557E02  |.  8A57 0C       mov     dl, byte ptr [edi+C]
00557E05  |.  C1E2 05       shl     edx, 5
00557E08  |.  0AC2          or      al, dl
00557E0A  |.  8A56 0C       mov     dl, byte ptr [esi+C]
00557E0D  |.  C1E2 04       shl     edx, 4
00557E10  |.  0AC2          or      al, dl
00557E12  |.  8A57 14       mov     dl, byte ptr [edi+14]
00557E15  |.  C1E2 03       shl     edx, 3
00557E18  |.  0AC2          or      al, dl
00557E1A  |.  8A56 14       mov     dl, byte ptr [esi+14]
00557E1D  |.  C1E2 02       shl     edx, 2
00557E20  |.  0AC2          or      al, dl
00557E22  |.  8A57 1C       mov     dl, byte ptr [edi+1C]
00557E25  |.  03D2          add     edx, edx
00557E27  |.  0AC2          or      al, dl
00557E29  |.  0A46 1C       or      al, byte ptr [esi+1C]
00557E2C  |.  8B5424 08     mov     edx, dword ptr [esp+8]
00557E30  |.  8842 03       mov     byte ptr [edx+3], al                        ;  第4个字节

00557E33  |.  8A47 03       mov     al, byte ptr [edi+3]
00557E36  |.  C1E0 07       shl     eax, 7
00557E39  |.  8A56 03       mov     dl, byte ptr [esi+3]
00557E3C  |.  C1E2 06       shl     edx, 6
00557E3F  |.  0AC2          or      al, dl
00557E41  |.  8A57 0B       mov     dl, byte ptr [edi+B]
00557E44  |.  C1E2 05       shl     edx, 5
00557E47  |.  0AC2          or      al, dl
00557E49  |.  8A56 0B       mov     dl, byte ptr [esi+B]
00557E4C  |.  C1E2 04       shl     edx, 4
00557E4F  |.  0AC2          or      al, dl
00557E51  |.  8A57 13       mov     dl, byte ptr [edi+13]
00557E54  |.  C1E2 03       shl     edx, 3
00557E57  |.  0AC2          or      al, dl
00557E59  |.  8A56 13       mov     dl, byte ptr [esi+13]
00557E5C  |.  C1E2 02       shl     edx, 2
00557E5F  |.  0AC2          or      al, dl
00557E61  |.  8A57 1B       mov     dl, byte ptr [edi+1B]
00557E64  |.  03D2          add     edx, edx
00557E66  |.  0AC2          or      al, dl
00557E68  |.  0A46 1B       or      al, byte ptr [esi+1B]
00557E6B  |.  8B5424 08     mov     edx, dword ptr [esp+8]
00557E6F  |.  8842 04       mov     byte ptr [edx+4], al                        ;  第5个字节

00557E72  |.  8A47 02       mov     al, byte ptr [edi+2]
00557E75  |.  C1E0 07       shl     eax, 7
00557E78  |.  8A56 02       mov     dl, byte ptr [esi+2]
00557E7B  |.  C1E2 06       shl     edx, 6
00557E7E  |.  0AC2          or      al, dl
00557E80  |.  8A57 0A       mov     dl, byte ptr [edi+A]
00557E83  |.  C1E2 05       shl     edx, 5
00557E86  |.  0AC2          or      al, dl
00557E88  |.  8A56 0A       mov     dl, byte ptr [esi+A]
00557E8B  |.  C1E2 04       shl     edx, 4
00557E8E  |.  0AC2          or      al, dl
00557E90  |.  8A57 12       mov     dl, byte ptr [edi+12]
00557E93  |.  C1E2 03       shl     edx, 3
00557E96  |.  0AC2          or      al, dl
00557E98  |.  8A56 12       mov     dl, byte ptr [esi+12]
00557E9B  |.  C1E2 02       shl     edx, 2
00557E9E  |.  0AC2          or      al, dl
00557EA0  |.  8A57 1A       mov     dl, byte ptr [edi+1A]
00557EA3  |.  03D2          add     edx, edx
00557EA5  |.  0AC2          or      al, dl
00557EA7  |.  0A46 1A       or      al, byte ptr [esi+1A]
00557EAA  |.  8B5424 08     mov     edx, dword ptr [esp+8]
00557EAE  |.  8842 05       mov     byte ptr [edx+5], al                        ;  第6个字节

00557EB1  |.  8A47 01       mov     al, byte ptr [edi+1]
00557EB4  |.  C1E0 07       shl     eax, 7
00557EB7  |.  8A56 01       mov     dl, byte ptr [esi+1]
00557EBA  |.  C1E2 06       shl     edx, 6
00557EBD  |.  0AC2          or      al, dl
00557EBF  |.  8A57 09       mov     dl, byte ptr [edi+9]
00557EC2  |.  C1E2 05       shl     edx, 5
00557EC5  |.  0AC2          or      al, dl
00557EC7  |.  8A56 09       mov     dl, byte ptr [esi+9]
00557ECA  |.  C1E2 04       shl     edx, 4
00557ECD  |.  0AC2          or      al, dl
00557ECF  |.  8A57 11       mov     dl, byte ptr [edi+11]
00557ED2  |.  C1E2 03       shl     edx, 3
00557ED5  |.  0AC2          or      al, dl
00557ED7  |.  8A56 11       mov     dl, byte ptr [esi+11]
00557EDA  |.  C1E2 02       shl     edx, 2
00557EDD  |.  0AC2          or      al, dl
00557EDF  |.  8A57 19       mov     dl, byte ptr [edi+19]
00557EE2  |.  03D2          add     edx, edx
00557EE4  |.  0AC2          or      al, dl
00557EE6  |.  0A46 19       or      al, byte ptr [esi+19]
00557EE9  |.  8B5424 08     mov     edx, dword ptr [esp+8]
00557EED  |.  8842 06       mov     byte ptr [edx+6], al                        ;  第7个字节

00557EF0  |.  8A07          mov     al, byte ptr [edi]
00557EF2  |.  C1E0 07       shl     eax, 7
00557EF5  |.  8A16          mov     dl, byte ptr [esi]
00557EF7  |.  C1E2 06       shl     edx, 6
00557EFA  |.  0AC2          or      al, dl
00557EFC  |.  8A57 08       mov     dl, byte ptr [edi+8]
00557EFF  |.  C1E2 05       shl     edx, 5
00557F02  |.  0AC2          or      al, dl
00557F04  |.  8A56 08       mov     dl, byte ptr [esi+8]
00557F07  |.  C1E2 04       shl     edx, 4
00557F0A  |.  0AC2          or      al, dl
00557F0C  |.  8A57 10       mov     dl, byte ptr [edi+10]
00557F0F  |.  C1E2 03       shl     edx, 3
00557F12  |.  0AC2          or      al, dl
00557F14  |.  8A56 10       mov     dl, byte ptr [esi+10]
00557F17  |.  C1E2 02       shl     edx, 2
00557F1A  |.  0AC2          or      al, dl
00557F1C  |.  8A57 18       mov     dl, byte ptr [edi+18]
00557F1F  |.  03D2          add     edx, edx
00557F21  |.  0AC2          or      al, dl
00557F23  |.  0A46 18       or      al, byte ptr [esi+18]
00557F26  |.  8B5424 08     mov     edx, dword ptr [esp+8]
00557F2A  |.  8842 07       mov     byte ptr [edx+7], al                        ;  第8个字节
其中b[]是程序中定义的
C[]是后来生成的不知道是怎样生成的     但每次都一样。。。
b[]
005871AF  00 00 00 02 00 00 00 04 00 00 00 08 00 00 00 10  ............
005871BF  00 00 00 20 00 01 00 01 00 00 01 01 01 00 01 00  ... ......
005871CF  01 00 01 00 00 00 01 00 00 01 00 01 00 01 00 01  .........
005871DF  01 01 00 00 01 00 00 01 01 01 00 00 01 01 01 01  ......
005871EF  00 00 01 00 00 01 01 01 00 00 01 00 00 00 01 00  ..........
005871FF  01 01 00 00 01 01 00 01 01 00 01 00 00 01 00 00  ........
0058720F  01 01 00 00 01 00 01 00 00 01 00 01 01 01 00 00  ........
0058721F  01 00 01 01 00 00 01 00 01 01 00 01 00 00 01 01  .......
0058722F  00 01 00 00 01 01 01 01 00 00 01 00 00 01 00 00  .........
0058723F  01 00 00 01 01 01 00 01 01 00 00 01 00 00 01 01  .......
0058724F  00 01 00 00 01 01 00 00 01 00 00 00 01 00 01 00  ..........
0058725F  01 01 01 01 00 01 00 00 01 01 01 00 00 01 00 00  .......
0058726F  01 00 01 01 00 00 01 01 00 00 01 01 00 00 01 01  .......
0058727F  00 01 00 00 01 00 01 01 00 00 00 01 01 00 00 01  .........
0058728F  00 01 01 00 01 01 01 01 00 00 01 00 00 00 00 00  .........
0058729F  01 00 01 01 01 01 00 01 00 01 01 00 01 01 00 00  ......
005872AF  01 00 00 01 00 00 01 00 00 01 00 01 01 01 00 00  .........
005872BF  01 01 00 00 01 00 01 00 00 00 01 01 00 01 00 00  .........
005872CF  01 01 00 01 01 01 01 00 01 00 00 01 00 00 00 01  .......
005872DF  01 00 01 01 00 00 00 00 01 01 01 00 01 01 01 01  ......
005872EF  00 00 00 00 01 01 01 01 00 00 01 00 01 00 01 00  .........
005872FF  01 01 00 00 00 01 00 01 01 01 00 00 01 00 01 00  ........
0058730F  00 01 00 00 01 01 01 00 00 00 01 01 00 00 00 01  .........
0058731F  01 00 01 00 01 01 01 01 00 00 01 01 00 00 00 00  ........
0058732F  01 00 01 01 00 00 00 00 01 01 00 01 01 01 01 00  .......
0058733F  00 00 00 01 01 00 01 00 01 01 00 01 01 00 01 01  .......
0058734F  00 00 01 00 00 01 00 01 00 00 01 00 01 01 00 00  ..........
0058735F  01 00 01 01 00 00 00 01 01 01 00 00 01 01 01 00  .......
0058736F  01 00 00 01 00 00 01 01 01 00 00 01 00 01 00 00  .........
0058737F  01 01 00 00 01 01 00 01 00 00 01 01 00 01 01 00  .......
0058738F  01 00 00 01 00 00 01 01 01 01 00 00 00 01 00 00  .........
0058739F  01 00 01 01 00 00 01 00 00 01 01 01 00 00 00 01  ........
005873AF  01 01 00 00 01 00 00 01 00 00 01 01 01 01 01 01  ......
005873BF  00 00 00 00 01 01 01 01 00 00 01 00 00 00 00 01  ..........
005873CF  01 01 00 00 01 00 01 01 01 01 00 01 00 00 01 01  ......
005873DF  00 00 01 00 00 01 00 01 00 01 01 00 00 01 01 00  .........
005873EF  01 00 00 01 00 01 01 00 00 01 00 00 01 01 00 00  .........
005873FF  01 00 00 01 01 01 00 00 01 01 00 00 01 00 01 00  ........
0058740F  01 01 00 01 00 00 01 01 01 01 00 00 01 01 00 00  .......
0058741F  00 01 00 00 01 00 01 01 00 00 01 01 00 01 00 01  ........
0058742F  01 00 00 00 01 01 00 00 00 00 01 01 00 00 01 01  .........
0058743F  01 00 01 01 00 00 00 00 01 01 00 01 01 00 01 01  .......
0058744F  01 00 01 00 00 01 01 00 00 00 01 01 00 00 00 01  .........
0058745F  01 01 00 01 00 01 01 01 00 00 01 00 00 00 00 00  .........
0058746F  01 01 00 01 01 00 00 01 00 01 00 00 01 01 01 01  ......
0058747F  00 00 01 00 01 01 01 01 00 00 01 00 00 00 00 00  ..........
0058748F  01 00 01 01 01 01 00 00 01 01 01 00 00 01 01 00  ......
0058749F  01 00 00 01 00 00 01 00 00 01 00 01 01 01 00 00  .........
005874AF  01 01 00 00 01 00 01 00 01 00 00 01 00 00 01 01  ........
005874BF  00 01 01 00 01 00 01 01 00 01 00 00 01 00 01 00  ........
005874CF  01 01 00 01 00 01 00 00 01 01 01 01 00 01 00 01  ......
005874DF  00 00 00 00 01 01 00 00 00 00 01 01 00 01 00 01  ..........
005874EF  01 01 00 00 01 00 00 01 01 00 01 00 01 01 01 00  .......
005874FF  00 00 01 01 00 01 00 00 01 00 00 01 00 00 01 00  ..........
0058750F  01 01 01 01 00 00 01 01 00 01 01 00 01 01 00 01  .....
0058751F  01 00 00 00 00 00 01 01 01 00 00 01 00 01 00 01  .........
0058752F  00 00 01 00 01 01 00 00 01 00 01 01 00 00 01 00  .........
0058753F  01 01 00 00 01 01 00 00 01 01 00 00 01 00 01 00  ........
0058754F  01 01 00 01 00 01 00 00 01 01 00 00 00 01 00 01  ........
0058755F  01 00 01 00 01 00 01 00 01 01 00 01 01 00 01 01  ......
0058756F  00 00 01 00 00 01 00 01 00 00 01 00 01 00 01 00  ..........
0058757F  01 01 00 00 01 01 00 00 01 01 01 00 00 00 00 00  .........
0058758F  01 01 00 01 01 00 01 01 00 00 00 01 01 01 01 01  .....
0058759F  00 00 01 00 00 01 00 01 00 00 01 01 00 00 01 00  ..........
005875AF  01 01 00 01 00 00 00 01 01 01 00 00 01 01 01 00  .......
005875BF  00 00 01 01 00 01 00 00 00 01 01 01 00 01 01 01  .......
005875CF  00 00 00 00 01 00 01 01 00 01 01 00 00 01 01 00  .........
005875DF  01 00 00 01 00 00 00 01 00 00 01 01 01 01 00 00  .........
005875EF  01 01 01 00 00 01 00 00 01 00 00 00 01 00 01 01  ........
005875FF  01 01 00 01 00 01 00 00 01 01 01 01 00 00 01 01  ......
0058760F  00 00 00 00 01 01 00 00 01 01 01 00 01 00 00 00  ..........
0058761F  01 01 00 01 00 00 01 01 01 01 00 00 00 00 00 00  .........
0058762F  01 00 01 01 01 00 00 01 00 01 01 00 01 01 01 01  .....
0058763F  00 00 00 01 00 01 00 00 01 01 01 01 00 00 00 00  ..........
0058764F  01 01 00 01 00 00 01 00 00 01 00 01 01 01 00 00  ........
0058765F  01 00 01 01 00 00 01 00 00 00 01 01 00 01 00 01  ........
0058766F  00 00 01 01 01 00 01 00 00 01 00 00 01 00 01 01  ........
0058767F  01 01 00 01 00 01 00 01 01 00 01 00 01 00 01 00  .......
0058768F  00 01 00 00 01 00 00 01 00 01 01 00 01 00 01 01  ........
0058769F  00 00 01 01 00 01 01 00 00 00 01 01 00 01 00 01  ........
005876AF  01 00 01 00 00 01 01 00 01 01 00 00 00 00 00 00  ..........
005876BF  01 00 01 01 01 01 00 00 00 01 01 01 01 00 00 01  ......
005876CF  01 00 00 01 00 01 01 01 00 00 01 00 00 00 00 01  .........
005876DF  01 01 00 00 01 00 01 00 01 01 00 01 00 01 00 00  ........
005876EF  00 01 01 00 01 01 00 00 01 00 01 01 00 01 01 00  .......
005876FF  00 01 00 00 01 00 00 01 01 00 01 01 00 00 00 01  .........
0058770F  00 01 01 00 01 01 01 00 01 01 00 00 00 01 00 00  ........
0058771F  01 00 01 01 00 00 01 01 00 01 00 00 01 01 00 00  ........
0058772F  01 00 00 01 01 00 01 01 00 00 00 01 01 01 01 00  .......
0058773F  01 01 00 00 00 00 01 01 01 01 00 00 00 01 00 00  .........
0058774F  01 00 01 01 00 00 00 01 01 00 00 00 01 01 01 00  ........
0058775F  00 01 01 00 01 00 00 01 00 00 01 01 01 01 01 01  ......
0058776F  00 00 00 00 01 01 01 00 00 00 00 01 01 00 00 00  ...........
0058777F  01 01 01 01 00 00 01 00 00 01 01 01 00 01 00 01  ......
0058778F  01 00 00 00 01 00 01 00 00 01 01 01 00 00 00 01  .........
0058779F  01 00 01 00 01 01 01 00 00 00 00 01 01 00 01 01  .......
005877AF  00 01 01 00 00 01 00 01 01 00 01 00 00 01 00 00  .........
005877BF  00 01 00 01 01 00 00 01 01 00 01 01 00 01 00 00  ........
005877CF  00 01 01 00 01 00 01 01 00 00 00 01 01 00 00 00  .........
005877DF  01 01 01 01 00 00 01 00 00 01 00 00 01 01 00 01  .......
005877EF  01 01 00 01 00 01 00 00 00 00 01 01 01 01 01 01  ......
005877FF  00 00 00 00 01 01 01 00 00 00 01 01 00 01 01 00  .........
0058780F  01 00 00 01 00 01 01 00 01 01 00 00 00 00 00 01  .........
0058781F  00 00 01 01 01 00 00 01 01 00 00 01 01 01 00 00  ........
0058782F  00 01 01 00 01 01 00 00 01 01 01 00 00 01 00 01  .......
0058783F  00 00 01 00 01 00 00 01 00 00 01 01 01 01 01 00  ........
0058784F  01 01 00 00 00 01 01 00 01 01 00 00 00 00 00 01  .........
0058785F  00 00 01 01 01 01 00 00 01 00 01 01 00 01 01 00  .......
0058786F  00 01 00 00 01 01 00 01 00 00 01 00 01 00 01 00  .........
0058787F  01 01 01 00 00 01 01 00 01 00 00 01 00 01 00 00  ........
0058788F  01 01 00 00 01 01 00 01 01 00 01 00 01 00 01 00  .......
0058789F  00 01 00 00 01 00 00 01 00 00 01 01 01 01 01 01  .......
005878AF  00 01 00 00 00 01 01 00 00 00 01 01 00 01 00 01  .........
005878BF  01 00 01 00 00 00 00 00 01 01 00 01 00 00 01 01  .........
005878CF  01 01 00 00 01 00 01 00 00 00 01 01 01 01 00 01  .......
005878DF  00 01 01 00 00 00 00 01 01 00 01 01 00 01 01 00  ........
005878EF  01 00 01 00 00 01 00 00 01 01 00 00 01 00 01 00  .........
005878FF  01 00 00 01 01 00 01 00 01 01 00 00 00 00 01 01  ........
0058790F  00 00 01 01 01 00 01 00 00 01 00 01 01 00 01 01  .......
0058791F  00 00 01 01 00 01 00 01 01 00 00 00 01 01 00 00  .........
0058792F  00 01 01 01 00 00 01 00 00 01 01 01 00 01 00 01  .......
0058793F  01 00 00 00 01 00 01 00 00 01 00 00 01 01 00 01  .........
0058794F  01 01 00 00 01 01 00 01 01 00 01 01 00 00 01 01  ......
0058795F  00 00 01 00 00 01 00 01 01 00 01 01 00 00 01 00  .........
0058796F  00 00 01 01 00 00 01 01 00 01 00 00 01 01 01 00  ........
0058797F  01 00 00 01 00 01 00 00 00 00 01 01 01 00 01 01  ........
0058798F  00 01 00 00 01 01 01 01 00 00 01 01 00 00 01 00  ........
0058799F  01 00 00 01 00 01 01 00 01 01 00 00 00 00 00 00  ..........
005879AF  01 01 01 01 00 00 01 00 01 00 00 00 01 01 00 01  .......
005879BF  00 01 01 00 01 0F 12 0C 19 02 06 04 01 10 07 16  ...


c[]
00589E1C  01 01 01 01 00 01 01 00 01 01 00 01 00 00 00 01  ......//////1
00589E2C  00 00 01 00 00 01 01 00 00 00 01 01 00 00 00 00  ...........
00589E3C  00 00 01 00 00 01 00 00 01 00 01 01 01 01 01 00  ........
00589E4C  01 01 00 00 00 01 01 00 01 00 00 01 01 01 01 01  ......////////2
00589E5C  00 01 01 00 00 00 01 01 01 00 00 00 00 00 01 00  ..........
00589E6C  00 01 01 01 00 01 00 01 01 00 00 00 00 01 00 01  ........
00589E7C  01 01 01 00 01 00 01 01 01 01 01 01 00 00 01 00  ...../////////4
00589E8C  00 01 00 01 00 00 01 01 00 00 01 00 01 00 01 00  .........
00589E9C  00 00 01 00 00 00 01 01 01 00 01 00 00 00 00 01  ..........
00589EAC  00 00 01 00 01 01 00 01 01 01 00 01 00 01 01 01  ....../////////5
00589EBC  01 01 00 00 01 00 01 00 01 01 01 01 00 00 01 00  .......
00589ECC  00 01 00 00 01 00 00 01 00 00 00 00 00 00 01 01  .........../
00589EDC  00 01 01 01 00 00 01 00 00 01 00 01 00 00 00 01  .........///////6
00589EEC  01 01 00 01 01 00 01 01 00 01 00 00 00 01 01 00  .......
00589EFC  00 00 00 00 00 00 01 01 00 00 00 01 01 00 01 00  ...........
00589F0C  00 00 01 01 01 01 00 01 01 01 00 00 01 00 00 01  .......///////7
00589F1C  00 01 00 01 00 00 00 01 01 01 00 01 00 01 00 01  ........
00589F2C  00 00 01 01 00 00 00 01 00 01 00 00 01 00 00 00  ...........
00589F3C  00 00 00 00 00 01 01 01 00 01 01 00 01 00 00 01  .........////////8
00589F4C  01 00 00 01 01 01 01 01 00 01 01 00 00 00 00 00  ........
00589F5C  01 00 00 01 00 00 01 00 00 01 01 00 01 00 00 00  .........
00589F6C  00 00 01 01 01 01 01 01 00 00 01 00 00 01 00 01  .......////////9
00589F7C  01 00 00 01 00 01 00 01 00 01 00 01 00 00 00 00  .........
00589F8C  01 00 01 01 01 01 00 00 00 00 01 00 01 01 01 00  .......
00589F9C  00 01 00 01 01 00 01 01 00 01 00 01 01 01 00 01  .....///////////10
00589FAC  00 00 00 00 01 01 00 01 00 00 00 00 01 00 00 00  ............/
00589FBC  01 01 00 01 00 01 00 01 00 00 00 00 01 01 00 01  ........
00589FCC  00 01 00 00 01 00 00 01 01 00 01 00 01 00 00 01  .........///////11
00589FDC  01 01 01 00 01 00 00 01 01 00 00 00 01 00 01 00  ........
00589FEC  00 01 01 01 00 01 00 00 01 00 01 00 00 00 00 00  ..........
00589FFC  01 00 00 01 00 00 00 01 01 01 01 00 01 01 00 00  ........////////12
0058A00C  01 00 01 00 01 01 01 01 01 01 01 00 01 00 00 00  ......
0058A01C  00 01 00 00 01 00 01 01 00 00 01 00 00 00 00 01  ..........///////13
0058A02C  01 01 01 01 00 00 00 01 00 00 01 00 01 01 01 01  ......
0058A03C  01 00 00 00 00 00 01 00 01 00 00 01 00 00 01 00  ...........
0058A04C  00 01 00 00 01 00 01 00 00 00 00 01 01 00 01 00  ..........///////14
0058A05C  00 01 01 01 00 00 00 00 01 00 01 01 01 01 01 00  .......
0058A06C  01 00 01 00 00 01 00 01 01 01 00 01 00 01 00 01  .......
0058A07C  00 00 00 01 00 00 01 01 00 00 00 01 00 00 00 00  ............///////15
0058A08C  01 01 00 01 00 00 00 01 01 00 01 01 00 01 00 00  ........
0058A09C  00 01 00 01 00 01 01 00 01 00 00 01 00 00 00 01  .........
0058A0AC  00 00 01 00 00 00 01 00 00 01 01 00 01 00 00 00  ...........////////16
0058A0BC  00 01 01 00 00 01 00 00 01 01 00 00 00 01 01 00  .........
0058A0CC  01 01 01 01 00 01 01 00 00 01 01 01 00 00 00 00  .......
0058A0DC  01 00 01 01 01 00 01 00 00 00 00 00 00 01 00 00  ..........
0058A0EC  01 01 01 00 00 01 00 00 01 01 01 01 00 01 01 01  .....
0058A0FC  00 00 01 01 00 00 00 00 00 00 00 01 01 00 01 00  ...........
0058A10C  01 00 00 00 00 00 00 00 01 00 00 00 01 01 00 01  ...........
0058A11C  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0058A12C  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0058A13C  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0058A14C  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0058A15C  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0058A16C  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0058A17C  00 00 00 01 01 01 01 00 00 01 01 01 00 01 01 01  ......
0058A18C  01 01 01 00 01 00 00 00 01 00 00 00 00 01 00 01  .........
0058A19C  00 01 01 01 01 01 00 00 00 00 01 00 00 00 01 00  .........
经过分析之后.算法就是这样的
依次把输入字符的前8位拿出来
从第8位开始把字符ASCLL的第2位为1 $01放入di   为0$00放入di 中  第1位为1  $01放入SI  为 0  $00放入SI中

依次把输入字符的前8位拿出来
从第8位开始把字符ASCLL的第4位为1 $01放入di   为0$00放入di 中  第3位为1  $01放入SI  为 0  $00放入SI中

依次把输入字符的前8位拿出来
从第8位开始把字符ASCLL的第6位为1 $01放入di   为0$00放入di 中  第5位为1  $01放入SI  为 0  $00放入SI中

依次把输入字符的前8位拿出来
从第8位开始把字符ASCLL的与1的结果放入DI中    第7位为1 $01放入si  为0$00放入si

用b[] c[]中的值生成 e[]
si->di
e[]->si
这样16次

用di si  生成序列号字节
然后就是做注册机了
//源码如下
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls,Unit2;

type
    TForm1 = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    Label3: TLabel;
    Panel5: TPanel;
    Panel6: TPanel;
    Panel7: TPanel;
    Panel8: TPanel;
    Panel9: TPanel;
    Edit1: TEdit;
    Edit2: TEdit;
    procedure Panel7Click(Sender: TObject);
    procedure Panel6Click(Sender: TObject);
    procedure Panel5Click(Sender: TObject);



  private
    { Private declarations }
    procedure caculate(str:string;var  resl:string);

  public
    { Public declarations }
    
  end;

var
   Form1: TForm1;
   Form2: TForm2;

const
b: array[0..2079] of byte =
(
$00, $00, $00, $02, $00, $00, $00, $04, $00, $00, $00, $08, $00, $00, $00, $10,
$00, $00, $00, $20, $00, $01, $00, $01, $00, $00, $01, $01, $01, $00, $01, $00,
$01, $00, $01, $00, $00, $00, $01, $00, $00, $01, $00, $01, $00, $01, $00, $01,
$01, $01, $00, $00, $01, $00, $00, $01, $01, $01, $00, $00, $01, $01, $01, $01,
$00, $00, $01, $00, $00, $01, $01, $01, $00, $00, $01, $00, $00, $00, $01, $00,
$01, $01, $00, $00, $01, $01, $00, $01, $01, $00, $01, $00, $00, $01, $00, $00,
$01, $01, $00, $00, $01, $00, $01, $00, $00, $01, $00, $01, $01, $01, $00, $00,
$01, $00, $01, $01, $00, $00, $01, $00, $01, $01, $00, $01, $00, $00, $01, $01,
$00, $01, $00, $00, $01, $01, $01, $01, $00, $00, $01, $00, $00, $01, $00, $00,
$01, $00, $00, $01, $01, $01, $00, $01, $01, $00, $00, $01, $00, $00, $01, $01,
$00, $01, $00, $00, $01, $01, $00, $00, $01, $00, $00, $00, $01, $00, $01, $00,
$01, $01, $01, $01, $00, $01, $00, $00, $01, $01, $01, $00, $00, $01, $00, $00,
$01, $00, $01, $01, $00, $00, $01, $01, $00, $00, $01, $01, $00, $00, $01, $01,
$00, $01, $00, $00, $01, $00, $01, $01, $00, $00, $00, $01, $01, $00, $00, $01,
$00, $01, $01, $00, $01, $01, $01, $01, $00, $00, $01, $00, $00, $00, $00, $00,
$01, $00, $01, $01, $01, $01, $00, $01, $00, $01, $01, $00, $01, $01, $00, $00,
$01, $00, $00, $01, $00, $00, $01, $00, $00, $01, $00, $01, $01, $01, $00, $00,
$01, $01, $00, $00, $01, $00, $01, $00, $00, $00, $01, $01, $00, $01, $00, $00,
$01, $01, $00, $01, $01, $01, $01, $00, $01, $00, $00, $01, $00, $00, $00, $01,
$01, $00, $01, $01, $00, $00, $00, $00, $01, $01, $01, $00, $01, $01, $01, $01,
$00, $00, $00, $00, $01, $01, $01, $01, $00, $00, $01, $00, $01, $00, $01, $00,
$01, $01, $00, $00, $00, $01, $00, $01, $01, $01, $00, $00, $01, $00, $01, $00,
$00, $01, $00, $00, $01, $01, $01, $00, $00, $00, $01, $01, $00, $00, $00, $01,
$01, $00, $01, $00, $01, $01, $01, $01, $00, $00, $01, $01, $00, $00, $00, $00,
$01, $00, $01, $01, $00, $00, $00, $00, $01, $01, $00, $01, $01, $01, $01, $00,
$00, $00, $00, $01, $01, $00, $01, $00, $01, $01, $00, $01, $01, $00, $01, $01,
$00, $00, $01, $00, $00, $01, $00, $01, $00, $00, $01, $00, $01, $01, $00, $00,
$01, $00, $01, $01, $00, $00, $00, $01, $01, $01, $00, $00, $01, $01, $01, $00,
$01, $00, $00, $01, $00, $00, $01, $01, $01, $00, $00, $01, $00, $01, $00, $00,
$01, $01, $00, $00, $01, $01, $00, $01, $00, $00, $01, $01, $00, $01, $01, $00,
$01, $00, $00, $01, $00, $00, $01, $01, $01, $01, $00, $00, $00, $01, $00, $00,
$01, $00, $01, $01, $00, $00, $01, $00, $00, $01, $01, $01, $00, $00, $00, $01,
$01, $01, $00, $00, $01, $00, $00, $01, $00, $00, $01, $01, $01, $01, $01, $01,
$00, $00, $00, $00, $01, $01, $01, $01, $00, $00, $01, $00, $00, $00, $00, $01,
$01, $01, $00, $00, $01, $00, $01, $01, $01, $01, $00, $01, $00, $00, $01, $01,
$00, $00, $01, $00, $00, $01, $00, $01, $00, $01, $01, $00, $00, $01, $01, $00,
$01, $00, $00, $01, $00, $01, $01, $00, $00, $01, $00, $00, $01, $01, $00, $00,
$01, $00, $00, $01, $01, $01, $00, $00, $01, $01, $00, $00, $01, $00, $01, $00,
$01, $01, $00, $01, $00, $00, $01, $01, $01, $01, $00, $00, $01, $01, $00, $00,
$00, $01, $00, $00, $01, $00, $01, $01, $00, $00, $01, $01, $00, $01, $00, $01,
$01, $00, $00, $00, $01, $01, $00, $00, $00, $00, $01, $01, $00, $00, $01, $01,
$01, $00, $01, $01, $00, $00, $00, $00, $01, $01, $00, $01, $01, $00, $01, $01,
$01, $00, $01, $00, $00, $01, $01, $00, $00, $00, $01, $01, $00, $00, $00, $01,
$01, $01, $00, $01, $00, $01, $01, $01, $00, $00, $01, $00, $00, $00, $00, $00,
$01, $01, $00, $01, $01, $00, $00, $01, $00, $01, $00, $00, $01, $01, $01, $01,
$00, $00, $01, $00, $01, $01, $01, $01, $00, $00, $01, $00, $00, $00, $00, $00,
$01, $00, $01, $01, $01, $01, $00, $00, $01, $01, $01, $00, $00, $01, $01, $00,
$01, $00, $00, $01, $00, $00, $01, $00, $00, $01, $00, $01, $01, $01, $00, $00,
$01, $01, $00, $00, $01, $00, $01, $00, $01, $00, $00, $01, $00, $00, $01, $01,
$00, $01, $01, $00, $01, $00, $01, $01, $00, $01, $00, $00, $01, $00, $01, $00,
$01, $01, $00, $01, $00, $01, $00, $00, $01, $01, $01, $01, $00, $01, $00, $01,
$00, $00, $00, $00, $01, $01, $00, $00, $00, $00, $01, $01, $00, $01, $00, $01,
$01, $01, $00, $00, $01, $00, $00, $01, $01, $00, $01, $00, $01, $01, $01, $00,
$00, $00, $01, $01, $00, $01, $00, $00, $01, $00, $00, $01, $00, $00, $01, $00,
$01, $01, $01, $01, $00, $00, $01, $01, $00, $01, $01, $00, $01, $01, $00, $01,
$01, $00, $00, $00, $00, $00, $01, $01, $01, $00, $00, $01, $00, $01, $00, $01,
$00, $00, $01, $00, $01, $01, $00, $00, $01, $00, $01, $01, $00, $00, $01, $00,
$01, $01, $00, $00, $01, $01, $00, $00, $01, $01, $00, $00, $01, $00, $01, $00,
$01, $01, $00, $01, $00, $01, $00, $00, $01, $01, $00, $00, $00, $01, $00, $01,
$01, $00, $01, $00, $01, $00, $01, $00, $01, $01, $00, $01, $01, $00, $01, $01,
$00, $00, $01, $00, $00, $01, $00, $01, $00, $00, $01, $00, $01, $00, $01, $00,
$01, $01, $00, $00, $01, $01, $00, $00, $01, $01, $01, $00, $00, $00, $00, $00,
$01, $01, $00, $01, $01, $00, $01, $01, $00, $00, $00, $01, $01, $01, $01, $01,
$00, $00, $01, $00, $00, $01, $00, $01, $00, $00, $01, $01, $00, $00, $01, $00,
$01, $01, $00, $01, $00, $00, $00, $01, $01, $01, $00, $00, $01, $01, $01, $00,
$00, $00, $01, $01, $00, $01, $00, $00, $00, $01, $01, $01, $00, $01, $01, $01,
$00, $00, $00, $00, $01, $00, $01, $01, $00, $01, $01, $00, $00, $01, $01, $00,
$01, $00, $00, $01, $00, $00, $00, $01, $00, $00, $01, $01, $01, $01, $00, $00,
$01, $01, $01, $00, $00, $01, $00, $00, $01, $00, $00, $00, $01, $00, $01, $01,
$01, $01, $00, $01, $00, $01, $00, $00, $01, $01, $01, $01, $00, $00, $01, $01,
$00, $00, $00, $00, $01, $01, $00, $00, $01, $01, $01, $00, $01, $00, $00, $00,
$01, $01, $00, $01, $00, $00, $01, $01, $01, $01, $00, $00, $00, $00, $00, $00,
$01, $00, $01, $01, $01, $00, $00, $01, $00, $01, $01, $00, $01, $01, $01, $01,
$00, $00, $00, $01, $00, $01, $00, $00, $01, $01, $01, $01, $00, $00, $00, $00,
$01, $01, $00, $01, $00, $00, $01, $00, $00, $01, $00, $01, $01, $01, $00, $00,
$01, $00, $01, $01, $00, $00, $01, $00, $00, $00, $01, $01, $00, $01, $00, $01,
$00, $00, $01, $01, $01, $00, $01, $00, $00, $01, $00, $00, $01, $00, $01, $01,
$01, $01, $00, $01, $00, $01, $00, $01, $01, $00, $01, $00, $01, $00, $01, $00,
$00, $01, $00, $00, $01, $00, $00, $01, $00, $01, $01, $00, $01, $00, $01, $01,
$00, $00, $01, $01, $00, $01, $01, $00, $00, $00, $01, $01, $00, $01, $00, $01,
$01, $00, $01, $00, $00, $01, $01, $00, $01, $01, $00, $00, $00, $00, $00, $00,
$01, $00, $01, $01, $01, $01, $00, $00, $00, $01, $01, $01, $01, $00, $00, $01,
$01, $00, $00, $01, $00, $01, $01, $01, $00, $00, $01, $00, $00, $00, $00, $01,
$01, $01, $00, $00, $01, $00, $01, $00, $01, $01, $00, $01, $00, $01, $00, $00,
$00, $01, $01, $00, $01, $01, $00, $00, $01, $00, $01, $01, $00, $01, $01, $00,
$00, $01, $00, $00, $01, $00, $00, $01, $01, $00, $01, $01, $00, $00, $00, $01,
$00, $01, $01, $00, $01, $01, $01, $00, $01, $01, $00, $00, $00, $01, $00, $00,
$01, $00, $01, $01, $00, $00, $01, $01, $00, $01, $00, $00, $01, $01, $00, $00,
$01, $00, $00, $01, $01, $00, $01, $01, $00, $00, $00, $01, $01, $01, $01, $00,
$01, $01, $00, $00, $00, $00, $01, $01, $01, $01, $00, $00, $00, $01, $00, $00,
$01, $00, $01, $01, $00, $00, $00, $01, $01, $00, $00, $00, $01, $01, $01, $00,
$00, $01, $01, $00, $01, $00, $00, $01, $00, $00, $01, $01, $01, $01, $01, $01,
$00, $00, $00, $00, $01, $01, $01, $00, $00, $00, $00, $01, $01, $00, $00, $00,
$01, $01, $01, $01, $00, $00, $01, $00, $00, $01, $01, $01, $00, $01, $00, $01,
$01, $00, $00, $00, $01, $00, $01, $00, $00, $01, $01, $01, $00, $00, $00, $01,
$01, $00, $01, $00, $01, $01, $01, $00, $00, $00, $00, $01, $01, $00, $01, $01,
$00, $01, $01, $00, $00, $01, $00, $01, $01, $00, $01, $00, $00, $01, $00, $00,
$00, $01, $00, $01, $01, $00, $00, $01, $01, $00, $01, $01, $00, $01, $00, $00,
$00, $01, $01, $00, $01, $00, $01, $01, $00, $00, $00, $01, $01, $00, $00, $00,
$01, $01, $01, $01, $00, $00, $01, $00, $00, $01, $00, $00, $01, $01, $00, $01,
$01, $01, $00, $01, $00, $01, $00, $00, $00, $00, $01, $01, $01, $01, $01, $01,
$00, $00, $00, $00, $01, $01, $01, $00, $00, $00, $01, $01, $00, $01, $01, $00,
$01, $00, $00, $01, $00, $01, $01, $00, $01, $01, $00, $00, $00, $00, $00, $01,
$00, $00, $01, $01, $01, $00, $00, $01, $01, $00, $00, $01, $01, $01, $00, $00,
$00, $01, $01, $00, $01, $01, $00, $00, $01, $01, $01, $00, $00, $01, $00, $01,
$00, $00, $01, $00, $01, $00, $00, $01, $00, $00, $01, $01, $01, $01, $01, $00,
$01, $01, $00, $00, $00, $01, $01, $00, $01, $01, $00, $00, $00, $00, $00, $01,
$00, $00, $01, $01, $01, $01, $00, $00, $01, $00, $01, $01, $00, $01, $01, $00,
$00, $01, $00, $00, $01, $01, $00, $01, $00, $00, $01, $00, $01, $00, $01, $00,
$01, $01, $01, $00, $00, $01, $01, $00, $01, $00, $00, $01, $00, $01, $00, $00,
$01, $01, $00, $00, $01, $01, $00, $01, $01, $00, $01, $00, $01, $00, $01, $00,
$00, $01, $00, $00, $01, $00, $00, $01, $00, $00, $01, $01, $01, $01, $01, $01,
$00, $01, $00, $00, $00, $01, $01, $00, $00, $00, $01, $01, $00, $01, $00, $01,
$01, $00, $01, $00, $00, $00, $00, $00, $01, $01, $00, $01, $00, $00, $01, $01,
$01, $01, $00, $00, $01, $00, $01, $00, $00, $00, $01, $01, $01, $01, $00, $01,
$00, $01, $01, $00, $00, $00, $00, $01, $01, $00, $01, $01, $00, $01, $01, $00,
$01, $00, $01, $00, $00, $01, $00, $00, $01, $01, $00, $00, $01, $00, $01, $00,
$01, $00, $00, $01, $01, $00, $01, $00, $01, $01, $00, $00, $00, $00, $01, $01,
$00, $00, $01, $01, $01, $00, $01, $00, $00, $01, $00, $01, $01, $00, $01, $01,
$00, $00, $01, $01, $00, $01, $00, $01, $01, $00, $00, $00, $01, $01, $00, $00,
$00, $01, $01, $01, $00, $00, $01, $00, $00, $01, $01, $01, $00, $01, $00, $01,
$01, $00, $00, $00, $01, $00, $01, $00, $00, $01, $00, $00, $01, $01, $00, $01,
$01, $01, $00, $00, $01, $01, $00, $01, $01, $00, $01, $01, $00, $00, $01, $01,
$00, $00, $01, $00, $00, $01, $00, $01, $01, $00, $01, $01, $00, $00, $01, $00,
$00, $00, $01, $01, $00, $00, $01, $01, $00, $01, $00, $00, $01, $01, $01, $00,
$01, $00, $00, $01, $00, $01, $00, $00, $00, $00, $01, $01, $01, $00, $01, $01,
$00, $01, $00, $00, $01, $01, $01, $01, $00, $00, $01, $01, $00, $00, $01, $00,
$01, $00, $00, $01, $00, $01, $01, $00, $01, $01, $00, $00, $00, $00, $00, $00,
$01, $01, $01, $01, $00, $00, $01, $00, $01, $00, $00, $00, $01, $01, $00, $01,
$00, $01, $01, $00, $01, $0F, $12, $0C, $19, $02, $06, $04, $01, $10, $07, $16
);


  const
d: array[0..911] of byte =
(
$01, $01, $01, $01, $00, $01, $01, $00, $01, $01, $00, $01, $00, $00, $00, $01,
$00, $00, $01, $00, $00, $01, $01, $00, $00, $00, $01, $01, $00, $00, $00, $00,
$00, $00, $01, $00, $00, $01, $00, $00, $01, $00, $01, $01, $01, $01, $01, $00,
$01, $01, $00, $00, $00, $01, $01, $00, $01, $00, $00, $01, $01, $01, $01, $01,
$00, $01, $01, $00, $00, $00, $01, $01, $01, $00, $00, $00, $00, $00, $01, $00,
$00, $01, $01, $01, $00, $01, $00, $01, $01, $00, $00, $00, $00, $01, $00, $01,
$01, $01, $01, $00, $01, $00, $01, $01, $01, $01, $01, $01, $00, $00, $01, $00,
$00, $01, $00, $01, $00, $00, $01, $01, $00, $00, $01, $00, $01, $00, $01, $00,
$00, $00, $01, $00, $00, $00, $01, $01, $01, $00, $01, $00, $00, $00, $00, $01,
$00, $00, $01, $00, $01, $01, $00, $01, $01, $01, $00, $01, $00, $01, $01, $01,
$01, $01, $00, $00, $01, $00, $01, $00, $01, $01, $01, $01, $00, $00, $01, $00,
$00, $01, $00, $00, $01, $00, $00, $01, $00, $00, $00, $00, $00, $00, $01, $01,
$00, $01, $01, $01, $00, $00, $01, $00, $00, $01, $00, $01, $00, $00, $00, $01,
$01, $01, $00, $01, $01, $00, $01, $01, $00, $01, $00, $00, $00, $01, $01, $00,
$00, $00, $00, $00, $00, $00, $01, $01, $00, $00, $00, $01, $01, $00, $01, $00,
$00, $00, $01, $01, $01, $01, $00, $01, $01, $01, $00, $00, $01, $00, $00, $01,
$00, $01, $00, $01, $00, $00, $00, $01, $01, $01, $00, $01, $00, $01, $00, $01,
$00, $00, $01, $01, $00, $00, $00, $01, $00, $01, $00, $00, $01, $00, $00, $00,
$00, $00, $00, $00, $00, $01, $01, $01, $00, $01, $01, $00, $01, $00, $00, $01,
$01, $00, $00, $01, $01, $01, $01, $01, $00, $01, $01, $00, $00, $00, $00, $00,
$01, $00, $00, $01, $00, $00, $01, $00, $00, $01, $01, $00, $01, $00, $00, $00,
$00, $00, $01, $01, $01, $01, $01, $01, $00, $00, $01, $00, $00, $01, $00, $01,
$01, $00, $00, $01, $00, $01, $00, $01, $00, $01, $00, $01, $00, $00, $00, $00,
$01, $00, $01, $01, $01, $01, $00, $00, $00, $00, $01, $00, $01, $01, $01, $00,
$00, $01, $00, $01, $01, $00, $01, $01, $00, $01, $00, $01, $01, $01, $00, $01,
$00, $00, $00, $00, $01, $01, $00, $01, $00, $00, $00, $00, $01, $00, $00, $00,
$01, $01, $00, $01, $00, $01, $00, $01, $00, $00, $00, $00, $01, $01, $00, $01,
$00, $01, $00, $00, $01, $00, $00, $01, $01, $00, $01, $00, $01, $00, $00, $01,
$01, $01, $01, $00, $01, $00, $00, $01, $01, $00, $00, $00, $01, $00, $01, $00,
$00, $01, $01, $01, $00, $01, $00, $00, $01, $00, $01, $00, $00, $00, $00, $00,
$01, $00, $00, $01, $00, $00, $00, $01, $01, $01, $01, $00, $01, $01, $00, $00,
$01, $00, $01, $00, $01, $01, $01, $01, $01, $01, $01, $00, $01, $00, $00, $00,
$00, $01, $00, $00, $01, $00, $01, $01, $00, $00, $01, $00, $00, $00, $00, $01,
$01, $01, $01, $01, $00, $00, $00, $01, $00, $00, $01, $00, $01, $01, $01, $01,
$01, $00, $00, $00, $00, $00, $01, $00, $01, $00, $00, $01, $00, $00, $01, $00,
$00, $01, $00, $00, $01, $00, $01, $00, $00, $00, $00, $01, $01, $00, $01, $00,
$00, $01, $01, $01, $00, $00, $00, $00, $01, $00, $01, $01, $01, $01, $01, $00,
$01, $00, $01, $00, $00, $01, $00, $01, $01, $01, $00, $01, $00, $01, $00, $01,
$00, $00, $00, $01, $00, $00, $01, $01, $00, $00, $00, $01, $00, $00, $00, $00,
$01, $01, $00, $01, $00, $00, $00, $01, $01, $00, $01, $01, $00, $01, $00, $00,
$00, $01, $00, $01, $00, $01, $01, $00, $01, $00, $00, $01, $00, $00, $00, $01,
$00, $00, $01, $00, $00, $00, $01, $00, $00, $01, $01, $00, $01, $00, $00, $00,
$00, $01, $01, $00, $00, $01, $00, $00, $01, $01, $00, $00, $00, $01, $01, $00,
$01, $01, $01, $01, $00, $01, $01, $00, $00, $01, $01, $01, $00, $00, $00, $00,
$01, $00, $01, $01, $01, $00, $01, $00, $00, $00, $00, $00, $00, $01, $00, $00,
$01, $01, $01, $00, $00, $01, $00, $00, $01, $01, $01, $01, $00, $01, $01, $01,
$00, $00, $01, $01, $00, $00, $00, $00, $00, $00, $00, $01, $01, $00, $01, $00,
$01, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $01, $01, $00, $01,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $01, $01, $01, $01, $00, $00, $01, $01, $01, $00, $01, $01, $01,
$01, $01, $01, $00, $01, $00, $00, $00, $01, $00, $00, $00, $00, $01, $00, $01,
$00, $01, $01, $01, $01, $01, $00, $00, $00, $00, $01, $00, $00, $00, $01, $00
);

  const
keyA: array[0..127]of byte =
(
$1F, $0 ,  $4 , $5,  $0,  $1 , $1 , $2,  $2,  $3 , $3 , $4 ,  $8,   $10,  $16, $1E ,
$3,  $6 ,  $8,  $B,  $4 , $7,  $5,  $8,  $6,  $9,  $7,  $A ,  $C,   $1B,  $1,  $11,
$7,  $C,   $C,  $11, $8,  $D , $9,  $E,  $A , $F,  $B,  $10,  $17,  $F,   $1D, $5,
$B,  $12,  $10, $17, $C,  $13, $D,  $14, $E,  $15, $F,  $16,  $19,  $13,  $9,  $0,
$F,  $18,  $14, $1D, $10, $19, $11, $1A, $12, $1B, $13, $1C,  $7,   $D,   $18, $2,
$13, $1E,  $18, $23, $14, $1F, $15, $20, $16, $21, $17, $22,  $3,   $1C,  $A,  $12,
$17, $24,  $1C, $29, $18, $25, $19, $26, $1A, $27, $1B, $28,  $1F,  $B,   $15, $6,
$1B, $2A,  $0,  $2F, $1C, $2B, $1D, $2C, $1E, $2D, $1F, $2E,  $4,   $1A,  $E,  $14
);

 const
keyB: array[0..7]of word =   ( $15,   $55 , $95  ,$D5, $115,  $155  , $195  , $1D5     );

const
Digits: array[0..15] of char =
('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F');
const ddi:array[0..31]of byte=
(
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $01, $01, $01, $01, $01,
$00, $00, $01, $01, $01, $00, $00, $00, $00, $00, $00, $01, $00, $01, $00, $01
) ;
const dsi:array[0..31]of byte=
(
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $01, $01, $01, $01, $01,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $01, $01, $00
);
implementation

{$R *.dfm}



procedure tform1.caculate(str:string;var resl:string);
var
i,j,k:integer;
di: array[0..31]of byte ;
si: array[0..31]of byte ;
e:array[0..31]of byte;
kc:array[0..15]of byte ;
c:array[0..47]of byte ;
a:byte;
name:string ;
result:string;
begin
Result := '';
name:=str;
j:=0;                  
i:=8;
while   i>0 do
begin
if ((ord(name[i])and $40 )= $40) then  di[j] :=$01 else   di[j]:=$00;
if ((ord(name[i])and $80 )= $80) then  si[j] :=$01 else   si[j]:=$00;
inc(j);
dec(i);
end;

i:=8;
while   i>0 do
begin
if ((ord(name[i])and $10 )= $10) then  di[j] :=$01 else   di[j]:=$00;
if ((ord(name[i])and $20 )= $20) then  si[j] :=$01 else   si[j]:=$00;
inc(j);
dec(i);
end;

i:=8;
while   i>0 do
begin
if ((ord(name[i])and $4 )= $4) then  di[j] :=$01 else   di[j]:=$00;
if ((ord(name[i])and $8 )= $8) then  si[j] :=$01 else   si[j]:=$00;
inc(j);
dec(i);
end;

                                                                
i:=8;
while   i>0 do                                       
begin
di[j] :=ord(name[i]) and  $01;
if ((ord(name[i])and $2)= $2) then  si[j] :=$01  else   si[j]:=$00;
inc(j);
dec(i);
end;

for i:=0 to 31 do      e[i]:=$00;
for k:=0 to 15 do
begin
for i:=0 to 47 do c[i]:=d[k*48+i]  ;

for i:=0 to 7 do
begin
for j:=0 to 15 do kc[j]:=keyA[i*16+j];
                                                                
a:=
(((si[kc[0]] xor c[kc[1]]) and $0FF)shl 5) or
(((si[kc[2]] xor c[kc[3]]) and $0FF)shl 4) or
(((si[kc[4]] xor c[kc[5]]) and $0FF)shl 3) or
(((si[kc[6]] xor c[kc[7]]) and $0FF)shl 2) or
(((si[kc[8]] xor c[kc[9]]) and $0FF)shl 1) or
(((si[kc[10]] xor c[kc[11]]) and $0FF)shl 0);
asm
//mov bl, byte ptr[b+$53] ;
end;

e[kc[12]]  :=b[a+keyB[i]+$000]  xor di[kc[12]] ;
e[kc[13]]  :=b[a+keyB[i]+$200]  xor di[kc[13]] ;
e[kc[14]]  :=b[a+keyB[i]+$400]  xor di[kc[14]] ;
e[kc[15]]  :=b[a+keyB[i]+$600]  xor di[kc[15]] ;
end;
for i:=0 to 31 do      di[i]:=si[i];
for i:=0 to 31 do      si[i]:=e[i];
end;


for i:=0 to 7 do
begin
a :=
di[7-i]shl  7  or
si[7-i]shl  6  or
di[15-i]shl 5  or
si[15-i]shl 4  or
di[23-i]shl 3  or
si[23-i]shl 2  or
di[31-i]shl 1  or
si[31-i]shl 0  ;

Result := Result + Digits[(ord(a)and $f0) shr 4] + Digits[ord(a) and $0f];
end;
resl:=result;
end;


procedure TForm1.Panel7Click(Sender: TObject);
begin
close;
end;

procedure TForm1.Panel6Click(Sender: TObject);
begin
close;
end;

procedure TForm1.Panel5Click(Sender: TObject);
var intext:string;
var  outtext:string;
begin
intext:=edit1.text;
if (length(intext)<4)  then
begin
Form2:=TForm2.Create(self);
Form2.Showmodal;           //showmessage('输入字符应大于4位!');
exit;
end;
caculate(intext,outtext);
edit2.text:=outtext;
end;
end.














时间仓促不周之处请包涵....有什么问题请指出...
395940818@qq.com