化学品电子手册3.0破解分析
 

标题:化学品电子手册3.0破解分析
链接:http://www.unpack.cn/viewthread.php?tid=20502
贴者:noirlucifer
日期:2007-12-20 16:06


本人学习vb程序不久,还有许多问题,所以希望哪位大侠看了此文后能回答我几个问题,不甚感激!
问题1:最后比较注册码正确与否是在一个for循环中,只要满足一次就算注册成功,也就是有几组注册码
而这些注册码是有先前算出的16进制书中选3个连接而成的,我想知道怎么选的,这些16进制数的空间分布是怎么样的?
问题2:在用户名运算的那一段中.为什么会读到空字符?详见下问分析,还有就是用户名运算那段的含义不是特别清楚,能不能说下流程.
由于以上两个问题所以还没有办法写出注册机,因为水平有限,文章中的不足之处还请不吝指正,谢谢!下面开始我的分析:

首先运行程序,按帮助菜单下的注册按扭,出现注册对话框,填入用户名(大于6位),产品id(必需位10位数字),和注册码,按注册,无反应.vbdecompile反编译无响应(总是这样,哪位解释下为什么),然后用vbde反编译,找到注册过程的地址.然后od载入,前面找到的地址下断,F9运行.填入如下信息:

用户名:noirlucifer
产品id:1234567890
注册码:12345-67890-abcde

按注册按扭停在00450FA0

00450FA0   > \55            push    ebp
00450FA1   .  8BEC          mov     ebp, esp
00450FA3   .  83EC 0C       sub     esp, 0C
00450FA6   .  68 C6234000   push    ;  SE 处理程序安装
00450FAB   .  64:A1 0000000>mov     eax, dword ptr fs:[0]
00450FB1   .  50            push    eax
00450FB2   .  64:8925 00000>mov     dword ptr fs:[0], esp
00450FB9   .  81EC AC020000 sub     esp, 2AC
00450FBF   .  53            push    ebx
00450FC0   .  56            push    esi
00450FC1   .  57            push    edi
00450FC2   .  8965 F4       mov     dword ptr [ebp-C], esp
00450FC5   .  C745 F8 C8174>mov     dword ptr [ebp-8], 004017C8
00450FCC   .  8B75 08       mov     esi, dword ptr [ebp+8]
00450FCF   .  8BC6          mov     eax, esi

单步往下,跳过有些初始化代码直到,现在开始分析,代码有些长,需要点耐心..
0045120A   .  50            push    eax
0045120B   .  8D85 38FFFFFF lea     eax, dword ptr [ebp-C8]
00451211   .  50            push    eax
00451212   .  FF15 94104000 call    dword ptr [<&MSVBVM60.__vbaObjSe>;  MSVBVM60.__vbaObjSet
00451218   .  8BD8          mov     ebx, eax
0045121A   .  8D95 58FFFFFF lea     edx, dword ptr [ebp-A8]
00451220   .  52            push    edx
00451221   .  53            push    ebx
00451222   .  8B0B          mov     ecx, dword ptr [ebx]
00451224   .  FF91 A0000000 call    dword ptr [ecx+A0] //取用户名
0045122A   .  3BC7          cmp     eax, edi
0045122C   .  DBE2          fclex
0045122E   .  7D 12         jge     short 00451242
00451230   .  68 A0000000   push    0A0
00451235   .  68 40054100   push    00410540
0045123A   .  53            push    ebx
0045123B   .  50            push    eax
0045123C   .  FF15 6C104000 call    dword ptr [<&MSVBVM60.__vbaHresu>;  MSVBVM60.__vbaHresultCheckObj
00451242   >  8B06          mov     eax, dword ptr [esi]
00451244   .  56            push    esi
00451245   .  FF90 00030000 call    dword ptr [eax+300]
0045124B   .  8D8D 34FFFFFF lea     ecx, dword ptr [ebp-CC]
00451251   .  50            push    eax
00451252   .  51            push    ecx
00451253   .  FF15 94104000 call    dword ptr [<&MSVBVM60.__vbaObjSe>;  MSVBVM60.__vbaObjSet
00451259   .  8BD8          mov     ebx, eax
0045125B   .  8D85 54FFFFFF lea     eax, dword ptr [ebp-AC]
00451261   .  50            push    eax
00451262   .  53            push    ebx
00451263   .  8B13          mov     edx, dword ptr [ebx]
00451265   .  FF92 A0000000 call    dword ptr [edx+A0]               ;  MSVBVM60.6603BF8D //取product id
0045126B   .  3BC7          cmp     eax, edi
0045126D   .  DBE2          fclex
0045126F   .  7D 12         jge     short 00451283
00451271   .  68 A0000000   push    0A0
00451276   .  68 40054100   push    00410540
0045127B   .  53            push    ebx
0045127C   .  50            push    eax
0045127D   .  FF15 6C104000 call    dword ptr [<&MSVBVM60.__vbaHresu>;  MSVBVM60.__vbaHresultCheckObj
00451283   >  8B0E          mov     ecx, dword ptr [esi]
00451285   .  56            push    esi
00451286   .  FF91 FC020000 call    dword ptr [ecx+2FC]
0045128C   .  8D95 30FFFFFF lea     edx, dword ptr [ebp-D0]
00451292   .  50            push    eax
00451293   .  52            push    edx
00451294   .  FF15 94104000 call    dword ptr [<&MSVBVM60.__vbaObjSe>;  MSVBVM60.__vbaObjSet
0045129A   .  8BD8          mov     ebx, eax
0045129C   .  8D8D 50FFFFFF lea     ecx, dword ptr [ebp-B0]
004512A2   .  51            push    ecx
004512A3   .  53            push    ebx
004512A4   .  8B03          mov     eax, dword ptr [ebx]
004512A6   .  FF90 A0000000 call    dword ptr [eax+A0]                                       //取注册码
004512AC   .  3BC7          cmp     eax, edi
004512AE   .  DBE2          fclex
004512B0   .  7D 12         jge     short 004512C4
004512B2   .  68 A0000000   push    0A0
004512B7   .  68 40054100   push    00410540
004512BC   .  53            push    ebx
004512BD   .  50            push    eax
004512BE   .  FF15 6C104000 call    dword ptr [<&MSVBVM60.__vbaHresu>;  MSVBVM60.__vbaHresultCheckObj
004512C4   >  8B16          mov     edx, dword ptr [esi]
004512C6   .  56            push    esi
004512C7   .  FF92 00030000 call    dword ptr [edx+300]
004512CD   .  50            push    eax
004512CE   .  8D85 2CFFFFFF lea     eax, dword ptr [ebp-D4]
004512D4   .  50            push    eax
004512D5   .  FF15 94104000 call    dword ptr [<&MSVBVM60.__vbaObjSe>;  MSVBVM60.__vbaObjSet
004512DB   .  8BD8          mov     ebx, eax
004512DD   .  8D95 4CFFFFFF lea     edx, dword ptr [ebp-B4]
004512E3   .  52            push    edx
004512E4   .  53            push    ebx
004512E5   .  8B0B          mov     ecx, dword ptr [ebx]
004512E7   .  FF91 A0000000 call    dword ptr [ecx+A0]
004512ED   .  3BC7          cmp     eax, edi
004512EF   .  DBE2          fclex
004512F1   .  7D 12         jge     short 00451305
004512F3   .  68 A0000000   push    0A0
004512F8   .  68 40054100   push    00410540
004512FD   .  53            push    ebx
004512FE   .  50            push    eax
004512FF   .  FF15 6C104000 call    dword ptr [<&MSVBVM60.__vbaHresu>;  MSVBVM60.__vbaHresultCheckObj
00451305   >  8B06          mov     eax, dword ptr [esi]
00451307   .  56            push    esi
00451308   .  FF90 0C030000 call    dword ptr [eax+30C]
0045130E   .  8D8D 28FFFFFF lea     ecx, dword ptr [ebp-D8]
00451314   .  50            push    eax
00451315   .  51            push    ecx
00451316   .  FF15 94104000 call    dword ptr [<&MSVBVM60.__vbaObjSe>;  MSVBVM60.__vbaObjSet
0045131C   .  8BF0          mov     esi, eax
0045131E   .  8D85 48FFFFFF lea     eax, dword ptr [ebp-B8]
00451324   .  50            push    eax
00451325   .  56            push    esi
00451326   .  8B16          mov     edx, dword ptr [esi]
00451328   .  FF92 A0000000 call    dword ptr [edx+A0]
0045132E   .  3BC7          cmp     eax, edi
00451330   .  DBE2          fclex
00451332   .  7D 12         jge     short 00451346
00451334   .  68 A0000000   push    0A0
00451339   .  68 40054100   push    00410540
0045133E   .  56            push    esi
0045133F   .  50            push    eax
00451340   .  FF15 6C104000 call    dword ptr [<&MSVBVM60.__vbaHresu>;  MSVBVM60.__vbaHresultCheckObj
00451346   >  8B8D 50FFFFFF mov     ecx, dword ptr [ebp-B0]
0045134C   .  8B1D F4104000 mov     ebx, dword ptr [<&MSVBVM60.__vba>;  MSVBVM60.__vbaStrCmp
00451352   .  51            push    ecx
00451353   .  68 E4E54000   push    0040E5E4
00451358   .  FFD3          call    ebx                              ;  <&MSVBVM60.__vbaStrCmp> //判断注册码是否为空
0045135A   .  8B95 54FFFFFF mov     edx, dword ptr [ebp-AC]
00451360   .  8BF0          mov     esi, eax
00451362   .  F7DE          neg     esi
00451364   .  1BF6          sbb     esi, esi
00451366   .  52            push    edx
00451367   .  46            inc     esi
00451368   .  68 E4E54000   push    0040E5E4
0045136D   .  F7DE          neg     esi
0045136F   .  FFD3          call    ebx   //判断product id是否为空
00451371   .  F7D8          neg     eax
00451373   .  1BC0          sbb     eax, eax
00451375   .  40            inc     eax
00451376   .  F7D8          neg     eax
00451378   .  0BF0          or      esi, eax
0045137A   .  8B85 58FFFFFF mov     eax, dword ptr [ebp-A8]
00451380   .  50            push    eax
00451381   .  68 E4E54000   push    0040E5E4
00451386   .  FFD3          call    ebx   //判断用户名是否为空
00451388   .  8B8D 48FFFFFF mov     ecx, dword ptr [ebp-B8]
0045138E   .  8B1D 2C104000 mov     ebx, dword ptr [<&MSVBVM60.__vba>;  MSVBVM60.__vbaLenBstr
00451394   .  F7D8          neg     eax
00451396   .  1BC0          sbb     eax, eax
00451398   .  51            push    ecx
00451399   .  40            inc     eax
0045139A   .  F7D8          neg     eax
0045139C   .  0BF0          or      esi, eax
0045139E   .  FFD3          call    ebx                              ;  <&MSVBVM60.__vbaLenBstr>
004513A0   .  33D2          xor     edx, edx
004513A2   .  83F8 06       cmp     eax, 6   //判断用户名长度是否大于等于6
004513A5   .  8B85 4CFFFFFF mov     eax, dword ptr [ebp-B4]
004513AB   .  0F9CC2        setl    dl
004513AE   .  F7DA          neg     edx
004513B0   .  50            push    eax
004513B1   .  0BF2          or      esi, edx
004513B3   .  FFD3          call    ebx
004513B5   .  33C9          xor     ecx, ecx
004513B7   .  83F8 0A       cmp     eax, 0A  //判断product id是否是10位
004513BA   .  0F95C1        setne   cl
004513BD   .  F7D9          neg     ecx
004513BF   .  8B1D EC114000 mov     ebx, dword ptr [<&MSVBVM60.__vba>;  MSVBVM60.__vbaFreeStrList
004513C5   .  8D95 48FFFFFF lea     edx, dword ptr [ebp-B8]
004513CB   .  0BF1          or      esi, ecx
                    ....省略部分代码
004514CE   .  51            push    ecx
004514CF   .  FF15 94104000 call    dword ptr [<&MSVBVM60.__vbaObjSe>;  MSVBVM60.__vbaObjSet
004514D5   .  8B10          mov     edx, dword ptr [eax]
004514D7   .  8D8D 50FFFFFF lea     ecx, dword ptr [ebp-B0]
004514DD   .  51            push    ecx
004514DE   .  50            push    eax
004514DF   .  8985 E8FDFFFF mov     dword ptr [ebp-218], eax
004514E5   .  FF92 A0000000 call    dword ptr [edx+A0]
004514EB   .  3BC7          cmp     eax, edi
004514ED   .  DBE2          fclex
004514EF   .  7D 18         jge     short 00451509
004514F1   .  8B95 E8FDFFFF mov     edx, dword ptr [ebp-218]
004514F7   .  68 A0000000   push    0A0
004514FC   .  68 40054100   push    00410540
00451501   .  52            push    edx
00451502   .  50            push    eax
00451503   .  FF15 6C104000 call    dword ptr [<&MSVBVM60.__vbaHresu>;  MSVBVM60.__vbaHresultCheckObj
00451509   >  8B06          mov     eax, dword ptr [esi]
0045150B   .  56            push    esi
0045150C   .  FF90 00030000 call    dword ptr [eax+300]
00451512   .  8D8D 2CFFFFFF lea     ecx, dword ptr [ebp-D4]
00451518   .  50            push    eax
00451519   .  51            push    ecx
0045151A   .  FF15 94104000 call    dword ptr [<&MSVBVM60.__vbaObjSe>;  MSVBVM60.__vbaObjSet
00451520   .  8BF0          mov     esi, eax
00451522   .  8D85 48FFFFFF lea     eax, dword ptr [ebp-B8]
00451528   .  50            push    eax
00451529   .  56            push    esi
0045152A   .  8B16          mov     edx, dword ptr [esi]
0045152C   .  FF92 A0000000 call    dword ptr [edx+A0]
00451532   .  3BC7          cmp     eax, edi
00451534   .  DBE2          fclex
00451536   .  7D 12         jge     short 0045154A
00451538   .  68 A0000000   push    0A0
0045153D   .  68 40054100   push    00410540
00451542   .  56            push    esi
00451543   .  50            push    eax
00451544   .  FF15 6C104000 call    dword ptr [<&MSVBVM60.__vbaHresu>;  MSVBVM60.__vbaHresultCheckObj
0045154A   >  8B85 48FFFFFF mov     eax, dword ptr [ebp-B8]
00451550   .  8D8D 98FEFFFF lea     ecx, dword ptr [ebp-168]
00451556   .  6A 04         push    4
00451558   .  8D95 88FEFFFF lea     edx, dword ptr [ebp-178]
0045155E   .  51            push    ecx
0045155F   .  52            push    edx
00451560   .  89BD 48FFFFFF mov     dword ptr [ebp-B8], edi
00451566   .  8985 A0FEFFFF mov     dword ptr [ebp-160], eax
0045156C   .  C785 98FEFFFF>mov     dword ptr [ebp-168], 8
00451576   .  FF15 4C124000 call    dword ptr [<&MSVBVM60.#617>]     ;  MSVBVM60.rtcLeftCharVar //取product id前4位
0045157C   .  8B35 98114000 mov     esi, dword ptr [<&MSVBVM60.__vba>;  MSVBVM60.__vbaStrVarVal
00451582   .  8D85 88FEFFFF lea     eax, dword ptr [ebp-178]
00451588   .  8D8D 44FFFFFF lea     ecx, dword ptr [ebp-BC]
0045158E   .  50            push    eax
0045158F   .  51            push    ecx
00451590   .  FFD6          call    esi                              ;  <&MSVBVM60.__vbaStrVarVal>
00451592   .  50            push    eax
00451593   .  FF15 90124000 call    dword ptr [<&MSVBVM60.#581>]     ;  MSVBVM60.rtcR8ValFromBstr
00451599   .  8B45 08       mov     eax, dword ptr [ebp+8]
0045159C   .  DD9D 04FEFFFF fstp    qword ptr [ebp-1FC]              ; //保存前4位
004515A2   .  8B10          mov     edx, dword ptr [eax]
004515A4   .  50            push    eax
004515A5   .  FF92 00030000 call    dword ptr [edx+300]
004515AB   .  50            push    eax
004515AC   .  8D85 28FFFFFF lea     eax, dword ptr [ebp-D8]
004515B2   .  50            push    eax
004515B3   .  FF15 94104000 call    dword ptr [<&MSVBVM60.__vbaObjSe>;  MSVBVM60.__vbaObjSet
004515B9   .  8B08          mov     ecx, dword ptr [eax]
004515BB   .  8D95 40FFFFFF lea     edx, dword ptr [ebp-C0]
004515C1   .  52            push    edx
004515C2   .  50            push    eax
004515C3   .  8985 D8FDFFFF mov     dword ptr [ebp-228], eax
004515C9   .  FF91 A0000000 call    dword ptr [ecx+A0]
004515CF   .  3BC7          cmp     eax, edi
004515D1   .  DBE2          fclex
004515D3   .  7D 18         jge     short 004515ED
004515D5   .  8B8D D8FDFFFF mov     ecx, dword ptr [ebp-228]
004515DB   .  68 A0000000   push    0A0
004515E0   .  68 40054100   push    00410540
004515E5   .  51            push    ecx
004515E6   .  50            push    eax
004515E7   .  FF15 6C104000 call    dword ptr [<&MSVBVM60.__vbaHresu>;  MSVBVM60.__vbaHresultCheckObj
004515ED   >  8B85 40FFFFFF mov     eax, dword ptr [ebp-C0]
004515F3   .  8D95 78FEFFFF lea     edx, dword ptr [ebp-188]
004515F9   .  8985 80FEFFFF mov     dword ptr [ebp-180], eax
004515FF   .  6A 06         push    6
00451601   .  8D85 68FEFFFF lea     eax, dword ptr [ebp-198]
00451607   .  52            push    edx
00451608   .  50            push    eax
00451609   .  89BD 40FFFFFF mov     dword ptr [ebp-C0], edi
0045160F   .  C785 78FEFFFF>mov     dword ptr [ebp-188], 8
00451619   .  FF15 4C124000 call    dword ptr [<&MSVBVM60.#617>]     ;  MSVBVM60.rtcLeftCharVar//取product id前6位
0045161F   .  8D8D 68FEFFFF lea     ecx, dword ptr [ebp-198]
00451625   .  8D95 3CFFFFFF lea     edx, dword ptr [ebp-C4]
0045162B   .  51            push    ecx
0045162C   .  52            push    edx
0045162D   .  FFD6          call    esi
0045162F   .  50            push    eax
00451630   .  FF15 90124000 call    dword ptr [<&MSVBVM60.#581>]     ;  MSVBVM60.rtcR8ValFromBstr
00451636   .  8B85 58FFFFFF mov     eax, dword ptr [ebp-A8]
0045163C   .  6A 01         push    1
0045163E   .  DD9D FCFDFFFF fstp    qword ptr [ebp-204]              ;  //保存product id前6位
00451644   .  8985 20FFFFFF mov     dword ptr [ebp-E0], eax
0045164A   .  8D85 18FFFFFF lea     eax, dword ptr [ebp-E8]
00451650   .  8D8D 08FFFFFF lea     ecx, dword ptr [ebp-F8]
00451656   .  50            push    eax
00451657   .  51            push    ecx
00451658   .  89BD 58FFFFFF mov     dword ptr [ebp-A8], edi
0045165E   .  C785 18FFFFFF>mov     dword ptr [ebp-E8], 8
00451668   .  FF15 4C124000 call    dword ptr [<&MSVBVM60.#617>]     ;  MSVBVM60.rtcLeftCharVar //取product id第一位
0045166E   .  8B85 54FFFFFF mov     eax, dword ptr [ebp-AC]
00451674   .  8D95 F8FEFFFF lea     edx, dword ptr [ebp-108]
0045167A   .  8985 00FFFFFF mov     dword ptr [ebp-100], eax
00451680   .  6A 01         push    1
00451682   .  8D85 E8FEFFFF lea     eax, dword ptr [ebp-118]
00451688   .  52            push    edx
00451689   .  50            push    eax
0045168A   .  89BD 54FFFFFF mov     dword ptr [ebp-AC], edi
00451690   .  C785 F8FEFFFF>mov     dword ptr [ebp-108], 8
0045169A   .  FF15 64124000 call    dword ptr [<&MSVBVM60.#619>]     ;  MSVBVM60.rtcRightCharVar //取product id最后一位
004516A0   .  8B85 50FFFFFF mov     eax, dword ptr [ebp-B0]
004516A6   .  8D8D C8FEFFFF lea     ecx, dword ptr [ebp-138]
004516AC   .  6A 04         push    4
004516AE   .  8D95 B8FEFFFF lea     edx, dword ptr [ebp-148]
004516B4   .  51            push    ecx
004516B5   .  52            push    edx
004516B6   .  89BD 50FFFFFF mov     dword ptr [ebp-B0], edi
004516BC   .  8985 D0FEFFFF mov     dword ptr [ebp-130], eax
004516C2   .  C785 C8FEFFFF>mov     dword ptr [ebp-138], 8
004516CC   .  FF15 64124000 call    dword ptr [<&MSVBVM60.#619>]     ;  MSVBVM60.rtcRightCharVar//取product id最后4位
004516D2   .  8D85 08FFFFFF lea     eax, dword ptr [ebp-F8]
004516D8   .  8D8D E8FEFFFF lea     ecx, dword ptr [ebp-118]
004516DE   .  50            push    eax
004516DF   .  8D95 D8FEFFFF lea     edx, dword ptr [ebp-128]
004516E5   .  51            push    ecx
004516E6   .  52            push    edx
004516E7   .  FF15 A4114000 call    dword ptr [<&MSVBVM60.__vbaVarCa>;  MSVBVM60.__vbaVarCat//连接
004516ED   .  50            push    eax
004516EE   .  8D85 B8FEFFFF lea     eax, dword ptr [ebp-148]
004516F4   .  8D8D A8FEFFFF lea     ecx, dword ptr [ebp-158]
004516FA   .  50            push    eax
004516FB   .  51            push    ecx
004516FC   .  FF15 A4114000 call    dword ptr [<&MSVBVM60.__vbaVarCa>;  MSVBVM60.__vbaVarCat //两次连接后107890
00451702   .  8D95 4CFFFFFF lea     edx, dword ptr [ebp-B4]    //即第一位+最后一位+最后四位
00451708   .  50            push    eax //我们输入的位1234567890
00451709   .  52            push    edx   // 所以得到107890
0045170A   .  FFD6          call    esi
0045170C   .  50            push    eax
0045170D   .  FF15 90124000 call    dword ptr [<&MSVBVM60.#581>]     ;  MSVBVM60.rtcR8ValFromBstr  
00451713   .  DC85 04FEFFFF fadd    qword ptr [ebp-1FC]              ;  //前4位+107890
00451719   .  8D8D 44FFFFFF lea     ecx, dword ptr [ebp-BC]           //即107890+1234=109124
0045171F   .  8D95 4CFFFFFF lea     edx, dword ptr [ebp-B4]
00451725   .  DC85 FCFDFFFF fadd    qword ptr [ebp-204]  //再加上前6位123456+109124=232580
0045172B   .  DD5D 80       fstp    qword ptr [ebp-80]               ; 
0045172E   .  DFE0          fstsw   ax
00451730   .  A8 0D         test    al, 0D
00451732   .  0F85 69100000 jnz     004527A1
00451738   .  8D85 3CFFFFFF lea     eax, dword ptr [ebp-C4]
0045173E   .  50            push    eax
0045173F   .  51            push    ecx
00451740   .  52            push    edx
00451741   .  6A 03         push    3
00451743   .  FFD3          call    ebx
00451745   .  8D85 28FFFFFF lea     eax, dword ptr [ebp-D8]
0045174B   .  8D8D 2CFFFFFF lea     ecx, dword ptr [ebp-D4]
00451751   .  50            push    eax
00451752   .  8D95 30FFFFFF lea     edx, dword ptr [ebp-D0]
00451758   .  51            push    ecx
00451759   .  8D85 34FFFFFF lea     eax, dword ptr [ebp-CC]
0045175F   .  52            push    edx
00451760   .  8D8D 38FFFFFF lea     ecx, dword ptr [ebp-C8]
00451766   .  50            push    eax
00451767   .  51            push    ecx
00451768   .  6A 05         push    5
0045176A   .  FF15 44104000 call    dword ptr [<&MSVBVM60.__vbaFreeO>;  MSVBVM60.__vbaFreeObjList
00451770   .  8D95 68FEFFFF lea     edx, dword ptr [ebp-198]
00451776   .  8D85 78FEFFFF lea     eax, dword ptr [ebp-188]
0045177C   .  52            push    edx
0045177D   .  8D8D 88FEFFFF lea     ecx, dword ptr [ebp-178]
00451783   .  50            push    eax
00451784   .  8D95 98FEFFFF lea     edx, dword ptr [ebp-168]
0045178A   .  51            push    ecx
0045178B   .  8D85 A8FEFFFF lea     eax, dword ptr [ebp-158]
00451791   .  52            push    edx
00451792   .  8D8D B8FEFFFF lea     ecx, dword ptr [ebp-148]
00451798   .  50            push    eax
00451799   .  8D95 D8FEFFFF lea     edx, dword ptr [ebp-128]
0045179F   .  51            push    ecx
004517A0   .  8D85 C8FEFFFF lea     eax, dword ptr [ebp-138]
004517A6   .  52            push    edx
004517A7   .  8D8D E8FEFFFF lea     ecx, dword ptr [ebp-118]
004517AD   .  50            push    eax
004517AE   .  8D95 08FFFFFF lea     edx, dword ptr [ebp-F8]
004517B4   .  51            push    ecx
004517B5   .  8D85 F8FEFFFF lea     eax, dword ptr [ebp-108]
004517BB   .  52            push    edx
004517BC   .  8D8D 18FFFFFF lea     ecx, dword ptr [ebp-E8]
004517C2   .  50            push    eax
004517C3   .  51            push    ecx
004517C4   .  6A 0C         push    0C
004517C6   .  FF15 34104000 call    dword ptr [<&MSVBVM60.__vbaFreeV>;  MSVBVM60.__vbaFreeVarList
004517CC   .  B8 02000000   mov     eax, 2
004517D1   .  83C4 5C       add     esp, 5C
004517D4   .  B9 01000000   mov     ecx, 1
004517D9   .  8985 58FEFFFF mov     dword ptr [ebp-1A8], eax
004517DF   .  8985 48FEFFFF mov     dword ptr [ebp-1B8], eax
004517E5   .  8985 38FEFFFF mov     dword ptr [ebp-1C8], eax
004517EB   .  8D95 58FEFFFF lea     edx, dword ptr [ebp-1A8]
004517F1   .  898D 60FEFFFF mov     dword ptr [ebp-1A0], ecx
004517F7   .  898D 40FEFFFF mov     dword ptr [ebp-1C0], ecx
004517FD   .  8D85 48FEFFFF lea     eax, dword ptr [ebp-1B8]
00451803   .  52            push    edx
00451804   .  8D8D 38FEFFFF lea     ecx, dword ptr [ebp-1C8]
0045180A   .  50            push    eax
0045180B   .  8D95 B0FDFFFF lea     edx, dword ptr [ebp-250]
00451811   .  51            push    ecx
00451812   .  8D85 C0FDFFFF lea     eax, dword ptr [ebp-240]
00451818   .  52            push    edx
00451819   .  8D4D D4       lea     ecx, dword ptr [ebp-2C]
0045181C   .  50            push    eax
0045181D   .  51            push    ecx
0045181E   .  C785 50FEFFFF>mov     dword ptr [ebp-1B0], 63
00451828   .  FF15 84104000 call    dword ptr [<&MSVBVM60.__vbaVarFo>;  MSVBVM60.__vbaVarForInit //for循环初始化
0045182E   .  8B35 58124000 mov     esi, dword ptr [<&MSVBVM60.__vba>;  MSVBVM60.__vbaStrMove
00451834   >  3BC7          cmp     eax, edi
00451836   .  0F84 CC020000 je      00451B08
0045183C   .  DD45 80       fld     qword ptr [ebp-80]                                               
0045183F   .  833D 00D04700>cmp     dword ptr [47D000], 0
00451846   .  75 08         jnz     short 00451850
00451848   .  DC35 C0174000 fdiv    qword ptr [4017C0] //结果/3即 232580/3
0045184E   .  EB 11         jmp     short 00451861
00451850   >  FF35 C4174000 push    dword ptr [4017C4]
00451856   .  FF35 C0174000 push    dword ptr [4017C0]
0045185C   .  E8 830BFBFF   call    
00451861   >  C785 58FEFFFF>mov     dword ptr [ebp-1A8], 5
0045186B   .  DC0D B8174000 fmul    qword ptr [4017B8] //再*7 232580/3*7
00451871   .  DD9D 60FEFFFF fstp    qword ptr [ebp-1A0]
00451877   .  DFE0          fstsw   ax
00451879   .  A8 0D         test    al, 0D
0045187B   .  0F85 200F0000 jnz     004527A1
00451881   .  8B45 08       mov     eax, dword ptr [ebp+8]
00451884   .  50            push    eax
00451885   .  8B10          mov     edx, dword ptr [eax]
00451887   .  FF92 0C030000 call    dword ptr [edx+30C]
0045188D   .  50            push    eax
0045188E   .  8D85 38FFFFFF lea     eax, dword ptr [ebp-C8]
00451894   .  50            push    eax
00451895   .  FF15 94104000 call    dword ptr [<&MSVBVM60.__vbaObjSe>;  MSVBVM60.__vbaObjSet
0045189B   .  8B08          mov     ecx, dword ptr [eax]
0045189D   .  8D95 58FFFFFF lea     edx, dword ptr [ebp-A8]
004518A3   .  52            push    edx
004518A4   .  50            push    eax
004518A5   .  8985 F4FDFFFF mov     dword ptr [ebp-20C], eax
004518AB   .  FF91 A0000000 call    dword ptr [ecx+A0] //取用户名
004518B1   .  3BC7          cmp     eax, edi
004518B3   .  DBE2          fclex
004518B5   .  7D 18         jge     short 004518CF
004518B7   .  8B8D F4FDFFFF mov     ecx, dword ptr [ebp-20C]
004518BD   .  68 A0000000   push    0A0
004518C2   .  68 40054100   push    00410540
004518C7   .  51            push    ecx
004518C8   .  50            push    eax
004518C9   .  FF15 6C104000 call    dword ptr [<&MSVBVM60.__vbaHresu>;  MSVBVM60.__vbaHresultCheckObj
004518CF   >  8B95 58FFFFFF mov     edx, dword ptr [ebp-A8]
004518D5   .  8D8D 54FFFFFF lea     ecx, dword ptr [ebp-AC]
004518DB   .  89BD 58FFFFFF mov     dword ptr [ebp-A8], edi
004518E1   .  FFD6          call    esi
004518E3   .  8D95 54FFFFFF lea     edx, dword ptr [ebp-AC]
004518E9   .  52            push    edx
004518EA   .  E8 819B0200   call    0047B470 //这里是对用户名进行计算下面详细分析
004518EF   .  DD9D 50FEFFFF fstp    qword ptr [ebp-1B0]
004518F5   .  8D45 D4       lea     eax, dword ptr [ebp-2C] //运算后的结果为13267
004518F8   .  C785 48FEFFFF>mov     dword ptr [ebp-1B8], 5
00451902   .  50            push    eax
00451903   .  FF15 04124000 call    dword ptr [<&MSVBVM60.__vbaI4Var>;  MSVBVM60.__vbaI4Var
00451909   .  83F8 65       cmp     eax, 65
0045190C   .  8985 F8FDFFFF mov     dword ptr [ebp-208], eax
00451912   .  72 06         jb      short 0045191A
00451914   .  FF15 F0104000 call    dword ptr [<&MSVBVM60.__vbaGener>;  MSVBVM60.__vbaGenerateBoundsError
0045191A   >  8D8D 58FEFFFF lea     ecx, dword ptr [ebp-1A8]
00451920   .  8D55 D4       lea     edx, dword ptr [ebp-2C]
00451923   .  51            push    ecx
00451924   .  8D85 18FFFFFF lea     eax, dword ptr [ebp-E8]
0045192A   .  52            push    edx
0045192B   .  50            push    eax
0045192C   .  FF15 58114000 call    dword ptr [<&MSVBVM60.__vbaVarMu>;  MSVBVM60.__vbaVarMul 
//前面product id算出的结果(s1)*i(循环的次数)     
00451932   .  8D8D 48FEFFFF lea     ecx, dword ptr [ebp-1B8]                             
00451938   .  50            push    eax
00451939   .  8D95 08FFFFFF lea     edx, dword ptr [ebp-F8]
0045193F   .  51            push    ecx
00451940   .  52            push    edx
00451941   .  FF15 14124000 call    dword ptr [<&MSVBVM60.__vbaVarAd>;  MSVBVM60.__vbaVarAdd
//s1+username算出的结果(13267)=s2
00451947   .  50            push    eax
00451948   .  FF15 28104000 call    dword ptr [<&MSVBVM60.__vbaStrVa>;  MSVBVM60.__vbaStrVarMove
0045194E   .  8BD0          mov     edx, eax
00451950   .  8D8D 50FFFFFF lea     ecx, dword ptr [ebp-B0]
00451956   .  FFD6          call    esi
00451958   .  8B8D F8FDFFFF mov     ecx, dword ptr [ebp-208]
0045195E   .  8BD0          mov     edx, eax
00451960   .  8B45 A0       mov     eax, dword ptr [ebp-60]
00451963   .  8D0C88        lea     ecx, dword ptr [eax+ecx*4]
00451966   .  FF15 E0114000 call    dword ptr [<&MSVBVM60.__vbaStrCo>;  MSVBVM60.__vbaStrCopy
0045196C   .  8D95 50FFFFFF lea     edx, dword ptr [ebp-B0]
00451972   .  8D85 54FFFFFF lea     eax, dword ptr [ebp-AC]
00451978   .  52            push    edx
00451979   .  50            push    eax
0045197A   .  6A 02         push    2
0045197C   .  FFD3          call    ebx
0045197E   .  83C4 0C       add     esp, 0C
00451981   .  8D8D 38FFFFFF lea     ecx, dword ptr [ebp-C8]
00451987   .  FF15 8C124000 call    dword ptr [<&MSVBVM60.__vbaFreeO>;  MSVBVM60.__vbaFreeObj
0045198D   .  8D8D 08FFFFFF lea     ecx, dword ptr [ebp-F8]
00451993   .  FF15 20104000 call    dword ptr [<&MSVBVM60.__vbaFreeV>;  MSVBVM60.__vbaFreeVar
00451999   .  8D4D D4       lea     ecx, dword ptr [ebp-2C]
0045199C   .  51            push    ecx
0045199D   .  FF15 04124000 call    dword ptr [<&MSVBVM60.__vbaI4Var>;  MSVBVM60.__vbaI4Var
004519A3   .  83F8 65       cmp     eax, 65
004519A6   .  8985 F8FDFFFF mov     dword ptr [ebp-208], eax
004519AC   .  72 06         jb      short 004519B4
004519AE   .  FF15 F0104000 call    dword ptr [<&MSVBVM60.__vbaGener>;  MSVBVM60.__vbaGenerateBoundsError
004519B4   >  8B55 A0       mov     edx, dword ptr [ebp-60]
004519B7   .  8B85 F8FDFFFF mov     eax, dword ptr [ebp-208]
004519BD   .  8B0C82        mov     ecx, dword ptr [edx+eax*4]
004519C0   .  51            push    ecx
004519C1   .  FF15 90124000 call    dword ptr [<&MSVBVM60.#581>]     ;  MSVBVM60.rtcR8ValFromBstr
004519C7   .  DD9D 04FEFFFF fstp    qword ptr [ebp-1FC]
004519CD   .  8D55 D4       lea     edx, dword ptr [ebp-2C]
004519D0   .  52            push    edx
004519D1   .  FF15 04124000 call    dword ptr [<&MSVBVM60.__vbaI4Var>;  MSVBVM60.__vbaI4Var
004519D7   .  83F8 65       cmp     eax, 65
004519DA   .  8985 F0FDFFFF mov     dword ptr [ebp-210], eax
004519E0   .  72 06         jb      short 004519E8
004519E2   .  FF15 F0104000 call    dword ptr [<&MSVBVM60.__vbaGener>;  MSVBVM60.__vbaGenerateBoundsError
004519E8   >  8B45 A0       mov     eax, dword ptr [ebp-60]
004519EB   .  8B8D F0FDFFFF mov     ecx, dword ptr [ebp-210]
004519F1   .  8B1488        mov     edx, dword ptr [eax+ecx*4]
004519F4   .  52            push    edx
004519F5   .  FF15 90124000 call    dword ptr [<&MSVBVM60.#581>]     ;  MSVBVM60.rtcR8ValFromBstr             
004519FB   .  8B85 08FEFFFF mov     eax, dword ptr [ebp-1F8]
00451A01   .  8B8D 04FEFFFF mov     ecx, dword ptr [ebp-1FC]
00451A07   .  DD9D 44FDFFFF fstp    qword ptr [ebp-2BC]
00451A0D   .  68 00000040   push    40000000
00451A12   .  57            push    edi
00451A13   .  50            push    eax
00451A14   .  51            push    ecx
00451A15   .  FF15 F4114000 call    dword ptr [<&MSVBVM60.__vbaPower>;  MSVBVM60.__vbaPowerR8 //s2^2=s3
00451A1B   .  833D 00D04700>cmp     dword ptr [47D000], 0
00451A22   .  75 08         jnz     short 00451A2C
00451A24   .  DC35 C0174000 fdiv    qword ptr [4017C0] //s3/3=s4
00451A2A   .  EB 11         jmp     short 00451A3D
00451A2C   >  FF35 C4174000 push    dword ptr [4017C4]
00451A32   .  FF35 C0174000 push    dword ptr [4017C0]
00451A38   .  E8 A709FBFF   call    
00451A3D   >  83EC 08       sub     esp, 8
00451A40   .  DC85 44FDFFFF fadd    qword ptr [ebp-2BC]  //s4+s2=s5
00451A46   .  DFE0          fstsw   ax
00451A48   .  A8 0D         test    al, 0D
00451A4A   .  0F85 510D0000 jnz     004527A1
00451A50   .  DD1C24        fstp    qword ptr [esp]
00451A53   .  FF15 2C124000 call    dword ptr [<&MSVBVM60.#614>]     ;  MSVBVM60.rtcSqr //s5^0.5
00451A59   .  DD9D 20FFFFFF fstp    qword ptr [ebp-E0]
00451A5F   .  8D95 18FFFFFF lea     edx, dword ptr [ebp-E8]
00451A65   .  8D85 08FFFFFF lea     eax, dword ptr [ebp-F8]
00451A6B   .  52            push    edx
00451A6C   .  50            push    eax
00451A6D   .  C785 18FFFFFF>mov     dword ptr [ebp-E8], 5
00451A77   .  FF15 DC114000 call    dword ptr [<&MSVBVM60.#573>]     ;  MSVBVM60.rtcHexVarFromVar
//将上面的计算结果的整数部分转换成16进制
00451A7D   .  8D4D D4       lea     ecx, dword ptr [ebp-2C]
00451A80   .  51            push    ecx
00451A81   .  FF15 04124000 call    dword ptr [<&MSVBVM60.__vbaI4Var>;  MSVBVM60.__vbaI4Var
00451A87   .  83F8 65       cmp     eax, 65
00451A8A   .  8985 F4FDFFFF mov     dword ptr [ebp-20C], eax
00451A90   .  72 06         jb      short 00451A98
00451A92   .  FF15 F0104000 call    dword ptr [<&MSVBVM60.__vbaGener>;  MSVBVM60.__vbaGenerateBoundsError
00451A98   >  8D95 08FFFFFF lea     edx, dword ptr [ebp-F8]
..............
...............
00451B0B   .  50            push    eax
00451B0C   .  8B08          mov     ecx, dword ptr [eax]
00451B0E   .  FF91 FC020000 call    dword ptr [ecx+2FC]
00451B14   .  8D95 18FFFFFF lea     edx, dword ptr [ebp-E8]
00451B1A   .  8D4D B4       lea     ecx, dword ptr [ebp-4C]
00451B1D   .  8985 20FFFFFF mov     dword ptr [ebp-E0], eax
00451B23   .  C785 18FFFFFF>mov     dword ptr [ebp-E8], 9
00451B2D   .  FF15 18104000 call    dword ptr [<&MSVBVM60.__vbaVarMo>;  MSVBVM60.__vbaVarMove
00451B33   .  B8 02000000   mov     eax, 2
00451B38   .  B9 01000000   mov     ecx, 1
00451B3D   .  8985 58FEFFFF mov     dword ptr [ebp-1A8], eax
00451B43   .  8985 48FEFFFF mov     dword ptr [ebp-1B8], eax
00451B49   .  8985 38FEFFFF mov     dword ptr [ebp-1C8], eax
00451B4F   .  8D95 58FEFFFF lea     edx, dword ptr [ebp-1A8]
00451B55   .  898D 60FEFFFF mov     dword ptr [ebp-1A0], ecx
00451B5B   .  898D 40FEFFFF mov     dword ptr [ebp-1C0], ecx
00451B61   .  8D85 48FEFFFF lea     eax, dword ptr [ebp-1B8]
00451B67   .  52            push    edx
00451B68   .  8D8D 38FEFFFF lea     ecx, dword ptr [ebp-1C8]
00451B6E   .  50            push    eax
00451B6F   .  8D95 90FDFFFF lea     edx, dword ptr [ebp-270]
00451B75   .  51            push    ecx
00451B76   .  8D85 A0FDFFFF lea     eax, dword ptr [ebp-260]
00451B7C   .  52            push    edx
00451B7D   .  8D4D D4       lea     ecx, dword ptr [ebp-2C]
00451B80   .  50            push    eax
00451B81   .  51            push    ecx
00451B82   .  C785 50FEFFFF>mov     dword ptr [ebp-1B0], 63
00451B8C   .  FF15 84104000 call    dword ptr [<&MSVBVM60.__vbaVarFo>;  MSVBVM60.__vbaVarForInit//初始化for循环
00451B92   .  8B3D 5C104000 mov     edi, dword ptr [<&MSVBVM60.__vba>;  MSVBVM60.__vbaLsetFixstr
00451B98   >  85C0          test    eax, eax
00451B9A   .  0F84 590A0000 je      004525F9
00451BA0   .  8D55 B4       lea     edx, dword ptr [ebp-4C]
00451BA3   .  8D8D 80FDFFFF lea     ecx, dword ptr [ebp-280]
00451BA9   .  FF15 38124000 call    dword ptr [<&MSVBVM60.__vbaVarCo>;  MSVBVM60.__vbaVarCopy
00451BAF   .  8D55 D4       lea     edx, dword ptr [ebp-2C]
00451BB2   .  52            push    edx
00451BB3   .  FF15 04124000 call    dword ptr [<&MSVBVM60.__vbaI4Var>;  MSVBVM60.__vbaI4Var
00451BB9   .  83F8 65       cmp     eax, 65
00451BBC   .  8985 F8FDFFFF mov     dword ptr [ebp-208], eax
00451BC2   .  72 06         jb      short 00451BCA
00451BC4   .  FF15 F0104000 call    dword ptr [<&MSVBVM60.__vbaGener>;  MSVBVM60.__vbaGenerateBoundsError
00451BCA   >  8B85 6CFFFFFF mov     eax, dword ptr [ebp-94]
00451BD0   .  8B8D F8FDFFFF mov     ecx, dword ptr [ebp-208]
00451BD6   .  6A 06         push    6
00451BD8   .  C785 58FEFFFF>mov     dword ptr [ebp-1A8], 4008
00451BE2   .  8D1488        lea     edx, dword ptr [eax+ecx*4]
00451BE5   .  8D85 58FEFFFF lea     eax, dword ptr [ebp-1A8]
00451BEB   .  8D8D 18FFFFFF lea     ecx, dword ptr [ebp-E8]
00451BF1   .  50            push    eax
00451BF2   .  51            push    ecx
00451BF3   .  8995 60FEFFFF mov     dword ptr [ebp-1A0], edx//上面的for循环好象会生成100个16进制数       
00451BFF   .  8B95 6CFFFFFF mov     edx, dword ptr [ebp-94]          ;  (initial cpu selection) //这里就是取一个
00451C05   .  8D85 38FEFFFF lea     eax, dword ptr [ebp-1C8]
00451C0B   .  6A 06         push    6
00451C0D   .  8D8D F8FEFFFF lea     ecx, dword ptr [ebp-108]
00451C13   .  81C2 88000000 add     edx, 88
00451C19   .  50            push    eax
00451C1A   .  51            push    ecx
00451C1B   .  C785 50FEFFFF>mov     dword ptr [ebp-1B0], 00410E84    ;  -
00451C25   .  C785 48FEFFFF>mov     dword ptr [ebp-1B8], 8
00451C2F   .  8995 40FEFFFF mov     dword ptr [ebp-1C0], edx
00451C35   .  C785 38FEFFFF>mov     dword ptr [ebp-1C8], 4008
00451C3F   .  FF15 4C124000 call    dword ptr [<&MSVBVM60.#617>]     ;  MSVBVM60.rtcLeftCharVar//这里去第二个16进制数
00451C45   .  8B95 6CFFFFFF mov     edx, dword ptr [ebp-94]                            
00451C4B   .  8D85 18FEFFFF lea     eax, dword ptr [ebp-1E8]
00451C51   .  6A 06         push    6
00451C53   .  8D8D C8FEFFFF lea     ecx, dword ptr [ebp-138]
00451C59   .  83C2 48       add     edx, 48
00451C5C   .  50            push    eax
00451C5D   .  51            push    ecx
00451C5E   .  C785 30FEFFFF>mov     dword ptr [ebp-1D0], 00410E84    ;  -
00451C68   .  C785 28FEFFFF>mov     dword ptr [ebp-1D8], 8
00451C72   .  8995 20FEFFFF mov     dword ptr [ebp-1E0], edx
00451C78   .  C785 18FEFFFF>mov     dword ptr [ebp-1E8], 4008
00451C82   .  FF15 4C124000 call    dword ptr [<&MSVBVM60.#617>]     ;  MSVBVM60.rtcLeftCharVar//这里去第三个16进制数
00451C88   .  8D95 80FDFFFF lea     edx, dword ptr [ebp-280]
00451C8E   .  8D85 18FFFFFF lea     eax, dword ptr [ebp-E8]
00451C94   .  52            push    edx
00451C95   .  8D8D 48FEFFFF lea     ecx, dword ptr [ebp-1B8]
00451C9B   .  50            push    eax
00451C9C   .  8D95 08FFFFFF lea     edx, dword ptr [ebp-F8]
00451CA2   .  51            push    ecx
00451CA3   .  52            push    edx
00451CA4   .  FF15 A4114000 call    dword ptr [<&MSVBVM60.__vbaVarCa>;  MSVBVM60.__vbaVarCat
00451CAA   .  50            push    eax
00451CAB   .  8D85 F8FEFFFF lea     eax, dword ptr [ebp-108]
00451CB1   .  8D8D E8FEFFFF lea     ecx, dword ptr [ebp-118]
00451CB7   .  50            push    eax
00451CB8   .  51            push    ecx
00451CB9   .  FF15 A4114000 call    dword ptr [<&MSVBVM60.__vbaVarCa>;  MSVBVM60.__vbaVarCat
00451CBF   .  50            push    eax
00451CC0   .  8D95 28FEFFFF lea     edx, dword ptr [ebp-1D8]
00451CC6   .  8D85 D8FEFFFF lea     eax, dword ptr [ebp-128]
00451CCC   .  52            push    edx
00451CCD   .  50            push    eax
00451CCE   .  FF15 A4114000 call    dword ptr [<&MSVBVM60.__vbaVarCa>;  MSVBVM60.__vbaVarCat        
00451CD4   .  8D8D C8FEFFFF lea     ecx, dword ptr [ebp-138]
00451CDA   .  50            push    eax
00451CDB   .  8D95 B8FEFFFF lea     edx, dword ptr [ebp-148]
00451CE1   .  51            push    ecx
00451CE2   .  52            push    edx
00451CE3   .  FF15 A4114000 call    dword ptr [<&MSVBVM60.__vbaVarCa>;  MSVBVM60.__vbaVarCat //将3个数用"-"连接起来
00451CE9   .  50            push    eax
00451CEA   .  FF15 00114000 call    dword ptr [<&MSVBVM60.__vbaVarTs>;  MSVBVM60.__vbaVarTstEq //与注册码进行比较
00451CF0   .  8985 14FEFFFF mov     dword ptr [ebp-1EC], eax
00451CF6   .  8D85 B8FEFFFF lea     eax, dword ptr [ebp-148]
00451CFC   .  8D8D C8FEFFFF lea     ecx, dword ptr [ebp-138]
00451D02   .  50            push    eax
00451D03   .  8D95 D8FEFFFF lea     edx, dword ptr [ebp-128]
00451D09   .  51            push    ecx
00451D0A   .  8D85 E8FEFFFF lea     eax, dword ptr [ebp-118]
00451D10   .  52            push    edx
00451D11   .  8D8D F8FEFFFF lea     ecx, dword ptr [ebp-108]
00451D17   .  50            push    eax
00451D18   .  8D95 08FFFFFF lea     edx, dword ptr [ebp-F8]
00451D1E   .  51            push    ecx
00451D1F   .  8D85 18FFFFFF lea     eax, dword ptr [ebp-E8]
00451D25   .  52            push    edx
00451D26   .  50            push    eax
00451D27   .  6A 07         push    7
00451D29   .  FF15 34104000 call    dword ptr [<&MSVBVM60.__vbaFreeV>;  MSVBVM60.__vbaFreeVarList
00451D2F   .  83C4 20       add     esp, 20
00451D32   .  66:83BD 14FEF>cmp     word ptr [ebp-1EC], 0
00451D3A   .  0F84 9C080000 je      004525DC //比较是否是真码爆破点(改为nop)
00451D40   .  A1 24D04700   mov     eax, dword ptr [47D024]  //下面的一些代码是将注册成功信息写入system32下面的一个文件
00451D45   .  C785 60FEFFFF>mov     dword ptr [ebp-1A0], -1
00451D4F   .  85C0          test    eax, eax //而且不会再次验证,也就是说只要暴破依次就永久有效无需修改原文件
00451D51   .  C785 58FEFFFF>mov     dword ptr [ebp-1A8], 0B
00451D5B   .  75 15         jnz     short 00451D72
00451D5D   .  68 24D04700   push    0047D024
00451D62   .  68 A8AC4000   push    0040ACA8
00451D67   .  FF15 CC114000 call    dword ptr [<&MSVBVM60.__vbaNew2>>;  MSVBVM60.__vbaNew2
00451D6D   .  A1 24D04700   mov     eax, dword ptr [47D024]
00451D72   >  8B95 58FEFFFF mov     edx, dword ptr [ebp-1A8]
00451D78   .  83EC 10       sub     esp, 10
00451D7B   .  8BCC          mov     ecx, esp
00451D7D   .  68 0D000180   push    8001000D
00451D82   .  50            push    eax
00451D83   .  8911          mov     dword ptr [ecx], edx
00451D85   .  8B95 5CFEFFFF mov     edx, dword ptr [ebp-1A4]
00451D8B   .  8951 04       mov     dword ptr [ecx+4], edx
00451D8E   .  8B95 60FEFFFF mov     edx, dword ptr [ebp-1A0]
00451D94   .  8951 08       mov     dword ptr [ecx+8], edx
00451D97   .  8B95 64FEFFFF mov     edx, dword ptr [ebp-19C]
00451D9D   .  8951 0C       mov     dword ptr [ecx+C], edx
00451DA0   .  8B08          mov     ecx, dword ptr [eax]
00451DA2   .  FF91 0C040000 call    dword ptr [ecx+40C]

下面分析对用户名进行运算的那个过程
0047B470   $  55            push    ebp
0047B471   .  8BEC          mov     ebp, esp
0047B473   .  83EC 08       sub     esp, 8
0047B476   .  68 C6234000   push    ;  SE 处理程序安装
0047B47B   .  64:A1 0000000>mov     eax, dword ptr fs:[0]
0047B481   .  50            push    eax
0047B482   .  64:8925 00000>mov     dword ptr fs:[0], esp
0047B489   .  81EC 04010000 sub     esp, 104
0047B48F   .  53            push    ebx
0047B490   .  56            push    esi
0047B491   .  57            push    edi
0047B492   .  8965 F8       mov     dword ptr [ebp-8], esp
0047B495   .  C745 FC 88234>mov     dword ptr [ebp-4], 00402388
0047B49C   .  33C0          xor     eax, eax
0047B49E   .  8B3D 68114000 mov     edi, dword ptr [<&MSVBVM60.#712>>;  MSVBVM60.rtcReplace       
0047B4A4   .  8945 DC       mov     dword ptr [ebp-24], eax
0047B4A7   .  8945 D4       mov     dword ptr [ebp-2C], eax
0047B4AA   .  8945 C8       mov     dword ptr [ebp-38], eax
0047B4AD   .  8945 C4       mov     dword ptr [ebp-3C], eax
0047B4B0   .  8945 C0       mov     dword ptr [ebp-40], eax
0047B4B3   .  8945 B0       mov     dword ptr [ebp-50], eax
0047B4B6   .  8945 A0       mov     dword ptr [ebp-60], eax
0047B4B9   .  8945 90       mov     dword ptr [ebp-70], eax
0047B4BC   .  8945 80       mov     dword ptr [ebp-80], eax
0047B4BF   .  8985 70FFFFFF mov     dword ptr [ebp-90], eax
0047B4C5   .  8985 60FFFFFF mov     dword ptr [ebp-A0], eax
0047B4CB   .  8985 50FFFFFF mov     dword ptr [ebp-B0], eax
0047B4D1   .  8985 40FFFFFF mov     dword ptr [ebp-C0], eax
0047B4D7   .  8985 10FFFFFF mov     dword ptr [ebp-F0], eax
0047B4DD   .  8985 00FFFFFF mov     dword ptr [ebp-100], eax
0047B4E3   .  8B45 08       mov     eax, dword ptr [ebp+8]
0047B4E6   .  6A 01         push    1
0047B4E8   .  6A FF         push    -1
0047B4EA   .  8B08          mov     ecx, dword ptr [eax]
0047B4EC   .  6A 01         push    1
0047B4EE   .  68 64324100   push    00413264                         
//;  1将用户名中的a(不分大小写,因为输入用户名的时候会自动转成大写)全转成1
0047B4F3   .  68 5C324100   push    0041325C                         
//;  a下面分别把b-z转换成对应的2-26,下面就不重复叙述了.
0047B4F8   .  51            push    ecx
0047B4F9   .  FFD7          call    edi                              ;  <&MSVBVM60.#712>
0047B4FB   .  8B35 58124000 mov     esi, dword ptr [<&MSVBVM60.__vba>;  MSVBVM60.__vbaStrMove
0047B501   .  8BD0          mov     edx, eax
0047B503   .  8D4D D4       lea     ecx, dword ptr [ebp-2C]
0047B506   .  FFD6          call    esi                              ;  <&MSVBVM60.__vbaStrMove>
0047B508   .  8B55 D4       mov     edx, dword ptr [ebp-2C]
0047B50B   .  6A 01         push    1
0047B50D   .  6A FF         push    -1
0047B50F   .  6A 01         push    1
0047B511   .  68 74324100   push    00413274                         ;  2
0047B516   .  68 6C324100   push    0041326C                         ;  b
0047B51B   .  52            push    edx
0047B51C   .  FFD7          call    edi
0047B51E   .  8BD0          mov     edx, eax
0047B520   .  8D4D D4       lea     ecx, dword ptr [ebp-2C]
0047B523   .  FFD6          call    esi
0047B525   .  8B45 D4       mov     eax, dword ptr [ebp-2C]
0047B528   .  6A 01         push    1
0047B52A   .  6A FF         push    -1
0047B52C   .  6A 01         push    1
0047B52E   .  68 BC2E4100   push    00412EBC                         ;  3
0047B533   .  68 B8224100   push    004122B8                         ;  c
0047B538   .  50            push    eax
0047B539   .  FFD7          call    edi
0047B53B   .  8BD0          mov     edx, eax
0047B53D   .  8D4D D4       lea     ecx, dword ptr [ebp-2C]
0047B540   .  FFD6          call    esi
0047B542   .  8B4D D4       mov     ecx, dword ptr [ebp-2C]
0047B545   .  6A 01         push    1
0047B547   .  6A FF         push    -1
0047B549   .  6A 01         push    1
0047B54B   .  68 D8254100   push    004125D8                         ;  4
0047B550   .  68 10314100   push    00413110                         ;  d
0047B555   .  51            push    ecx
0047B556   .  FFD7          call    edi
0047B558   .  8BD0          mov     edx, eax
0047B55A   .  8D4D D4       lea     ecx, dword ptr [ebp-2C]
0047B55D   .  FFD6          call    esi
0047B55F   .  8B55 D4       mov     edx, dword ptr [ebp-2C]
0047B562   .  6A 01         push    1
0047B564   .  6A FF         push    -1
0047B566   .  6A 01         push    1
0047B568   .  68 2C244100   push    0041242C                         ;  5
0047B56D   .  68 E0254100   push    004125E0                         ;  e
0047B572   .  52            push    edx
0047B573   .  FFD7          call    edi
0047B575   .  8BD0          mov     edx, eax
0047B577   .  8D4D D4       lea     ecx, dword ptr [ebp-2C]
0047B57A   .  FFD6          call    esi
0047B57C   .  6A 01         push    1
0047B57E   .  6A FF         push    -1
0047B580   .  8B45 D4       mov     eax, dword ptr [ebp-2C]
0047B583   .  6A 01         push    1
0047B585   .  68 3C244100   push    0041243C                         ;  6
0047B58A   .  68 34244100   push    00412434                         ;  f
0047B58F   .  50            push    eax
0047B590   .  FFD7          call    edi
0047B592   .  8BD0          mov     edx, eax
0047B594   .  8D4D D4       lea     ecx, dword ptr [ebp-2C]
0047B597   .  FFD6          call    esi
0047B599   .  8B4D D4       mov     ecx, dword ptr [ebp-2C]
0047B59C   .  6A 01         push    1
0047B59E   .  6A FF         push    -1
0047B5A0   .  6A 01         push    1
0047B5A2   .  68 181E4100   push    00411E18                         ;  7
0047B5A7   .  68 501C4100   push    00411C50                         ;  g
0047B5AC   .  51            push    ecx
0047B5AD   .  FFD7          call    edi
0047B5AF   .  8BD0          mov     edx, eax
0047B5B1   .  8D4D D4       lea     ecx, dword ptr [ebp-2C]
0047B5B4   .  FFD6          call    esi
0047B5B6   .  8B55 D4       mov     edx, dword ptr [ebp-2C]
0047B5B9   .  6A 01         push    1
0047B5BB   .  6A FF         push    -1
0047B5BD   .  6A 01         push    1
0047B5BF   .  68 94214100   push    00412194                         ;  8
0047B5C4   .  68 E41F4100   push    00411FE4                         ;  h
0047B5C9   .  52            push    edx
0047B5CA   .  FFD7          call    edi
0047B5CC   .  8BD0          mov     edx, eax
0047B5CE   .  8D4D D4       lea     ecx, dword ptr [ebp-2C]
0047B5D1   .  FFD6          call    esi
0047B5D3   .  8B45 D4       mov     eax, dword ptr [ebp-2C]
0047B5D6   .  6A 01         push    1
0047B5D8   .  6A FF         push    -1
0047B5DA   .  6A 01         push    1
0047B5DC   .  68 D0124100   push    004112D0                         ;  9
0047B5E1   .  68 C8224100   push    004122C8                         ;  i
0047B5E6   .  50            push    eax
0047B5E7   .  FFD7          call    edi
0047B5E9   .  8BD0          mov     edx, eax
0047B5EB   .  8D4D D4       lea     ecx, dword ptr [ebp-2C]
0047B5EE   .  FFD6          call    esi
0047B5F0   .  8B4D D4       mov     ecx, dword ptr [ebp-2C]
0047B5F3   .  6A 01         push    1
0047B5F5   .  6A FF         push    -1
0047B5F7   .  6A 01         push    1
0047B5F9   .  68 4C174100   push    0041174C                         ;  10
0047B5FE   .  68 881A4100   push    00411A88                         ;  j
0047B603   .  51            push    ecx
0047B604   .  FFD7          call    edi
0047B606   .  8BD0          mov     edx, eax
0047B608   .  8D4D D4       lea     ecx, dword ptr [ebp-2C]
0047B60B   .  FFD6          call    esi
0047B60D   .  8B55 D4       mov     edx, dword ptr [ebp-2C]
0047B610   .  6A 01         push    1
0047B612   .  6A FF         push    -1
0047B614   .  6A 01         push    1
0047B616   .  68 E00E4100   push    00410EE0                         ;  11
0047B61B   .  68 C4154100   push    004115C4                         ;  k
0047B620   .  52            push    edx
0047B621   .  FFD7          call    edi
0047B623   .  8BD0          mov     edx, eax
0047B625   .  8D4D D4       lea     ecx, dword ptr [ebp-2C]
0047B628   .  FFD6          call    esi
0047B62A   .  8B45 D4       mov     eax, dword ptr [ebp-2C]
0047B62D   .  6A 01         push    1
0047B62F   .  6A FF         push    -1
0047B631   .  6A 01         push    1
0047B633   .  68 100D4100   push    00410D10                         ;  12
0047B638   .  68 280E4100   push    00410E28                         ;  l
0047B63D   .  50            push    eax
0047B63E   .  FFD7          call    edi
0047B640   .  8BD0          mov     edx, eax
0047B642   .  8D4D D4       lea     ecx, dword ptr [ebp-2C]
0047B645   .  FFD6          call    esi
0047B647   .  8B4D D4       mov     ecx, dword ptr [ebp-2C]
0047B64A   .  6A 01         push    1
0047B64C   .  6A FF         push    -1
0047B64E   .  6A 01         push    1
0047B650   .  68 F8064100   push    004106F8                         ;  13
0047B655   .  68 900A4100   push    00410A90                         ;  m
0047B65A   .  51            push    ecx
0047B65B   .  FFD7          call    edi
0047B65D   .  8BD0          mov     edx, eax
0047B65F   .  8D4D D4       lea     ecx, dword ptr [ebp-2C]
0047B662   .  FFD6          call    esi
0047B664   .  8B55 D4       mov     edx, dword ptr [ebp-2C]
0047B667   .  6A 01         push    1
0047B669   .  6A FF         push    -1
0047B66B   .  6A 01         push    1
0047B66D   .  68 A8E64000   push    0040E6A8                         ;  14
0047B672   .  68 980A4100   push    00410A98                         ;  n
0047B677   .  52            push    edx
0047B678   .  FFD7          call    edi
0047B67A   .  8BD0          mov     edx, eax
0047B67C   .  8D4D D4       lea     ecx, dword ptr [ebp-2C]
0047B67F   .  FFD6          call    esi
0047B681   .  8B45 D4       mov     eax, dword ptr [ebp-2C]
0047B684   .  6A 01         push    1
0047B686   .  6A FF         push    -1
0047B688   .  6A 01         push    1
0047B68A   .  68 80324100   push    00413280                         ;  15
0047B68F   .  68 9CFB4000   push    0040FB9C                         ;  o
0047B694   .  50            push    eax
0047B695   .  FFD7          call    edi
0047B697   .  8BD0          mov     edx, eax
0047B699   .  8D4D D4       lea     ecx, dword ptr [ebp-2C]
0047B69C   .  FFD6          call    esi
0047B69E   .  8B4D D4       mov     ecx, dword ptr [ebp-2C]
0047B6A1   .  6A 01         push    1
0047B6A3   .  6A FF         push    -1
0047B6A5   .  6A 01         push    1
0047B6A7   .  68 94324100   push    00413294                         ;  16
0047B6AC   .  68 8C324100   push    0041328C                         ;  p
0047B6B1   .  51            push    ecx
0047B6B2   .  FFD7          call    edi
0047B6B4   .  8BD0          mov     edx, eax
0047B6B6   .  8D4D D4       lea     ecx, dword ptr [ebp-2C]
0047B6B9   .  FFD6          call    esi
0047B6BB   .  8B55 D4       mov     edx, dword ptr [ebp-2C]
0047B6BE   .  6A 01         push    1
0047B6C0   .  6A FF         push    -1
0047B6C2   .  6A 01         push    1
0047B6C4   .  68 A8324100   push    004132A8                         ;  17
0047B6C9   .  68 A0324100   push    004132A0                         ;  q
0047B6CE   .  52            push    edx
0047B6CF   .  FFD7          call    edi
0047B6D1   .  8BD0          mov     edx, eax
0047B6D3   .  8D4D D4       lea     ecx, dword ptr [ebp-2C]
0047B6D6   .  FFD6          call    esi
0047B6D8   .  8B45 D4       mov     eax, dword ptr [ebp-2C]
0047B6DB   .  6A 01         push    1
0047B6DD   .  6A FF         push    -1
0047B6DF   .  6A 01         push    1
0047B6E1   .  68 BC324100   push    004132BC                         ;  18
0047B6E6   .  68 B4324100   push    004132B4                         ;  r
0047B6EB   .  50            push    eax
0047B6EC   .  FFD7          call    edi
0047B6EE   .  8BD0          mov     edx, eax
0047B6F0   .  8D4D D4       lea     ecx, dword ptr [ebp-2C]
0047B6F3   .  FFD6          call    esi
0047B6F5   .  8B4D D4       mov     ecx, dword ptr [ebp-2C]
0047B6F8   .  6A 01         push    1
0047B6FA   .  6A FF         push    -1
0047B6FC   .  6A 01         push    1
0047B6FE   .  68 D0324100   push    004132D0                         ;  19
0047B703   .  68 C8324100   push    004132C8                         ;  s
0047B708   .  51            push    ecx
0047B709   .  FFD7          call    edi
0047B70B   .  8BD0          mov     edx, eax
0047B70D   .  8D4D D4       lea     ecx, dword ptr [ebp-2C]
0047B710   .  FFD6          call    esi
0047B712   .  8B55 D4       mov     edx, dword ptr [ebp-2C]
0047B715   .  6A 01         push    1
0047B717   .  6A FF         push    -1
0047B719   .  6A 01         push    1
0047B71B   .  68 E4324100   push    004132E4                         ;  20
0047B720   .  68 DC324100   push    004132DC                         ;  t
0047B725   .  52            push    edx
0047B726   .  FFD7          call    edi
0047B728   .  8BD0          mov     edx, eax
0047B72A   .  8D4D D4       lea     ecx, dword ptr [ebp-2C]
0047B72D   .  FFD6          call    esi
0047B72F   .  8B45 D4       mov     eax, dword ptr [ebp-2C]
0047B732   .  6A 01         push    1
0047B734   .  6A FF         push    -1
0047B736   .  6A 01         push    1
0047B738   .  68 F8324100   push    004132F8                         ;  21
0047B73D   .  68 F0324100   push    004132F0                         ;  u
0047B742   .  50            push    eax
0047B743   .  FFD7          call    edi
0047B745   .  8BD0          mov     edx, eax
0047B747   .  8D4D D4       lea     ecx, dword ptr [ebp-2C]
0047B74A   .  FFD6          call    esi
0047B74C   .  8B4D D4       mov     ecx, dword ptr [ebp-2C]
0047B74F   .  6A 01         push    1
0047B751   .  6A FF         push    -1
0047B753   .  6A 01         push    1
0047B755   .  68 0C334100   push    0041330C                         ;  22
0047B75A   .  68 04334100   push    00413304                         ;  v
0047B75F   .  51            push    ecx
0047B760   .  FFD7          call    edi
0047B762   .  8BD0          mov     edx, eax
0047B764   .  8D4D D4       lea     ecx, dword ptr [ebp-2C]
0047B767   .  FFD6          call    esi
0047B769   .  8B55 D4       mov     edx, dword ptr [ebp-2C]
0047B76C   .  6A 01         push    1
0047B76E   .  6A FF         push    -1
0047B770   .  6A 01         push    1
0047B772   .  68 20334100   push    00413320                         ;  23
0047B777   .  68 18334100   push    00413318                         ;  w
0047B77C   .  52            push    edx
0047B77D   .  FFD7          call    edi
0047B77F   .  8BD0          mov     edx, eax
0047B781   .  8D4D D4       lea     ecx, dword ptr [ebp-2C]
0047B784   .  FFD6          call    esi
0047B786   .  8B45 D4       mov     eax, dword ptr [ebp-2C]
0047B789   .  6A 01         push    1
0047B78B   .  6A FF         push    -1
0047B78D   .  6A 01         push    1
0047B78F   .  68 34334100   push    00413334                         ;  24
0047B794   .  68 2C334100   push    0041332C                         ;  x
0047B799   .  50            push    eax
0047B79A   .  FFD7          call    edi
0047B79C   .  8BD0          mov     edx, eax
0047B79E   .  8D4D D4       lea     ecx, dword ptr [ebp-2C]
0047B7A1   .  FFD6          call    esi
0047B7A3   .  8B4D D4       mov     ecx, dword ptr [ebp-2C]
0047B7A6   .  6A 01         push    1
0047B7A8   .  6A FF         push    -1
0047B7AA   .  6A 01         push    1
0047B7AC   .  68 48334100   push    00413348                         ;  25
0047B7B1   .  68 40334100   push    00413340                         ;  y
0047B7B6   .  51            push    ecx
0047B7B7   .  FFD7          call    edi
0047B7B9   .  8BD0          mov     edx, eax
0047B7BB   .  8D4D D4       lea     ecx, dword ptr [ebp-2C]
0047B7BE   .  FFD6          call    esi
0047B7C0   .  8B55 D4       mov     edx, dword ptr [ebp-2C]
0047B7C3   .  6A 01         push    1
0047B7C5   .  6A FF         push    -1
0047B7C7   .  6A 01         push    1
0047B7C9   .  68 5C334100   push    0041335C                         ;  26
0047B7CE   .  68 54334100   push    00413354                         ;  z
0047B7D3   .  52            push    edx
0047B7D4   .  FFD7          call    edi
0047B7D6   .  8BD0          mov     edx, eax
0047B7D8   .  8D4D D4       lea     ecx, dword ptr [ebp-2C]
0047B7DB   .  FFD6          call    esi
0047B7DD   .  8B45 D4       mov     eax, dword ptr [ebp-2C]
0047B7E0   .  50            push    eax
0047B7E1   .  FF15 2C104000 call    dword ptr [<&MSVBVM60.__vbaLenBs>;  MSVBVM60.__vbaLenBstr
0047B7E7   .  8BC8          mov     ecx, eax
0047B7E9   .  FF15 04114000 call    dword ptr [<&MSVBVM60.__vbaI2I4>>;  MSVBVM60.__vbaI2I4
0047B7EF   .  8B3D 98114000 mov     edi, dword ptr [<&MSVBVM60.__vba>;  MSVBVM60.__vbaStrVarVal
0047B7F5   .  8BD8          mov     ebx, eax
0047B7F7   >  66:83FB 06    cmp     bx, 6                           
//比较结果是否大于6位,大的话继续运算
0047B7FB   .  0F8E 1D020000 jle     0047BA1E
0047B801   .  0FBFCB        movsx   ecx, bx
0047B804   .  898D F4FEFFFF mov     dword ptr [ebp-10C], ecx
0047B80A   .  895D EC       mov     dword ptr [ebp-14], ebx
0047B80D   .  DB85 F4FEFFFF fild    dword ptr [ebp-10C]                    
//将转换好的用户名的位数载入
0047B813   .  DD9D ECFEFFFF fstp    qword ptr [ebp-114]
0047B819   .  DD85 ECFEFFFF fld     qword ptr [ebp-114]
0047B81F   .  833D 00D04700>cmp     dword ptr [47D000], 0
0047B826   .  75 08         jnz     short 0047B830
0047B828   .  DC35 80234000 fdiv    qword ptr [402380]                     
//位数除以2
0047B82E   .  EB 11         jmp     short 0047B841
0047B830   >  FF35 84234000 push    dword ptr [402384]
0047B836   .  FF35 80234000 push    dword ptr [402380]
0047B83C   .  E8 A36BF8FF   call    
0047B841   >  DFE0          fstsw   ax
0047B843   .  A8 0D         test    al, 0D
0047B845   .  0F85 61020000 jnz     0047BAAC
0047B84B   .  FF15 44124000 call    dword ptr [<&MSVBVM60.__vbaR8Int>;  MSVBVM60.__vbaR8IntI2
0047B851   .  66:8B55 EC    mov     dx, word ptr [ebp-14]
0047B855   .  8BD8          mov     ebx, eax
0047B857   .  B8 02000000   mov     eax, 2
0047B85C   .  B9 01000000   mov     ecx, 1
0047B861   .  8985 60FFFFFF mov     dword ptr [ebp-A0], eax
0047B867   .  8985 50FFFFFF mov     dword ptr [ebp-B0], eax
0047B86D   .  8985 40FFFFFF mov     dword ptr [ebp-C0], eax
0047B873   .  898D 68FFFFFF mov     dword ptr [ebp-98], ecx
0047B879   .  898D 48FFFFFF mov     dword ptr [ebp-B8], ecx
0047B87F   .  8D85 60FFFFFF lea     eax, dword ptr [ebp-A0]
0047B885   .  66:8995 58FFF>mov     word ptr [ebp-A8], dx
0047B88C   .  8D8D 50FFFFFF lea     ecx, dword ptr [ebp-B0]
0047B892   .  50            push    eax
0047B893   .  8D95 40FFFFFF lea     edx, dword ptr [ebp-C0]
0047B899   .  51            push    ecx
0047B89A   .  8D85 00FFFFFF lea     eax, dword ptr [ebp-100]
0047B8A0   .  52            push    edx
0047B8A1   .  8D8D 10FFFFFF lea     ecx, dword ptr [ebp-F0]
0047B8A7   .  50            push    eax
0047B8A8   .  8D55 DC       lea     edx, dword ptr [ebp-24]
0047B8AB   .  51            push    ecx
0047B8AC   .  52            push    edx
0047B8AD   .  FF15 84104000 call    dword ptr [<&MSVBVM60.__vbaVarFo>;  MSVBVM60.__vbaVarForInit 
//初始化循环,循环次数为转换后用户名的长度
0047B8B5   .^ 0F84 3CFFFFFF je      0047B7F7
0047B8BB   .  66:8B4D EC    mov     cx, word ptr [ebp-14]
0047B8BF   .  8D45 D4       lea     eax, dword ptr [ebp-2C]
0047B8C2   .  66:2BCB       sub     cx, bx
0047B8C5   .  8985 58FFFFFF mov     dword ptr [ebp-A8], eax
0047B8CB   .  0F80 E0010000 jo      0047BAB1
0047B8D1   .  0FBFD1        movsx   edx, cx
0047B8D4   .  8D85 50FFFFFF lea     eax, dword ptr [ebp-B0]
0047B8DA   .  52            push    edx
0047B8DB   .  8D4D A0       lea     ecx, dword ptr [ebp-60]
0047B8DE   .  50            push    eax
0047B8DF   .  51            push    ecx
0047B8E0   .  C785 50FFFFFF>mov     dword ptr [ebp-B0], 4008
0047B8EA   .  FF15 64124000 call    dword ptr [<&MSVBVM60.#619>]     ;  MSVBVM60.rtcRightCharVar
//取转换或的用户名的右半边,如果是位数是单数则要比左半边多1位
0047B8F0   .  8D55 A0       lea     edx, dword ptr [ebp-60]
0047B8F3   .  8D45 C4       lea     eax, dword ptr [ebp-3C]
0047B8F6   .  52            push    edx
0047B8F7   .  50            push    eax
0047B8F8   .  FFD7          call    edi
0047B8FA   .  50            push    eax
0047B8FB   .  FF15 90124000 call    dword ptr [<&MSVBVM60.#581>]     ;  MSVBVM60.rtcR8ValFromBstr
0047B901   .  DD9D 28FFFFFF fstp    qword ptr [ebp-D8]
0047B907   .  8D55 DC       lea     edx, dword ptr [ebp-24]
0047B90A   .  8D4D D4       lea     ecx, dword ptr [ebp-2C]
0047B90D   .  52            push    edx
0047B90E   .  898D 48FFFFFF mov     dword ptr [ebp-B8], ecx
0047B914   .  C785 40FFFFFF>mov     dword ptr [ebp-C0], 4008
0047B91E   .  FF15 04124000 call    dword ptr [<&MSVBVM60.__vbaI4Var>;  MSVBVM60.__vbaI4Var
0047B924   .  50            push    eax
0047B925   .  8D85 40FFFFFF lea     eax, dword ptr [ebp-C0]
0047B92B   .  8D4D 90       lea     ecx, dword ptr [ebp-70]
0047B92E   .  50            push    eax
0047B92F   .  51            push    ecx
0047B930   .  FF15 4C124000 call    dword ptr [<&MSVBVM60.#617>]     ;  MSVBVM60.rtcLeftCharVar 
//取第n位(n是循环次数)
0047B936   .  8D55 90       lea     edx, dword ptr [ebp-70]     
//不知道为什么2只后都会少取一位,哪位知道解释下
0047B939   .  8D45 C0       lea     eax, dword ptr [ebp-40]     
//会多一个空字符,不知道为什么
0047B93C   .  52            push    edx
0047B93D   .  50            push    eax
0047B93E   .  FFD7          call    edi
0047B940   .  50            push    eax
0047B941   .  FF15 90124000 call    dword ptr [<&MSVBVM60.#581>]     ;  MSVBVM60.rtcR8ValFromBstr
0047B947   .  DD9D 20FFFFFF fstp    qword ptr [ebp-E0]               ;  1
0047B94D   .  0FBFD3        movsx   edx, bx
0047B950   .  8D4D D4       lea     ecx, dword ptr [ebp-2C]
0047B953   .  8D85 60FFFFFF lea     eax, dword ptr [ebp-A0]
0047B959   .  898D 68FFFFFF mov     dword ptr [ebp-98], ecx
0047B95F   .  52            push    edx
0047B960   .  8D4D B0       lea     ecx, dword ptr [ebp-50]
0047B963   .  50            push    eax
0047B964   .  51            push    ecx
0047B965   .  C785 60FFFFFF>mov     dword ptr [ebp-A0], 4008
0047B96F   .  FF15 4C124000 call    dword ptr [<&MSVBVM60.#617>]     ;  MSVBVM60.rtcLeftCharVar  //取左半边
0047B975   .  8D55 B0       lea     edx, dword ptr [ebp-50]     //和上面的问题一样,也会少一位
0047B978   .  8D45 C8       lea     eax, dword ptr [ebp-38]
0047B97B   .  52            push    edx
0047B97C   .  50            push    eax
0047B97D   .  FFD7          call    edi
0047B97F   .  50            push    eax
0047B980   .  FF15 90124000 call    dword ptr [<&MSVBVM60.#581>]     ;  MSVBVM60.rtcR8ValFromBstr
0047B986   .  DC85 28FFFFFF fadd    qword ptr [ebp-D8]       //左半部分加上右半部分
0047B98C   .  8D4D 80       lea     ecx, dword ptr [ebp-80]
0047B98F   .  8D95 70FFFFFF lea     edx, dword ptr [ebp-90]
0047B995   .  51            push    ecx
0047B996   .  52            push    edx
0047B997   .  DC85 20FFFFFF fadd    qword ptr [ebp-E0]       //在加上左边的n位(n为循环次数)
0047B99D   .  C745 80 05000>mov     dword ptr [ebp-80], 5
0047B9A4   .  DD5D 88       fstp    qword ptr [ebp-78]
0047B9A7   .  DFE0          fstsw   ax
0047B9A9   .  A8 0D         test    al, 0D
0047B9AB   .  0F85 FB000000 jnz     0047BAAC
0047B9B1   .  FF15 28124000 call    dword ptr [<&MSVBVM60.#613>]     ;  MSVBVM60.rtcVarStrFromVar
0047B9B7   .  8D85 70FFFFFF lea     eax, dword ptr [ebp-90]
0047B9BD   .  50            push    eax
0047B9BE   .  FF15 28104000 call    dword ptr [<&MSVBVM60.__vbaStrVa>;  MSVBVM60.__vbaStrVarMove
0047B9C4   .  8BD0          mov     edx, eax
0047B9C6   .  8D4D D4       lea     ecx, dword ptr [ebp-2C]
0047B9C9   .  FFD6          call    esi
0047B9CB   .  8D4D C0       lea     ecx, dword ptr [ebp-40]
0047B9CE   .  8D55 C4       lea     edx, dword ptr [ebp-3C]
0047B9D1   .  51            push    ecx
0047B9D2   .  52            push    edx
0047B9D3   .  8D45 C8       lea     eax, dword ptr [ebp-38]
0047B9D6   .  50            push    eax
0047B9D7   .  6A 03         push    3
0047B9D9   .  FF15 EC114000 call    dword ptr [<&MSVBVM60.__vbaFreeS>;  MSVBVM60.__vbaFreeStrList
0047B9DF   .  8D8D 70FFFFFF lea     ecx, dword ptr [ebp-90]
0047B9E5   .  8D55 80       lea     edx, dword ptr [ebp-80]
0047B9E8   .  51            push    ecx
0047B9E9   .  8D45 90       lea     eax, dword ptr [ebp-70]
0047B9EC   .  52            push    edx
0047B9ED   .  8D4D A0       lea     ecx, dword ptr [ebp-60]
0047B9F0   .  50            push    eax
0047B9F1   .  8D55 B0       lea     edx, dword ptr [ebp-50]
0047B9F4   .  51            push    ecx
0047B9F5   .  52            push    edx
0047B9F6   .  6A 05         push    5
0047B9F8   .  FF15 34104000 call    dword ptr [<&MSVBVM60.__vbaFreeV>;  MSVBVM60.__vbaFreeVarList
0047B9FE   .  83C4 28       add     esp, 28
0047BA01   .  8D85 00FFFFFF lea     eax, dword ptr [ebp-100]
0047BA07   .  8D8D 10FFFFFF lea     ecx, dword ptr [ebp-F0]
0047BA0D   .  8D55 DC       lea     edx, dword ptr [ebp-24]
0047BA10   .  50            push    eax
0047BA11   .  51            push    ecx
0047BA12   .  52            push    edx
0047BA13   .  FF15 78124000 call    dword ptr [<&MSVBVM60.__vbaVarFo>;  MSVBVM60.__vbaVarForNext
0047BA19   .^ E9 95FEFFFF   jmp     0047B8B3
0047BA1E   >  8B45 D4       mov     eax, dword ptr [ebp-2C]
0047BA21   .  50            push    eax
0047BA22   .  FF15 90124000 call    dword ptr [<&MSVBVM60.#581>]     ;  MSVBVM60.rtcR8ValFromBstr
0047BA28   .  DD5D CC       fstp    qword ptr [ebp-34]
0047BA2B   .  9B            wait
0047BA2C   .  68 96BA4700   push    0047BA96
0047BA31   .  EB 37         jmp     short 0047BA6A
0047BA33   .  8D4D C0       lea     ecx, dword ptr [ebp-40]
0047BA36   .  8D55 C4       lea     edx, dword ptr [ebp-3C]
0047BA39   .  51            push    ecx
0047BA3A   .  8D45 C8       lea     eax, dword ptr [ebp-38]
0047BA3D   .  52            push    edx
0047BA3E   .  50            push    eax
0047BA3F   .  6A 03         push    3
0047BA41   .  FF15 EC114000 call    dword ptr [<&MSVBVM60.__vbaFreeS>;  MSVBVM60.__vbaFreeStrList
0047BA47   .  8D8D 70FFFFFF lea     ecx, dword ptr [ebp-90]
0047BA4D   .  8D55 80       lea     edx, dword ptr [ebp-80]
0047BA50   .  51            push    ecx
0047BA51   .  8D45 90       lea     eax, dword ptr [ebp-70]
0047BA54   .  52            push    edx
0047BA55   .  8D4D A0       lea     ecx, dword ptr [ebp-60]
0047BA58   .  50            push    eax
0047BA59   .  8D55 B0       lea     edx, dword ptr [ebp-50]
0047BA5C   .  51            push    ecx
0047BA5D   .  52            push    edx
0047BA5E   .  6A 05         push    5
0047BA60   .  FF15 34104000 call    dword ptr [<&MSVBVM60.__vbaFreeV>;  MSVBVM60.__vbaFreeVarList
0047BA66   .  83C4 28       add     esp, 28
0047BA69   .  C3            retn
0047BA6A   >  8D85 00FFFFFF lea     eax, dword ptr [ebp-100]
0047BA70   .  8D8D 10FFFFFF lea     ecx, dword ptr [ebp-F0]
0047BA76   .  50            push    eax
0047BA77   .  51            push    ecx
0047BA78   .  6A 02         push    2
0047BA7A   .  FF15 34104000 call    dword ptr [<&MSVBVM60.__vbaFreeV>;  MSVBVM60.__vbaFreeVarList
0047BA80   .  83C4 0C       add     esp, 0C
0047BA83   .  8D4D DC       lea     ecx, dword ptr [ebp-24]
0047BA86   .  FF15 20104000 call    dword ptr [<&MSVBVM60.__vbaFreeV>;  MSVBVM60.__vbaFreeVar
0047BA8C   .  8D4D D4       lea     ecx, dword ptr [ebp-2C]
0047BA8F   .  FF15 84124000 call    dword ptr [<&MSVBVM60.__vbaFreeS>;  MSVBVM60.__vbaFreeStr
0047BA95   .  C3            retn
0047BA96   .  8B4D F0       mov     ecx, dword ptr [ebp-10]
0047BA99   .  5F            pop     edi
0047BA9A   .  DD45 CC       fld     qword ptr [ebp-34]
0047BA9D   .  5E            pop     esi
0047BA9E   .  64:890D 00000>mov     dword ptr fs:[0], ecx
0047BAA5   .  5B            pop     ebx
0047BAA6   .  8BE5          mov     esp, ebp
0047BAA8   .  5D            pop     ebp
0047BAA9   .  C2 0400       retn    4


最后给出一组正确的注册码
用户名:noirlucifer
产品id:1234567890
注册码:4E5D5-A2AAC7-562C42

ps:每个用户名都对应多个注册码,不知是作者失误还是故意.

上一篇   下一篇