昨天下午刚从网游下来,挂个QQ,阿K哥今天很热情,主动和我说话。。。,真是前所未有@_@.下Q之前阿K哥说下面这个软件的算法很简单,叫我试试,我想想,阿K哥是不是想忽悠人,抱着如果我分析不出来就可以请教阿K哥的想法我就试了,结果才知道,这个软件的算法不但简单,而且熟悉,根本就是去年分析过了的~~^_^
WinAudio Recorder 2.2.0282算法分析
软件名称:WinAudio Recorder 2.2.0282
下载连接:http://www.onlinedown.net/soft/49250.htm
软件大小:652KB
软件语言:英文
软件类别:国外软件/共享版/音频工具
运行环境:Win9x/Me/NT/2000/XP/2003
0040ED00   .  83EC 0C       sub     esp, 0C
0040ED03   .  55            push    ebp
0040ED04   .  56            push    esi
0040ED05   .  57            push    edi
0040ED06   .  BF 01000000   mov     edi, 1
0040ED0B   .  57            push    edi
0040ED0C   .  8BF1          mov     esi, ecx
0040ED0E   .  E8 34A70100   call    00429447
0040ED13   .  8B46 70       mov     eax, dword ptr [esi+70]          ;  [ESI+70]指向用户名
0040ED16   .  8B68 F4       mov     ebp, dword ptr [eax-C]           ;  [EAX-C]是用户名长度
0040ED19   .  83FD 02       cmp     ebp, 2                           ;  要≥2哦
0040ED1C   .  7D 15         jge     short 0040ED33
0040ED1E   .  6A 00         push    0
0040ED20   .  6A 00         push    0
0040ED22   .  68 BCD04300   push    0043D0BC                         ;  please input correct user name!
0040ED27   .  E8 27090200   call    0042F653
0040ED2C   .  5F            pop     edi
0040ED2D   .  5E            pop     esi
0040ED2E   .  5D            pop     ebp
0040ED2F   .  83C4 0C       add     esp, 0C
0040ED32   .  C3            retn
0040ED33   >  8B4E 74       mov     ecx, dword ptr [esi+74]          ;  [ESI+74]指向注册码
0040ED36   .  8379 F4 08    cmp     dword ptr [ecx-C], 8             ;  注册码要≥8
0040ED3A   .  7D 15         jge     short 0040ED51
0040ED3C   .  6A 00         push    0
0040ED3E   .  6A 00         push    0
0040ED40   .  68 94D04300   push    0043D094                         ;  please input correct registration code!
0040ED45   .  E8 09090200   call    0042F653
0040ED4A   .  5F            pop     edi
0040ED4B   .  5E            pop     esi
0040ED4C   .  5D            pop     ebp
0040ED4D   .  83C4 0C       add     esp, 0C
0040ED50   .  C3            retn
0040ED51   >  8B46 70       mov     eax, dword ptr [esi+70]          ;  [ESI+70]指向用户名
0040ED54   .  8B48 F4       mov     ecx, dword ptr [eax-C]           ;  [EAX-C]是用户名的长度
0040ED57   .  85C9          test    ecx, ecx
0040ED59   .  7D 0A         jge     short 0040ED65
0040ED5B   .  68 57000780   push    80070057
0040ED60   .  E8 0B27FFFF   call    00401470
0040ED65   >  8A10          mov     dl, byte ptr [eax]               ;  用户名第1位到dl
0040ED67   .  8B46 70       mov     eax, dword ptr [esi+70]
0040ED6A   .  3978 F4       cmp     dword ptr [eax-C], edi
0040ED6D   .  7D 0A         jge     short 0040ED79
0040ED6F   .  68 57000780   push    80070057
0040ED74   .  E8 F726FFFF   call    00401470
0040ED79   >  8A40 01       mov     al, byte ptr [eax+1]             ;  用户名第2位到al
0040ED7C   .  884424 0E     mov     byte ptr [esp+E], al
0040ED80   .  8B46 70       mov     eax, dword ptr [esi+70]
0040ED83   .  8B48 F4       mov     ecx, dword ptr [eax-C]
0040ED86   .  85C9          test    ecx, ecx
0040ED88   .  7D 0A         jge     short 0040ED94
0040ED8A   .  68 57000780   push    80070057
0040ED8F   .  E8 DC26FFFF   call    00401470
0040ED94   >  8B4E 70       mov     ecx, dword ptr [esi+70]
0040ED97   .  53            push    ebx
0040ED98   .  8A18          mov     bl, byte ptr [eax]               ;  用户名第1位到bl
0040ED9A   .  3979 F4       cmp     dword ptr [ecx-C], edi
0040ED9D   .  7D 0A         jge     short 0040EDA9
0040ED9F   .  68 57000780   push    80070057
0040EDA4   .  E8 C726FFFF   call    00401470
0040EDA9   >  0FB6C2        movzx   eax, dl                          ;  dl--》EAX
0040EDAC   .  83C8 52       or      eax, 52                          ;  or 52
0040EDAF   .  99            cdq
0040EDB0   .  BF 0A000000   mov     edi, 0A
0040EDB5   .  F7FF          idiv    edi                              ;  idiv 0A
0040EDB7   .  0FB64424 12   movzx   eax, byte ptr [esp+12]           ;  用户名第2位到eax
0040EDBC   .  83C8 45       or      eax, 45                          ;  or 45
0040EDBF   .  885424 16     mov     byte ptr [esp+16], dl            ;  余数到[ESP+16]
0040EDC3   .  99            cdq
0040EDC4   .  F7FF          idiv    edi                              ;  IDIV 0A
0040EDC6   .  0FB6C3        movzx   eax, bl                          ;  BL--》EAX
0040EDC9   .  83C8 43       or      eax, 43                          ;  OR 43
0040EDCC   .  885424 12     mov     byte ptr [esp+12], dl            ;  余数到[ESP+12]
0040EDD0   .  99            cdq
0040EDD1   .  F7FF          idiv    edi                              ;  IDIV 0A
0040EDD3   .  0FB641 01     movzx   eax, byte ptr [ecx+1]            ;  用户名第2位到EAX
0040EDD7   .  83C8 4F       or      eax, 4F                          ;  or 4F
0040EDDA   .  8BCF          mov     ecx, edi
0040EDDC   .  885424 17     mov     byte ptr [esp+17], dl            ;  余数到[ESP+17]
0040EDE0   .  99            cdq
0040EDE1   .  F7F9          idiv    ecx                              ;  IDIV 0A
0040EDE3   .  33C0          xor     eax, eax                         ;  EAX=0
0040EDE5   .  33C9          xor     ecx, ecx                         ;  ECX=0
0040EDE7   .  85ED          test    ebp, ebp
0040EDE9   .  885424 18     mov     byte ptr [esp+18], dl            ;  余数到[ESP+18]
0040EDED   .  7E 20         jle     short 0040EE0F
0040EDEF   .  90            nop
0040EDF0   >  85C9          test    ecx, ecx
0040EDF2   .  0F8C D2000000 jl      0040EECA
0040EDF8   .  8B7E 70       mov     edi, dword ptr [esi+70]
0040EDFB   .  3B4F F4       cmp     ecx, dword ptr [edi-C]
0040EDFE   .  0F8F C6000000 jg      0040EECA
0040EE04   .  0FB6140F      movzx   edx, byte ptr [edi+ecx]          ;  用户名依次到EDX
0040EE08   .  03C2          add     eax, edx                         ;  累加到EAX
0040EE0A   .  41            inc     ecx
0040EE0B   .  3BCD          cmp     ecx, ebp
0040EE0D   .^ 7C E1         jl      short 0040EDF0
0040EE0F   >  8B4E 74       mov     ecx, dword ptr [esi+74]          ;  [ESI+74]=注册码
0040EE12   .  8B51 F4       mov     edx, dword ptr [ecx-C]           ;  [EAX-C]=注册码长度
0040EE15   .  85D2          test    edx, edx
0040EE17   .  7D 0A         jge     short 0040EE23
0040EE19   .  68 57000780   push    80070057
0040EE1E   .  E8 4D26FFFF   call    00401470
0040EE23   >  8A11          mov     dl, byte ptr [ecx]               ;  注册码第1位到DL
0040EE25   .  8B4E 74       mov     ecx, dword ptr [esi+74]
0040EE28   .  8379 F4 01    cmp     dword ptr [ecx-C], 1
0040EE2C   .  885424 19     mov     byte ptr [esp+19], dl            ;  dl——》[ESP+19]
0040EE30   .  7D 0A         jge     short 0040EE3C
0040EE32   .  68 57000780   push    80070057
0040EE37   .  E8 3426FFFF   call    00401470
0040EE3C   >  8A49 01       mov     cl, byte ptr [ecx+1]
0040EE3F   .  8B7E 74       mov     edi, dword ptr [esi+74]
0040EE42   .  884C24 13     mov     byte ptr [esp+13], cl            ;  注册码第2位到[ESP+13]
0040EE46   .  837F F4 02    cmp     dword ptr [edi-C], 2
0040EE4A   .  7D 0A         jge     short 0040EE56
0040EE4C   .  68 57000780   push    80070057
0040EE51   .  E8 1A26FFFF   call    00401470
0040EE56   >  8A4F 02       mov     cl, byte ptr [edi+2]
0040EE59   .  8B7E 74       mov     edi, dword ptr [esi+74]
0040EE5C   .  884C24 14     mov     byte ptr [esp+14], cl            ;  注册码第3位到[ESP+14]
0040EE60   .  837F F4 03    cmp     dword ptr [edi-C], 3
0040EE64   .  7D 0A         jge     short 0040EE70
0040EE66   .  68 57000780   push    80070057
0040EE6B   .  E8 0026FFFF   call    00401470
0040EE70   >  8A4F 03       mov     cl, byte ptr [edi+3]
0040EE73   .  8B7E 74       mov     edi, dword ptr [esi+74]
0040EE76   .  884C24 15     mov     byte ptr [esp+15], cl            ;  注册码第4位到[ESP+15]
0040EE7A   .  837F F4 04    cmp     dword ptr [edi-C], 4
0040EE7E   .  7D 0A         jge     short 0040EE8A
0040EE80   .  68 57000780   push    80070057
0040EE85   .  E8 E625FFFF   call    00401470
0040EE8A   >  8A4F 04       mov     cl, byte ptr [edi+4]
0040EE8D   .  8B7E 74       mov     edi, dword ptr [esi+74]
0040EE90   .  837F F4 05    cmp     dword ptr [edi-C], 5
0040EE94   .  7D 0A         jge     short 0040EEA0
0040EE96   .  68 57000780   push    80070057
0040EE9B   .  E8 D025FFFF   call    00401470
0040EEA0   >  8A5F 05       mov     bl, byte ptr [edi+5]             ;  注册码第6位到bl
0040EEA3   .  8B7E 74       mov     edi, dword ptr [esi+74]
0040EEA6   .  885C24 1A     mov     byte ptr [esp+1A], bl            ;  bl--》[ESP+1A]
0040EEAA   .  837F F4 06    cmp     dword ptr [edi-C], 6
0040EEAE   .  7D 0A         jge     short 0040EEBA
0040EEB0      68 57000780   push    80070057
0040EEB5      E8 B625FFFF   call    00401470
0040EEBA      8A5F 06       mov     bl, byte ptr [edi+6]
0040EEBD      8B7E 74       mov     edi, dword ptr [esi+74]
0040EEC0      885C24 1B     mov     byte ptr [esp+1B], bl            ;  注册码第7位到[ESP+1B]
0040EEC4      837F F4 07    cmp     dword ptr [edi-C], 7
0040EEC8      7D 0A         jge     short 0040EED4
0040EECA      68 57000780   push    80070057
0040EECF      E8 9C25FFFF   call    00401470
0040EED4      8A5F 07       mov     bl, byte ptr [edi+7]
0040EED7      0FB67C24 16   movzx   edi, byte ptr [esp+16]           ;  注册码第8位到BL
0040EEDC      0FB6D2        movzx   edx, dl                          ;  dl保存的注册码第1位
0040EEDF      83EA 30       sub     edx, 30                          ;  作用是转化为数字
0040EEE2      3BFA          cmp     edi, edx                         ;  和第一个余数比较
0040EEE4      75 48         jnz     short 0040EF2E
0040EEE6      0FB65424 13   movzx   edx, byte ptr [esp+13]
0040EEEB      0FB67C24 12   movzx   edi, byte ptr [esp+12]
0040EEF0      83EA 30       sub     edx, 30
0040EEF3      3BFA          cmp     edi, edx                         ;  注册码第2位和第2个余数比较
0040EEF5      75 37         jnz     short 0040EF2E
0040EEF7      0FB65424 14   movzx   edx, byte ptr [esp+14]
0040EEFC      0FB67C24 17   movzx   edi, byte ptr [esp+17]
0040EF01      83EA 30       sub     edx, 30
0040EF04      3BFA          cmp     edi, edx                         ;  注册码第3位和第3个余数比较
0040EF06      75 26         jnz     short 0040EF2E
0040EF08      0FB65424 15   movzx   edx, byte ptr [esp+15]
0040EF0D      0FB67C24 18   movzx   edi, byte ptr [esp+18]
0040EF12      83EA 30       sub     edx, 30
0040EF15      3BFA          cmp     edi, edx                         ;  注册码第4位和第4个余数比较
0040EF17      75 15         jnz     short 0040EF2E
0040EF19   .  99            cdq
0040EF1A   .  BF 0A000000   mov     edi, 0A
0040EF1F   .  F7FF          idiv    edi                              ;  用户名的累加值idiv 0A
0040EF21   .  0FB6C2        movzx   eax, dl                          ;  余数到eax
0040EF24   .  0FB6D1        movzx   edx, cl                          ;  cl=注册码第5位
0040EF27   .  83EA 30       sub     edx, 30
0040EF2A   .  3BC2          cmp     eax, edx                         ;  比较
0040EF2C   .  74 38         je      short 0040EF66
====================================================================================================
总结:
用户名≥2
注册码≥8

注册码第1位=(用户名第1位的ASC码 or 52)  mod 0A
注册码第2位=(用户名第2位的ASC码 or 45)  mod 0A
注册码第3位=(用户名第1位的ASC码 or 43)  mod 0A
注册码第4位=(用户名第2位的ASC码 or 4f)  mod 0A
注册码第5位=用户名的累加值  mod 0A
后面三为不进行比较!
====================================================================================================
0040EF2E   >  807C24 19 38  cmp     byte ptr [esp+19], 38            ;  注册码第1位和8比
0040EF33      0F85 83000000 jnz     0040EFBC
0040EF39   .  807C24 13 33  cmp     byte ptr [esp+13], 33            ;  第2位和3比
0040EF3E      75 7C         jnz     short 0040EFBC
0040EF40   .  8A5424 14     mov     dl, byte ptr [esp+14]
0040EF44   .  B0 36         mov     al, 36
0040EF46   .  3AD0          cmp     dl, al                           ;  第3位和6比
0040EF48      75 72         jnz     short 0040EFBC
0040EF4A   .  384424 15     cmp     byte ptr [esp+15], al            ;  第4位和6比
0040EF4E      75 6C         jnz     short 0040EFBC
0040EF50   .  3AC8          cmp     cl, al                           ;  第5位和6比
0040EF52      75 68         jnz     short 0040EFBC
0040EF54   .  807C24 1A 31  cmp     byte ptr [esp+1A], 31            ;  第6位和1比
0040EF59      75 61         jnz     short 0040EFBC
0040EF5B   .  807C24 1B 34  cmp     byte ptr [esp+1B], 34            ;  第7位和4比
0040EF60      75 5A         jnz     short 0040EFBC
0040EF62   .  3AD8          cmp     bl, al                           ;  第8位和6比
0040EF64   .  75 56         jnz     short 0040EFBC
#####################################################################################
万能注册码:83666146
#####################################################################################
0040EF66   >  6A 00         push    0
0040EF68   .  6A 00         push    0
0040EF6A   .  68 78D04300   push    0043D078                         ;  registration has succeeded!
0040EF6F   .  E8 DF060200   call    0042F653
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨

本来不想发的,既然发了就把另一个软件的算法也贴上来吧,也是去年分析过的,今年还是没有什么变化,当然是简单的,难的不会

软件介绍 Egg 1.51 Beta 1
软件大小:55KB
软件语言:英文
软件类别:国外软件/共享版/闹铃时钟
运行环境:Win9x/Me/NT/2000/XP/2003
超小型倒计时软件,界面小巧,设置方便,占用资源小,可自定义闹钟声。
下载:http://www.newhua.com/soft/54487.htm
00401A03  |.  8D85 A0FDFFFF lea     eax, dword ptr [ebp-260]
00401A09  |.  50            push    eax                              ; /Arg1
00401A0A  |.  E8 7D0C0000   call    0040268C                         ; \Egg.0040268C
00401A0F  |.  833D ACF04000>cmp     dword ptr [40F0AC], 0            [40F0AC]=0就提示注册失败
00401A16  |.  74 5F         je      short 00401A77                   ;关键跳!


0040268C  /$  55            push    ebp
0040268D  |.  8BEC          mov     ebp, esp
0040268F  |.  81C4 80FDFFFF add     esp, -280
00402695  |.  68 722D4100   push    00412D72
0040269A  |.  68 22C24000   push    0040C222                         ;  eggy
0040269F  |.  E8 DC880000   call    0040AF80
004026A4  |.  68 47DC4000   push    0040DC47                         ;  sinnercomputing
004026A9  |.  68 722D4100   push    00412D72
004026AE  |.  E8 9D880000   call    0040AF50
004026B3  |.  57            push    edi
004026B4  |.  53            push    ebx
004026B5  |.  BF 722D4100   mov     edi, 00412D72
004026BA  |.  33C0          xor     eax, eax
004026BC  |.  8945 DC       mov     dword ptr [ebp-24], eax
004026BF  |.  EB 0E         jmp     short 004026CF
004026C1  |>  FF45 DC       /inc     dword ptr [ebp-24]
004026C4  |.  66:8B07       |mov     ax, word ptr [edi]
004026C7  |.  66:83E8 40    |sub     ax, 40
004026CB  |.  66:8907       |mov     word ptr [edi], ax
004026CE  |.  47            |inc     edi
004026CF  |>  837D DC 0A     cmp     dword ptr [ebp-24], 0A
004026D3  |.^ 72 EC         \jb      short 004026C1
004026D5  |.  33C0          xor     eax, eax
004026D7  |.  66:8907       mov     word ptr [edi], ax
004026DA  |.  8B7D 08       mov     edi, dword ptr [ebp+8]           ;  [EBP+8]指向我们输入的注册码
004026DD  |.  33DB          xor     ebx, ebx                         ;  EBX=0
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
004026DF  |>  8B07          /mov     eax, dword ptr [edi]
004026E1  |.  8885 ACFEFFFF |mov     byte ptr [ebp-154], al
004026E7  |.  3C 39         |cmp     al, 39
004026E9  |.  77 04         |ja      short 004026EF
004026EB  |.  3C 30         |cmp     al, 30
004026ED  |.  73 0A         |jnb     short 004026F9
004026EF  |>  C705 ACF04000>|mov     dword ptr [40F0AC], 0           ;  注册码要是数字,要不[40F0AC]=0
004026F9  |>  88A5 ADFEFFFF |mov     byte ptr [ebp-153], ah
004026FF  |.  33C0          |xor     eax, eax
00402701  |.  8885 AEFEFFFF |mov     byte ptr [ebp-152], al
00402707  |.  8D85 ACFEFFFF |lea     eax, dword ptr [ebp-154]
0040270D  |.  50            |push    eax
0040270E  |.  E8 D5860000   |call    0040ADE8
00402713  |.  0BC0          |or      eax, eax                        ;  测试是否为空
00402715  |.  75 0B         |jnz     short 00402722
00402717  |.  C705 ACF04000>|mov     dword ptr [40F0AC], 0
00402721  |.  40            |inc     eax
00402722  |>  89449D E0     |mov     dword ptr [ebp+ebx*4-20], eax   ;  保存到[EBP+EBX*4-20]
00402726  |.  43            |inc     ebx                             ;  EBX+1
00402727  |.  83C7 02       |add     edi, 2                          ;  指向下两位
0040272A  |.  83FB 08       |cmp     ebx, 8                          ;  这里告诉我们注册码要16位
0040272D  |.^ 75 B0         \jnz     short 004026DF]
这个循环的作用就是将我们输入的16个数字分组,每2位一组
比如我输入的是1234567890787878
那么第一组:[EBP+0*4+20]=12
    第2组: [ebp+1*4-20]=34
    第3组:  [ebp+2*4-20]=34
依次类推。。。。。。。。。。。。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
0040272F  |.  33DB          xor     ebx, ebx                         ;  EBX=0
00402731  |.  43            inc     ebx                              ;  EBX=1
00402732  |.  8B449D E0     mov     eax, dword ptr [ebp+ebx*4-20]    ; EAX=第2组
00402736  |.  43            inc     ebx
00402737  |.  43            inc     ebx
00402738  |.  03449D E0     add     eax, dword ptr [ebp+ebx*4-20]    ;  加第4组
0040273C  |.  43            inc     ebx
0040273D  |.  43            inc     ebx
0040273E  |.  03449D E0     add     eax, dword ptr [ebp+ebx*4-20]    ;  加第6组
00402742  |.  43            inc     ebx
00402743  |.  43            inc     ebx
00402744  |.  03449D E0     add     eax, dword ptr [ebp+ebx*4-20]    ;  加第8组
00402748  |.  83F8 70       cmp     eax, 70                          ;  比较EAX=70否
0040274B  |.  74 0A         je      short 00402757
0040274D  |.  C705 ACF04000>mov     dword ptr [40F0AC], 0            ;  要等哦,不等[40F0AC]
00402757  |>  33DB          xor     ebx, ebx                         ;  EBX=0
00402759  |.  8B449D E0     mov     eax, dword ptr [ebp+ebx*4-20]    ;  第1组到EAX
0040275D  |.  83F8 3C       cmp     eax, 3C
00402760  |.  72 07         jb      short 00402769                   ;  不能小的哦
00402762  |.  3D 80000000   cmp     eax, 80
00402767  |.  76 0A         jbe     short 00402773
00402769      C705 ACF04000>mov     dword ptr [40F0AC], 0
00402773      833D ACF04000>cmp     dword ptr [40F0AC], 0
0040277A      0F84 52010000 je      004028D2
到这里我们知道
第2,4,6组三组数字相加=70h(112)
第1组数字要大于3Ch(60)
到这里我构造了以下数据,注册成功,收工!!!!
7050125012127878 

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
破文标题:超级简单的1st Security Agent算法分析
破文作者:小娃崽
下载地址:http://www.skycn.com/soft/17528.html
软件简介:  1st Screen Lock 可以帮助你锁定你的电脑,并对其它用户的所有操作进行监控。
004A94C8  /$  53            push    ebx
004A94C9  |.  56            push    esi
004A94CA  |.  57            push    edi
004A94CB  |.  BF 4C9D4D00   mov     edi, 004D9D4C
004A94D0  |.  33F6          xor     esi, esi                         ;  ESI=0
004A94D2  |.  33DB          xor     ebx, ebx                         ;  EBX=0
004A94D4  |.  8B07          mov     eax, [edi]                       ;  [EDI]假设=注册码
004A94D6  |.  E8 FDB5F5FF   call    00404AD8                         ;  估计是取注册码长度
004A94DB  |.  83F8 0E       cmp     eax, 0E                          ;  长度=0E(14)
004A94DE  |.  75 67         jnz     short 004A9547                   ;  不能跳,跳的话EBX=0--》EAX直接返回
004A94E0  |.  8B07          mov     eax, [edi]                       ;  注册码到EAX
004A94E2  |.  8038 31       cmp     byte ptr [eax], 31               ;  第一位是1吗
004A94E5  |.  0F94C0        sete    al                               ;  是的话AL=1
004A94E8  |.  83E0 7F       and     eax, 7F                          ;  与7F进行and运算
004A94EB  |.  03F0          add     esi, eax                         ;  ESI=ESI+EAX
004A94ED  |.  8B07          mov     eax, [edi]
004A94EF  |.  8078 02 32    cmp     byte ptr [eax+2], 32             ;  注册码第3为是2吗
004A94F3  |.  0F94C0        sete    al
004A94F6  |.  83E0 7F       and     eax, 7F
004A94F9  |.  03F0          add     esi, eax
004A94FB  |.  8B07          mov     eax, [edi]
004A94FD  |.  8078 03 31    cmp     byte ptr [eax+3], 31             ;  第四位1
004A9501  |.  0F94C0        sete    al
004A9504  |.  83E0 7F       and     eax, 7F
004A9507  |.  03F0          add     esi, eax
004A9509  |.  8B07          mov     eax, [edi]
004A950B  |.  8078 04 39    cmp     byte ptr [eax+4], 39             ;  第5位9
004A950F  |.  0F94C0        sete    al
004A9512  |.  83E0 7F       and     eax, 7F
004A9515  |.  03F0          add     esi, eax
004A9517  |.  8B07          mov     eax, [edi]
004A9519  |.  8078 07 30    cmp     byte ptr [eax+7], 30             ;  第8位0
004A951D  |.  0F94C0        sete    al
004A9520  |.  83E0 7F       and     eax, 7F
004A9523  |.  03F0          add     esi, eax
004A9525  |.  8B07          mov     eax, [edi]
004A9527  |.  8078 08 35    cmp     byte ptr [eax+8], 35             ;  第9位5
004A952B  |.  0F94C0        sete    al
004A952E  |.  83E0 7F       and     eax, 7F
004A9531  |.  03F0          add     esi, eax
004A9533  |.  8B07          mov     eax, [edi]
004A9535  |.  8078 0A 33    cmp     byte ptr [eax+A], 33             ;  11位3
004A9539  |.  0F94C0        sete    al
004A953C  |.  83E0 7F       and     eax, 7F
004A953F  |.  03F0          add     esi, eax
004A9541  |.  83FE 07       cmp     esi, 7
004A9544  |.  0F94C3        sete    bl
004A9547  |>  8BC3          mov     eax, ebx
004A9549  |.  5F            pop     edi
004A954A  |.  5E            pop     esi
004A954B  |.  5B            pop     ebx
004A954C  \.  C3            retn

结论:注册码长度14位
      1?219??05?3???                            ?表示任意的数字
      7(1 and 7F)=7---》 1and 7F=1              条件永远成立滴
所以我们的注册码形式就是:1?219??05?3???,验证了也是正确的
下面是从看雪精华4某位CCG老前辈处窃取来的超炫签名^_^,因为该前辈还没到工商局注册商标^@^
======================================================== 
          ,;~;, 
                /\_ 
              (  / 
              (()      //) 
              | \\  ,,;;'\ 
          __ _(  )i love li wei(================-------- 
        /'  ' '()/~' '.(, | 
      ,;(      )||    |  ~ 
    ,;' \    /-(.;,  )           小娃崽[DFCG]
          ) /      ) / 
        //        ||               
        )_\        )_\ 
==========================================================