飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 8915|回复: 17

[原创] PowerCMD 2.1版注册解码实录

    [复制链接]
  • TA的每日心情
    开心
    2015-8-23 23:49
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2011-1-14 00:58:04 | 显示全部楼层 |阅读模式
    本帖最后由 GGLHY 于 2011-1-14 01:30 编辑

    先声明下,文章有点长。如果大家略过对注册码格式检测这部分(二)的话,那么你的眼睛会少受点罪了!呵呵


                                     PowerCMD 2.1版注册解码实录

    查壳:Microsoft Visual Studio .NET 2005 -- 2008 -> Microsoft Corporation
    经过OD跟踪,得出注册码形如XXXXX-XXXXX-XXXXX-XXXXX(可参见对注册码格式检测部分),分别设4部分为S1、S2、S3、S4
                              S1 -  S2 -  S3 -  S4

    直接来到这里吧:

    005E0D1C  |.  8D55 B8       lea     edx, [ebp-48]      ; |
    005E0D1F  |.  52            push    edx                ; |Arg1
    005E0D20  |.  E8 5B9B0100   call    005FA880           ; \PowerCmd.005FA880 算法call,F7
    005E0D25  |.  83C4 08       add     esp, 8
    005E0D28  |.  0FB6C0        movzx   eax, al
    005E0D2B  |.  83F8 01       cmp     eax, 1             ;  标志位哦!
    005E0D2E  |.  75 2D         jnz     short 005E0D5D     ;  一失足就成千古恨啊...



                                           一、算法
    ////////////////////////////////////////////////////////////////////////////////////////////
    算法call,F7:
    005FA880  /$  55            push    ebp                 ;本地调用来自 005E0D20(注册), 006007A5(重启验证)
    005FA881  |.  8BEC          mov     ebp, esp
    005FA883  |.  6A FF         push    -1
    005FA885  |.  68 4DA56100   push    0061A54D
    005FA88A  |.  64:A1 0000000>mov     eax, fs:[0]
    005FA890  |.  50            push    eax
    005FA891  |.  81EC BC000000 sub     esp, 0BC
    005FA897  |.  A1 58316D00   mov     eax, [6D3158]
    005FA89C  |.  33C5          xor     eax, ebp
    005FA89E  |.  8945 E4       mov     [ebp-1C], eax
    005FA8A1  |.  56            push    esi
    005FA8A2  |.  50            push    eax
    005FA8A3  |.  8D45 F4       lea     eax, [ebp-C]
    005FA8A6  |.  64:A3 0000000>mov     fs:[0], eax
    005FA8AC  |.  C645 F3 00    mov     byte ptr [ebp-D], >
    005FA8B0  |.  8B4D 0C       mov     ecx, [ebp+C]
    005FA8B3  |.  E8 28A2E1FF   call    00414AE0
    005FA8B8  |.  83F8 17       cmp     eax, 17            ;  注册码长度为23位吗?不是就错!
    005FA8BB  |.  0F85 DA050000 jnz     005FAE9B
    005FA8C1  |.  6A 00         push    0
    005FA8C3  |.  6A 2D         push    2D                 ;  注意这个2D(“-”),想想看说明了什么?
    005FA8C5  |.  8B4D 0C       mov     ecx, [ebp+C]
    005FA8C8  |.  E8 133EE3FF   call    0042E6E0           ;对注册码格式的检测及得到假码中第一个“-”前部分的长度
    005FA8CD  |.  8945 E8       mov     [ebp-18], eax      ;  
    005FA8D0  |.  6A 01         push    1
    005FA8D2  |.  6A 2D         push    2D                 ;  这里有一个2D(“-”)
    005FA8D4  |.  8B4D 0C       mov     ecx, [ebp+C]
    005FA8D7  |.  E8 043EE3FF   call    0042E6E0           ;对注册码格式的检测及得到假码中最后一个“-”前部分的长度
    005FA8DC  |.  8945 EC       mov     [ebp-14], eax      ;  
    005FA8DF  |.  8B45 E8       mov     eax, [ebp-18]      ;  
    005FA8E2  |.  83C0 01       add     eax, 1
    005FA8E5  |.  3945 EC       cmp     [ebp-14], eax      ;  假码中第一个“-”前(含)部分的长度:最后一个“-”前部分的长度
    005FA8E8  |.  0F8E AD050000 jle     005FAE9B
    005FA8EE  |.  837D E8 00    cmp     dword ptr [ebp-18]>,0;  假码中第一个“-”前部分的长度
    005FA8F2  |.  0F8E A3050000 jle     005FAE9B
    005FA8F8  |.  8B4D EC       mov     ecx, [ebp-14]      ;  假码最后一个“-”前部分的长度
    005FA8FB  |.  2B4D E8       sub     ecx, [ebp-18]      ;  得到注册码中第一个“-”(含)和最后一个“-”之间部分
    005FA8FE  |.  83E9 01       sub     ecx, 1             ;  呵呵,这里有个-1(去掉第一个“-”)
    005FA901  |.  51            push    ecx                ; /Arg3  注册码中第一个“-”(含)和最后一个“-”之间部分的长度
    005FA902  |.  8B55 E8       mov     edx, [ebp-18]      ; |注册码中第一个“-”前的长度
    005FA905  |.  83C2 01       add     edx, 1             ; |
    005FA908  |.  52            push    edx                ; |Arg2注册码中第一个“-”(含)前的长度
    005FA909  |.  8D45 C8       lea     eax, [ebp-38]      ; |
    005FA90C  |.  50            push    eax                ; |Arg1
    005FA90D  |.  8B4D 0C       mov     ecx, [ebp+C]       ; |
    005FA910  |.  E8 5B5AE3FF   call    00430370           ; \PowerCmd.00430370
    005FA915  |.  C745 FC 00000>mov     dword ptr [ebp-4],>
    005FA91C  |.  6A 00         push    0
    005FA91E  |.  6A 2D         push    2D                 ;还有一个2D(“-”)
    005FA920  |.  8D4D C8       lea     ecx, [ebp-38]
    005FA923  |.  E8 B83DE3FF   call    0042E6E0            ;对注册码格式的检测及假码中第一个“-”和第二个“-”之间部分长度
    005FA928  |.  8945 C4       mov     [ebp-3C], eax
    005FA92B  |.  8B4D E8       mov     ecx, [ebp-18]       ;假码中第一个“-”前部分的长度
    005FA92E  |.  8B55 C4       mov     edx, [ebp-3C]
    005FA931  |.  8D440A 01     lea     eax, [edx+ecx+1]    ;假码中第二个“-”前部分的长度
    005FA935  |.  8945 C4       mov     [ebp-3C], eax
    005FA938  |.  837D E8 05    cmp     dword ptr [ebp-18]> 5; 注册码第一个“-”前的部分的长度与5比较
    005FA93C  |.  0F85 4A050000 jnz     005FAE8C             ;不相等就直接跳过让[EBP-D]不为零的环节了!
    005FA942  |.  8B4D E8       mov     ecx, [ebp-18]        ;假码中第一个“-”前部分的长度
    005FA945  |.  83C1 06       add     ecx, 6               ;呵呵,猜猜这里为什么是 + 6
    005FA948  |.  394D C4       cmp     [ebp-3C], ecx      ;  长度比较
    005FA94B  |.  0F85 3B050000 jnz     005FAE8C              ;即第二个“-”之前的长度应该为第一个“-”前的长度+6
    005FA951  |.  8B55 C4       mov     edx, [ebp-3C]         ;即第二个“-”之前的长度
    005FA954  |.  83C2 06       add     edx, 6
    005FA957  |.  3955 EC       cmp     [ebp-14], edx         ;(再+6 后的长度):假码最后一个“-”之前的长度
    005FA95A  |.  0F85 2C050000 jnz     005FAE8C             ;不等就跳
    005FA960  |.  8B45 E8       mov     eax, [ebp-18]         ;假码中第一个“-”前部分长度
    005FA963  |.  50            push    eax                ; /Arg3
    005FA964  |.  6A 00         push    0                  ; |Arg2 = 00000000
    005FA966  |.  8D8D 70FFFFFF lea     ecx, [ebp-90]      ; |
    005FA96C  |.  51            push    ecx                ; |Arg1
    005FA96D  |.  8B4D 0C       mov     ecx, [ebp+C]       ; |
    005FA970  |.  E8 FB59E3FF   call    00430370           ; \PowerCmd.00430370  对注册码格式的检测2
    005FA975  |.  C645 FC 01    mov     byte ptr [ebp-4], >
    005FA979  |.  8B55 C4       mov     edx, [ebp-3C]
    005FA97C  |.  2B55 E8       sub     edx, [ebp-18]
    005FA97F  |.  83EA 01       sub     edx, 1
    005FA982  |.  52            push    edx                ; /Arg3
    005FA983  |.  8B45 E8       mov     eax, [ebp-18]      ; |
    005FA986  |.  83C0 01       add     eax, 1             ; |
    005FA989  |.  50            push    eax                ; |Arg2
    005FA98A  |.  8D4D 8C       lea     ecx, [ebp-74]      ; |
    005FA98D  |.  51            push    ecx                ; |Arg1
    005FA98E  |.  8B4D 0C       mov     ecx, [ebp+C]       ; |
    005FA991  |.  E8 DA59E3FF   call    00430370           ; \PowerCmd.00430370
    005FA996  |.  C645 FC 02    mov     byte ptr [ebp-4], >
    005FA99A  |.  8B55 EC       mov     edx, [ebp-14]
    005FA99D  |.  2B55 C4       sub     edx, [ebp-3C]
    005FA9A0  |.  83EA 01       sub     edx, 1
    005FA9A3  |.  52            push    edx                ; /Arg3
    005FA9A4  |.  8B45 C4       mov     eax, [ebp-3C]      ; |
    005FA9A7  |.  83C0 01       add     eax, 1             ; |
    005FA9AA  |.  50            push    eax                ; |Arg2
    005FA9AB  |.  8D8D 54FFFFFF lea     ecx, [ebp-AC]      ; |
    005FA9B1  |.  51            push    ecx                ; |Arg1
    005FA9B2  |.  8B4D 0C       mov     ecx, [ebp+C]       ; |
    005FA9B5  |.  E8 B659E3FF   call    00430370           ; \PowerCmd.00430370
    005FA9BA  |.  C645 FC 03    mov     byte ptr [ebp-4], >
    005FA9BE  |.  8B4D 0C       mov     ecx, [ebp+C]
    005FA9C1  |.  E8 1AA1E1FF   call    00414AE0
    005FA9C6  |.  2B45 EC       sub     eax, [ebp-14]
    005FA9C9  |.  83E8 01       sub     eax, 1
    005FA9CC  |.  50            push    eax
    005FA9CD  |.  8D55 A8       lea     edx, [ebp-58]
    005FA9D0  |.  52            push    edx
    005FA9D1  |.  8B4D 0C       mov     ecx, [ebp+C]
    005FA9D4  |.  E8 875AE3FF   call    00430460
    005FA9D9  |.  C645 FC 04    mov     byte ptr [ebp-4], >
    005FA9DD  |.  8D8D 70FFFFFF lea     ecx, [ebp-90]
    005FA9E3  |.  E8 F8A0E1FF   call    00414AE0           ;  得到S1的长度
    005FA9E8  |.  83F8 05       cmp     eax, 5             ;  判断这里应该是注册码每段由5位组成!!!
    005FA9EB  |.  0F85 65040000 jnz     005FAE56
    005FA9F1  |.  8D4D 8C       lea     ecx, [ebp-74]
    005FA9F4  |.  E8 E7A0E1FF   call    00414AE0           ;  得到S2的长度
    005FA9F9  |.  83F8 05       cmp     eax, 5
    005FA9FC  |.  0F85 54040000 jnz     005FAE56
    005FAA02  |.  8D8D 54FFFFFF lea     ecx, [ebp-AC]
    005FAA08  |.  E8 D3A0E1FF   call    00414AE0           ;  得到S3的长度
    005FAA0D  |.  83F8 05       cmp     eax, 5
    005FAA10  |.  0F85 40040000 jnz     005FAE56
    005FAA16  |.  8D4D A8       lea     ecx, [ebp-58]
    005FAA19  |.  E8 C2A0E1FF   call    00414AE0           ;  得到S4的长度
    005FAA1E  |.  83F8 05       cmp     eax, 5
    005FAA21  |.  0F85 2F040000 jnz     005FAE56
    005FAA27  |.  8D8D 70FFFFFF lea     ecx, [ebp-90]
    005FAA2D  |.  E8 2E3FE3FF   call    0042E960
    005FAA32  |.  8D4D 8C       lea     ecx, [ebp-74]
    005FAA35  |.  E8 263FE3FF   call    0042E960
    005FAA3A  |.  8D8D 54FFFFFF lea     ecx, [ebp-AC]
    005FAA40  |.  E8 1B3FE3FF   call    0042E960
    005FAA45  |.  8D4D A8       lea     ecx, [ebp-58]
    005FAA48  |.  E8 133FE3FF   call    0042E960
    005FAA4D  |.  6A 00         push    0                  ; /Arg1 = 00000000
    005FAA4F  |.  8D8D 70FFFFFF lea     ecx, [ebp-90]      ; |
    005FAA55  |.  E8 36DDE0FF   call    00408790           ; \PowerCmd.00408790
    005FAA5A  |.  0FB730        movzx   esi, word ptr [eax>;  取第一段S1的第一位ASC
    005FAA5D  |.  6A 00         push    0                  ; /Arg1 = 00000000
    005FAA5F  |.  8D4D 8C       lea     ecx, [ebp-74]      ; |
    005FAA62  |.  E8 29DDE0FF   call    00408790           ; \PowerCmd.00408790
    005FAA67  |.  0FB700        movzx   eax, word ptr [eax>;  取第二段S2的第1位ASC
    005FAA6A  |.  03F0          add     esi, eax           ;  二者相加,设为Q1
    005FAA6C  |.  89B5 50FFFFFF mov     [ebp-B0], esi
    005FAA72  |.  6A 01         push    1                  ; /Arg1 = 00000001
    005FAA74  |.  8D8D 70FFFFFF lea     ecx, [ebp-90]      ; |
    005FAA7A  |.  E8 11DDE0FF   call    00408790           ; \PowerCmd.00408790
    005FAA7F  |.  0FB730        movzx   esi, word ptr [eax>;  取第一段S1的第2位ASC
    005FAA82  |.  6A 01         push    1                  ; /Arg1 = 00000001
    005FAA84  |.  8D4D 8C       lea     ecx, [ebp-74]      ; |
    005FAA87  |.  E8 04DDE0FF   call    00408790           ; \PowerCmd.00408790
    005FAA8C  |.  0FB708        movzx   ecx, word ptr [eax>;  取第二段S1的第二位ASC
    005FAA8F  |.  03F1          add     esi, ecx           ;  二者相加,设为Q2
    005FAA91  |.  89B5 44FFFFFF mov     [ebp-BC], esi
    005FAA97  |.  6A 02         push    2                  ; /Arg1 = 00000002
    005FAA99  |.  8D8D 70FFFFFF lea     ecx, [ebp-90]      ; |
    005FAA9F  |.  E8 ECDCE0FF   call    00408790           ; \PowerCmd.00408790
    005FAAA4  |.  0FB730        movzx   esi, word ptr [eax>;  取第一段S1的第3位ASC
    005FAAA7  |.  6A 02         push    2                  ; /Arg1 = 00000002
    005FAAA9  |.  8D4D 8C       lea     ecx, [ebp-74]      ; |
    005FAAAC  |.  E8 DFDCE0FF   call    00408790           ; \PowerCmd.00408790
    005FAAB1  |.  0FB710        movzx   edx, word ptr [eax>;  取第二段S2的第3位ASC
    005FAAB4  |.  03F2          add     esi, edx           ;  二者相加,设为Q3
    005FAAB6  |.  89B5 3CFFFFFF mov     [ebp-C4], esi
    005FAABC  |.  6A 03         push    3                  ; /Arg1 = 00000003
    005FAABE  |.  8D8D 70FFFFFF lea     ecx, [ebp-90]      ; |
    005FAAC4  |.  E8 C7DCE0FF   call    00408790           ; \PowerCmd.00408790
    005FAAC9  |.  0FB730        movzx   esi, word ptr [eax>;  取第一段S1的第4位ASC
    005FAACC  |.  6A 03         push    3                  ; /Arg1 = 00000003
    005FAACE  |.  8D4D 8C       lea     ecx, [ebp-74]      ; |
    005FAAD1  |.  E8 BADCE0FF   call    00408790           ; \PowerCmd.00408790
    005FAAD6  |.  0FB700        movzx   eax, word ptr [eax>;  取第二段S2的第4位ASC
    005FAAD9  |.  03F0          add     esi, eax           ;  二者相加,设为Q4
    005FAADB  |.  89B5 38FFFFFF mov     [ebp-C8], esi
    005FAAE1  |.  6A 04         push    4                  ; /Arg1 = 00000004
    005FAAE3  |.  8D8D 70FFFFFF lea     ecx, [ebp-90]      ; |
    005FAAE9  |.  E8 A2DCE0FF   call    00408790           ; \PowerCmd.00408790
    005FAAEE  |.  0FB730        movzx   esi, word ptr [eax>;  取第一段S1的第5位ASC
    005FAAF1  |.  6A 04         push    4                  ; /Arg1 = 00000004
    005FAAF3  |.  8D4D 8C       lea     ecx, [ebp-74]      ; |
    005FAAF6  |.  E8 95DCE0FF   call    00408790           ; \PowerCmd.00408790
    005FAAFB  |.  0FB708        movzx   ecx, word ptr [eax>;  取第二段S2的第5位ASC
    005FAAFE  |.  03F1          add     esi, ecx           ;  二者相加,设为Q5
    005FAB00  |.  89B5 48FFFFFF mov     [ebp-B8], esi      ;  Q5
    005FAB06  |.  8B95 50FFFFFF mov     edx, [ebp-B0]      ;  Q1
    005FAB0C  |.  0395 44FFFFFF add     edx, [ebp-BC]      ;  Q1 + Q2
    005FAB12  |.  0395 3CFFFFFF add     edx, [ebp-C4]      ;  和 + Q3
    005FAB18  |.  0395 38FFFFFF add     edx, [ebp-C8]      ;  (和 + Q3的)和 + Q4
    005FAB1E  |.  0395 48FFFFFF add     edx, [ebp-B8]      ;  [(和 + Q3的)和 + Q4]的和 + Q5 ,设为N1
    005FAB24  |.  8995 40FFFFFF mov     [ebp-C0], edx      ;  N1
    005FAB2A  |.  6A 00         push    0                  ; /Arg1 = 00000000
    005FAB2C  |.  8D8D 54FFFFFF lea     ecx, [ebp-AC]      ; |
    005FAB32  |.  E8 59DCE0FF   call    00408790           ; \PowerCmd.00408790
    005FAB37  |.  0FB730        movzx   esi, word ptr [eax>;  取第3段S3的第1位ASC
    005FAB3A  |.  6A 00         push    0                  ; /Arg1 = 00000000
    005FAB3C  |.  8D4D A8       lea     ecx, [ebp-58]      ; |
    005FAB3F  |.  E8 4CDCE0FF   call    00408790           ; \PowerCmd.00408790
    005FAB44  |.  0FB700        movzx   eax, word ptr [eax>;  取第4段S4的第1位ASC
    005FAB47  |.  03F0          add     esi, eax           ;  二者相加,设为P1
    005FAB49  |.  89B5 50FFFFFF mov     [ebp-B0], esi
    005FAB4F  |.  6A 01         push    1                  ; /Arg1 = 00000001
    005FAB51  |.  8D8D 54FFFFFF lea     ecx, [ebp-AC]      ; |
    005FAB57  |.  E8 34DCE0FF   call    00408790           ; \PowerCmd.00408790
    005FAB5C  |.  0FB730        movzx   esi, word ptr [eax>;  取第3段S3的第2位ASC
    005FAB5F  |.  6A 01         push    1                  ; /Arg1 = 00000001
    005FAB61  |.  8D4D A8       lea     ecx, [ebp-58]      ; |
    005FAB64  |.  E8 27DCE0FF   call    00408790           ; \PowerCmd.00408790
    005FAB69  |.  0FB708        movzx   ecx, word ptr [eax>;  取第4段S4的第2位ASC
    005FAB6C  |.  03F1          add     esi, ecx           ;  二者相加,设为P2
    005FAB6E  |.  89B5 44FFFFFF mov     [ebp-BC], esi
    005FAB74  |.  6A 02         push    2                  ; /Arg1 = 00000002
    005FAB76  |.  8D8D 54FFFFFF lea     ecx, [ebp-AC]      ; |
    005FAB7C  |.  E8 0FDCE0FF   call    00408790           ; \PowerCmd.00408790
    005FAB81  |.  0FB730        movzx   esi, word ptr [eax>;  取第3段S3的第3位ASC
    005FAB84  |.  6A 02         push    2                  ; /Arg1 = 00000002
    005FAB86  |.  8D4D A8       lea     ecx, [ebp-58]      ; |
    005FAB89  |.  E8 02DCE0FF   call    00408790           ; \PowerCmd.00408790
    005FAB8E  |.  0FB710        movzx   edx, word ptr [eax>;  取第4段S4的第3位ASC
    005FAB91  |.  03F2          add     esi, edx           ;  二者相加,设为P3
    005FAB93  |.  89B5 3CFFFFFF mov     [ebp-C4], esi
    005FAB99  |.  6A 03         push    3                  ; /Arg1 = 00000003
    005FAB9B  |.  8D8D 54FFFFFF lea     ecx, [ebp-AC]      ; |
    005FABA1  |.  E8 EADBE0FF   call    00408790           ; \PowerCmd.00408790
    005FABA6  |.  0FB730        movzx   esi, word ptr [eax>;  取第3段S3的第4位ASC
    005FABA9  |.  6A 03         push    3                  ; /Arg1 = 00000003
    005FABAB  |.  8D4D A8       lea     ecx, [ebp-58]      ; |
    005FABAE  |.  E8 DDDBE0FF   call    00408790           ; \PowerCmd.00408790
    005FABB3  |.  0FB700        movzx   eax, word ptr [eax>;  取第4段S4的第4位ASC
    005FABB6  |.  03F0          add     esi, eax           ;  二者相加,设为P4
    005FABB8  |.  89B5 38FFFFFF mov     [ebp-C8], esi
    005FABBE  |.  6A 04         push    4                  ; /Arg1 = 00000004
    005FABC0  |.  8D8D 54FFFFFF lea     ecx, [ebp-AC]      ; |
    005FABC6  |.  E8 C5DBE0FF   call    00408790           ; \PowerCmd.00408790
    005FABCB  |.  0FB730        movzx   esi, word ptr [eax>;  取第3段S3的第5位ASC
    005FABCE  |.  6A 04         push    4                  ; /Arg1 = 00000004
    005FABD0  |.  8D4D A8       lea     ecx, [ebp-58]      ; |
    005FABD3  |.  E8 B8DBE0FF   call    00408790           ; \PowerCmd.00408790
    005FABD8  |.  0FB708        movzx   ecx, word ptr [eax>;  取第4段S4的第5位ASC
    005FABDB  |.  03F1          add     esi, ecx           ;  二者相加,设为P5
    005FABDD  |.  89B5 48FFFFFF mov     [ebp-B8], esi      ;  P5
    005FABE3  |.  8B95 50FFFFFF mov     edx, [ebp-B0]      ;  P1
    005FABE9  |.  0395 44FFFFFF add     edx, [ebp-BC]      ;  P1+P2
    005FABEF  |.  0395 3CFFFFFF add     edx, [ebp-C4]      ;  (和 + P3)
    005FABF5  |.  0395 38FFFFFF add     edx, [ebp-C8]      ;  (和 + P3)的和+ P4
    005FABFB  |.  0395 48FFFFFF add     edx, [ebp-B8]      ;  [(和 + P3)的和+ P4 ]的和 + P5
    005FAC01  |.  8995 4CFFFFFF mov     [ebp-B4], edx      ;  结果设为T1
    005FAC07  |.  8B85 40FFFFFF mov     eax, [ebp-C0]      ;  N1
    005FAC0D  |.  3B85 4CFFFFFF cmp     eax, [ebp-B4]      ;  N1:T1
    005FAC13  |.  75 04         jnz     short 005FAC19     ;  不等就跳!即要注册成功,则N1必须T1
    005FAC15  |.  C645 F3 01    mov     byte ptr [ebp-D], 1;  ///注意这里的地址
    005FAC19  |>  6A 00         push    0                  ; /Arg1 = 00000000
    005FAC1B  |.  8D8D 70FFFFFF lea     ecx, [ebp-90]      ; |
    005FAC21  |.  E8 6ADBE0FF   call    00408790           ; \PowerCmd.00408790
    005FAC26  |.  0FB708        movzx   ecx, word ptr [eax>;  取第1段S1的第1位ASC
    005FAC29  |.  83F9 50       cmp     ecx, 50            ;  与50(P)比较
    005FAC2C  |.  75 15         jnz     short 005FAC43
    005FAC2E  |.  6A 01         push    1                  ; /Arg1 = 00000001
    005FAC30  |.  8D8D 70FFFFFF lea     ecx, [ebp-90]      ; |
    005FAC36  |.  E8 55DBE0FF   call    00408790           ; \PowerCmd.00408790
    005FAC3B  |.  0FB710        movzx   edx, word ptr [eax>
    005FAC3E  |.  83FA 43       cmp     edx, 43            ;与43(C)比较
    005FAC41  |.  74 04         je      short 005FAC47
    005FAC43  |>  C645 F3 00    mov     byte ptr [ebp-D], >;  不等,这个地址会被置0
    005FAC47  |>  6A 00         push    0                  ; /Arg1 = 00000000
    005FAC49  |.  8D8D 54FFFFFF lea     ecx, [ebp-AC]      ; |
    005FAC4F  |.  E8 3CDBE0FF   call    00408790           ; \PowerCmd.00408790
    005FAC54  |.  0FB730        movzx   esi, word ptr [eax>;  取第3段S3的第1位ASC
    005FAC57  |.  6A 00         push    0                  ; /Arg1 = 00000000
    005FAC59  |.  8D8D 70FFFFFF lea     ecx, [ebp-90]      ; |
    005FAC5F  |.  E8 2CDBE0FF   call    00408790           ; \PowerCmd.00408790
    005FAC64  |.  0FB700        movzx   eax, word ptr [eax>;  取第1段S1的第1位ASC
    005FAC67  |.  03F0          add     esi, eax           ;  二者相加,设为Z1
    005FAC69  |.  89B5 50FFFFFF mov     [ebp-B0], esi
    005FAC6F  |.  6A 01         push    1                  ; /Arg1 = 00000001
    005FAC71  |.  8D8D 54FFFFFF lea     ecx, [ebp-AC]      ; |
    005FAC77  |.  E8 14DBE0FF   call    00408790           ; \PowerCmd.00408790
    005FAC7C  |.  0FB730        movzx   esi, word ptr [eax>;  取第3段S3的第2位ASC
    005FAC7F  |.  6A 01         push    1                  ; /Arg1 = 00000001
    005FAC81  |.  8D8D 70FFFFFF lea     ecx, [ebp-90]      ; |
    005FAC87  |.  E8 04DBE0FF   call    00408790           ; \PowerCmd.00408790
    005FAC8C  |.  0FB708        movzx   ecx, word ptr [eax>;  取第1段S1的第2位ASC
    005FAC8F  |.  03F1          add     esi, ecx           ;  二者相加,设为Z2
    005FAC91  |.  89B5 44FFFFFF mov     [ebp-BC], esi
    005FAC97  |.  6A 02         push    2                  ; /Arg1 = 00000002
    005FAC99  |.  8D8D 54FFFFFF lea     ecx, [ebp-AC]      ; |
    005FAC9F  |.  E8 ECDAE0FF   call    00408790           ; \PowerCmd.00408790
    005FACA4  |.  0FB730        movzx   esi, word ptr [eax>;  取第3段S3的第3位ASC
    005FACA7  |.  6A 02         push    2                  ; /Arg1 = 00000002
    005FACA9  |.  8D8D 70FFFFFF lea     ecx, [ebp-90]      ; |
    005FACAF  |.  E8 DCDAE0FF   call    00408790           ; \PowerCmd.00408790
    005FACB4  |.  0FB710        movzx   edx, word ptr [eax>;  取第1段S1的第3位ASC
    005FACB7  |.  03F2          add     esi, edx           ;  二者相加,设为Z3
    005FACB9  |.  89B5 3CFFFFFF mov     [ebp-C4], esi
    005FACBF  |.  6A 03         push    3                  ; /Arg1 = 00000003
    005FACC1  |.  8D8D 54FFFFFF lea     ecx, [ebp-AC]      ; |
    005FACC7  |.  E8 C4DAE0FF   call    00408790           ; \PowerCmd.00408790
    005FACCC  |.  0FB730        movzx   esi, word ptr [eax>;  取第3段S3的第4位ASC
    005FACCF  |.  6A 03         push    3                  ; /Arg1 = 00000003
    005FACD1  |.  8D8D 70FFFFFF lea     ecx, [ebp-90]      ; |
    005FACD7  |.  E8 B4DAE0FF   call    00408790           ; \PowerCmd.00408790
    005FACDC  |.  0FB700        movzx   eax, word ptr [eax>;  取第1段S1的第4位ASC
    005FACDF  |.  03F0          add     esi, eax           ;  二者相加,设为Z4
    005FACE1  |.  89B5 38FFFFFF mov     [ebp-C8], esi
    005FACE7  |.  6A 04         push    4                  ; /Arg1 = 00000004
    005FACE9  |.  8D8D 54FFFFFF lea     ecx, [ebp-AC]      ; |
    005FACEF  |.  E8 9CDAE0FF   call    00408790           ; \PowerCmd.00408790
    005FACF4  |.  0FB730        movzx   esi, word ptr [eax>;  取第3段S3的第5位ASC
    005FACF7  |.  6A 04         push    4                  ; /Arg1 = 00000004
    005FACF9  |.  8D8D 70FFFFFF lea     ecx, [ebp-90]      ; |
    005FACFF  |.  E8 8CDAE0FF   call    00408790           ; \PowerCmd.00408790
    005FAD04  |.  0FB708        movzx   ecx, word ptr [eax>;  取第1段S1的第5位ASC
    005FAD07  |.  03F1          add     esi, ecx           ;  二者相加,设为Z5
    005FAD09  |.  89B5 48FFFFFF mov     [ebp-B8], esi      ;  Z5
    005FAD0F  |.  8B95 50FFFFFF mov     edx, [ebp-B0]      ;  同上一样,累加!
    005FAD15  |.  0395 44FFFFFF add     edx, [ebp-BC]
    005FAD1B  |.  0395 3CFFFFFF add     edx, [ebp-C4]
    005FAD21  |.  0395 38FFFFFF add     edx, [ebp-C8]
    005FAD27  |.  0395 48FFFFFF add     edx, [ebp-B8]      ;  累加的结果设为R1
    005FAD2D  |.  8995 40FFFFFF mov     [ebp-C0], edx
    005FAD33  |.  6A 00         push    0                  ; /Arg1 = 00000000
    005FAD35  |.  8D4D 8C       lea     ecx, [ebp-74]      ; |
    005FAD38  |.  E8 53DAE0FF   call    00408790           ; \PowerCmd.00408790
    005FAD3D  |.  0FB730        movzx   esi, word ptr [eax>;  取第2段S2的第1位ASC
    005FAD40  |.  6A 00         push    0                  ; /Arg1 = 00000000
    005FAD42  |.  8D4D A8       lea     ecx, [ebp-58]      ; |
    005FAD45  |.  E8 46DAE0FF   call    00408790           ; \PowerCmd.00408790
    005FAD4A  |.  0FB700        movzx   eax, word ptr [eax>;  取第4段S4的第1位ASC
    005FAD4D  |.  03F0          add     esi, eax           ;  二者相加,设为V1
    005FAD4F  |.  89B5 50FFFFFF mov     [ebp-B0], esi
    005FAD55  |.  6A 01         push    1                  ; /Arg1 = 00000001
    005FAD57  |.  8D4D 8C       lea     ecx, [ebp-74]      ; |
    005FAD5A  |.  E8 31DAE0FF   call    00408790           ; \PowerCmd.00408790
    005FAD5F  |.  0FB730        movzx   esi, word ptr [eax>;  取第2段S2的第2位ASC
    005FAD62  |.  6A 01         push    1                  ; /Arg1 = 00000001
    005FAD64  |.  8D4D A8       lea     ecx, [ebp-58]      ; |
    005FAD67  |.  E8 24DAE0FF   call    00408790           ; \PowerCmd.00408790
    005FAD6C  |.  0FB708        movzx   ecx, word ptr [eax>;  取第4段S4的第2位ASC
    005FAD6F  |.  03F1          add     esi, ecx           ;  二者相加,设为V2
    005FAD71  |.  89B5 44FFFFFF mov     [ebp-BC], esi
    005FAD77  |.  6A 02         push    2                  ; /Arg1 = 00000002
    005FAD79  |.  8D4D 8C       lea     ecx, [ebp-74]      ; |
    005FAD7C  |.  E8 0FDAE0FF   call    00408790           ; \PowerCmd.00408790
    005FAD81  |.  0FB730        movzx   esi, word ptr [eax>;  取第2段S2的第3位ASC
    005FAD84  |.  6A 02         push    2                  ; /Arg1 = 00000002
    005FAD86  |.  8D4D A8       lea     ecx, [ebp-58]      ; |
    005FAD89  |.  E8 02DAE0FF   call    00408790           ; \PowerCmd.00408790
    005FAD8E  |.  0FB710        movzx   edx, word ptr [eax>;  取第4段S4的第3位ASC
    005FAD91  |.  03F2          add     esi, edx           ;  二者相加,设为V3
    005FAD93  |.  89B5 3CFFFFFF mov     [ebp-C4], esi
    005FAD99  |.  6A 03         push    3                  ; /Arg1 = 00000003
    005FAD9B  |.  8D4D 8C       lea     ecx, [ebp-74]      ; |
    005FAD9E  |.  E8 EDD9E0FF   call    00408790           ; \PowerCmd.00408790
    005FADA3  |.  0FB730        movzx   esi, word ptr [eax>;  取第2段S2的第4位ASC
    005FADA6  |.  6A 03         push    3                  ; /Arg1 = 00000003
    005FADA8  |.  8D4D A8       lea     ecx, [ebp-58]      ; |
    005FADAB  |.  E8 E0D9E0FF   call    00408790           ; \PowerCmd.00408790
    005FADB0  |.  0FB700        movzx   eax, word ptr [eax>;  取第4段S4的第4位ASC
    005FADB3  |.  03F0          add     esi, eax           ;  二者相加,设为V4
    005FADB5  |.  89B5 38FFFFFF mov     [ebp-C8], esi
    005FADBB  |.  6A 04         push    4                  ; /Arg1 = 00000004
    005FADBD  |.  8D4D 8C       lea     ecx, [ebp-74]      ; |
    005FADC0  |.  E8 CBD9E0FF   call    00408790           ; \PowerCmd.00408790
    005FADC5  |.  0FB730        movzx   esi, word ptr [eax>;  取第2段S2的第5位ASC
    005FADC8  |.  6A 04         push    4                  ; /Arg1 = 00000004
    005FADCA  |.  8D4D A8       lea     ecx, [ebp-58]      ; |
    005FADCD  |.  E8 BED9E0FF   call    00408790           ; \PowerCmd.00408790
    005FADD2  |.  0FB708        movzx   ecx, word ptr [eax>;  取第4段S4的第5位ASC
    005FADD5  |.  03F1          add     esi, ecx           ;  二者相加,设为V5
    005FADD7  |.  89B5 48FFFFFF mov     [ebp-B8], esi      ;  V5
    005FADDD  |.  8B95 50FFFFFF mov     edx, [ebp-B0]
    005FADE3  |.  0395 44FFFFFF add     edx, [ebp-BC]
    005FADE9  |.  0395 3CFFFFFF add     edx, [ebp-C4]
    005FADEF  |.  0395 38FFFFFF add     edx, [ebp-C8]
    005FADF5  |.  0395 48FFFFFF add     edx, [ebp-B8]
    005FADFB  |.  8995 4CFFFFFF mov     [ebp-B4], edx      ;  同上一样,累加!得到的结果设为W1
    005FAE01  |.  8B85 40FFFFFF mov     eax, [ebp-C0]
    005FAE07  |.  3B85 4CFFFFFF cmp     eax, [ebp-B4]      ;  R1:W1
    005FAE0D  |.  7D 04         jge     short 005FAE13     ;  不小于就跳
    005FAE0F  |.  C645 F3 00    mov     byte ptr [ebp-D], 0;  还是这个地址!!!
    005FAE13  |>  6A 02         push    2                  ; /Arg1 = 00000002
    005FAE15  |.  8D8D 70FFFFFF lea     ecx, [ebp-90]      ; |
    005FAE1B  |.  E8 70D9E0FF   call    00408790           ; \PowerCmd.00408790
    005FAE20  |.  0FB708        movzx   ecx, word ptr [eax>;  S1的第3位
    005FAE23  |.  83F9 4D       cmp     ecx, 4D            ;  与4D(M)比较
    005FAE26  |.  75 2A         jnz     short 005FAE52     ;  不等就跳
    005FAE28  |.  6A 03         push    3                  ; /Arg1 = 00000003
    005FAE2A  |.  8D8D 70FFFFFF lea     ecx, [ebp-90]      ; |
    005FAE30  |.  E8 5BD9E0FF   call    00408790           ; \PowerCmd.00408790
    005FAE35  |.  0FB710        movzx   edx, word ptr [eax>
    005FAE38  |.  83FA 44       cmp     edx, 44            '与44(D)比较
    005FAE3B  |.  75 15         jnz     short 005FAE52
    005FAE3D  |.  6A 04         push    4                  ; /Arg1 = 00000004
    005FAE3F  |.  8D8D 70FFFFFF lea     ecx, [ebp-90]      ; |
    005FAE45  |.  E8 46D9E0FF   call    00408790           ; \PowerCmd.00408790
    005FAE4A  |.  0FB700        movzx   eax, word ptr [eax>
    005FAE4D  |.  83F8 41       cmp     eax, 41             ;与41(A)比较
    005FAE50  |.  74 04         je      short 005FAE56
    005FAE52  |>  C645 F3 00    mov     byte ptr [ebp-D], 0;  跳到这里来,呵呵!还记得这个地址吗?也可以在这里爆破
    005FAE56  |>  C645 FC 03    mov     byte ptr [ebp-4], 3
    005FAE5A  |.  8D4D A8       lea     ecx, [ebp-58]
    005FAE5D  |.  E8 DE7CE0FF   call    00402B40
    005FAE62  |.  C645 FC 02    mov     byte ptr [ebp-4], >
    005FAE66  |.  8D8D 54FFFFFF lea     ecx, [ebp-AC]
    005FAE6C  |.  E8 CF7CE0FF   call    00402B40
    005FAE71  |.  C645 FC 01    mov     byte ptr [ebp-4], >
    005FAE75  |.  8D4D 8C       lea     ecx, [ebp-74]
    005FAE78  |.  E8 C37CE0FF   call    00402B40
    005FAE7D  |.  C645 FC 00    mov     byte ptr [ebp-4], >;  ?
    005FAE81  |.  8D8D 70FFFFFF lea     ecx, [ebp-90]
    005FAE87  |.  E8 B47CE0FF   call    00402B40
    005FAE8C  |>  C745 FC FFFFF>mov     dword ptr [ebp-4],>
    005FAE93  |.  8D4D C8       lea     ecx, [ebp-38]
    005FAE96  |.  E8 A57CE0FF   call    00402B40
    005FAE9B  |>  8A4D F3       mov     cl, [ebp-D]        ;  又是它,很好的爆破点哦
    005FAE9E  |.  880D 14A17000 mov     [70A114], cl       ;  传说中的全局变量?
    005FAEA4  |.  8A45 F3       mov     al, [ebp-D]        ;  还是它!
    005FAEA7  |.  8B4D F4       mov     ecx, [ebp-C]
    005FAEAA  |.  64:890D 00000>mov     fs:[0], ecx
    005FAEB1  |.  59            pop     ecx
    005FAEB2  |.  5E            pop     esi
    005FAEB3  |.  8B4D E4       mov     ecx, [ebp-1C]
    005FAEB6  |.  33CD          xor     ecx, ebp
    005FAEB8  |.  E8 FF27E2FF   call    0041D6BC
    005FAEBD  |.  8BE5          mov     esp, ebp
    005FAEBF  |.  5D            pop     ebp
    005FAEC0  \.  C3            retn
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////

    =============================================================================================================
    关于:
    005FC8A0  /$  55            push    ebp
    005FC8A1  |.  8BEC          mov     ebp, esp
    005FC8A3  |.  51            push    ecx
    005FC8A4  |.  C745 FC 00000>mov     dword ptr [ebp-4], 0
    005FC8AB  |.  0FB605 14A170>movzx   eax, byte ptr [70A114]     ;  ///在哪里?在哪里见过你?你的样子我觉得好熟悉
    005FC8B2  |.  85C0          test    eax, eax
    005FC8B4  |.  74 2A         je      short 005FC8E0             ;  跳向未注册用户
    005FC8B6  |.  B9 D8A07000   mov     ecx, 0070A0D8
    005FC8BB  |.  E8 80CCE0FF   call    00409540
    005FC8C0  |.  50            push    eax
    005FC8C1  |.  68 B0126900   push    006912B0
    005FC8C6  |.  8B4D 08       mov     ecx, [ebp+8]
    005FC8C9  |.  51            push    ecx
    005FC8CA  |.  E8 D14AE3FF   call    004313A0
    005FC8CF  |.  83C4 0C       add     esp, 0C
    005FC8D2  |.  8B55 FC       mov     edx, [ebp-4]
    005FC8D5  |.  83CA 01       or      edx, 1
    005FC8D8  |.  8955 FC       mov     [ebp-4], edx
    005FC8DB  |.  8B45 08       mov     eax, [ebp+8]
    005FC8DE  |.  EB 19         jmp     short 005FC8F9
    005FC8E0  |>  68 D4126900   push    006912D4                   ; /未注册用户
    005FC8E5  |.  8B4D 08       mov     ecx, [ebp+8]               ; |
    005FC8E8  |.  E8 D354E0FF   call    00401DC0                   ; \PowerCmd.00401DC0
    005FC8ED  |.  8B45 FC       mov     eax, [ebp-4]
         省略部分代码
    ===================================================================================================================





    //////////////////////////////////////////////////    总结: ///////////////////////////////////////////////

    (一)爆破点:
    我们看看这里:
    (注册部分)
    005FAE9B  |>  8A4D F3       mov     cl, [ebp-D]        ;让我欢喜让我忧的[ebp-D]
    005FAE9E  |.  880D 14A17000 mov     [70A114], cl       ;  传说中的全局变量?
    再看这里:
    (about部分)
    005FC8AB  |.  0FB605 14A170>movzx   eax, byte ptr [70A114]     ;  还记得这个地址[70A114]吗?
    005FC8B2  |.  85C0          test    eax, eax
    005FC8B4  |.  74 2A         je      short 005FC8E0             ;  跳向未注册用户

    所以说,如果要爆破的话,关键就在[ebp-D],呵呵!
    至于在哪里爆破,相信大家都已经很清楚了!

    ------------------------------------------------------------------------------------------------

    (二)算法总结:
    1.与用户名无关(貌似和serial也无关)
    2.由3位“-”将20位注册码平分为4部分
    即注册码形如XXXXX-XXXXX-XXXXX-XXXXX,分别设4部分为S1、S2、S3、S4;
    3.注册成功须满足:
      S1固定为:pcdma(不区分大小写,程序自动转换为大写);
      S1各位ASC累加值和 + S2各位ASC累加值和   =   S3各位ASC累加值和 + S4各位ASC累加值和

      S1各位ASC累加值和 + S3各位ASC累加值和   >=  S2各位ASC累加值和 + S4各位ASC累加值和


    ////////////////////////////////////////////////////////////////////////////////////////////////


    因此,完全可以构造N组注册码;比如 pcmda-45678-qdneb-34567
                                    pcmda-88888-qdneb-77777
                                    pcmda-99999-qdneb-88888

    呵呵,聪明的你一定看出来这组注册码的规律了!
      

    注册信息保存在HKEY_CURRENT_USER\Software\PowerCmd
    "Serial"=dword:4d2eeee5                                  ///这个好像删除都可以
    "Name"="我爱我的祖国!"
    "Key"="pcmda-99999-qdneb-88888"

    运行后会在PowerCmd.ini里[Register]项下看见注册信息。







                                              二: 关于注册码的格式和检测:

    这里值得一提的是对注册码的格式推测和判断
    1.关于连字符“-”
    005FA8C3  |.  6A 2D         push    2D                 ;2D(“-”)
    005FA8D2  |.  6A 2D         push    2D                 ; 这里有一个2D(“-”)
    005FA91E  |.  6A 2D         push    2D                 ;还有一个2D(“-”)
    推测注册码应该有连字符“-”;而且共push了3次,可能意味着有3个“-”当然开始只是猜测而已。

    2.非连字符部分
    005FA8B8  |.  83F8 17       cmp     eax, 17            ;推测注册码长度应该是23位
    如果有3个“-”的情况成立的话,那么注册码非连字符部分应该有23-3=20位。正好被平均分成4部分。
    好,我们接着往下看

    3.是否被均分为4部分?
    先看这里:
    005FA8AC  |.  C645 F3 00    MOV BYTE PTR SS:[EBP-D],0  ;注意看这里,很关键的0
    005FA8B0  |.  8B4D 0C       MOV ECX,DWORD PTR SS:[EBP+C]
    005FA8B3  |.  E8 28A2E1FF   CALL PowerCmd.00414AE0
    005FA8B8  |.  83F8 17       CMP EAX,17                 ;注册码的长度是23位吗?
    005FA8BB  |.  0F85 DA050000 JNZ PowerCmd.005FAE9B      ;不是的话,那么看看跳往 哪里了?
    接着看这里:
    005FA938  |.  837D E8 05    cmp     dword ptr [ebp-18]>;  第一个“-”之前的注册码长度:5
    005FA93C  |.  0F85 4A050000 jnz     005FAE8C
    005FA942  |.  8B4D E8       mov     ecx, [ebp-18]
    005FA945  |.  83C1 06       add     ecx, 6             ;注意这里的6
    005FA948  |.  394D C4       cmp     [ebp-3C], ecx      ;  长度比较
    005FA94B  |.  0F85 3B050000 jnz     005FAE8C
    005FA951  |.  8B55 C4       mov     edx, [ebp-3C]
    005FA954  |.  83C2 06       add     edx, 6              ;还有这里的6
    005FA957  |.  3955 EC       cmp     [ebp-14], edx
    005FA95A  |.  0F85 2C050000 jnz     005FAE8C
    再看这里:
    05FA9E3  |.  E8 F8A0E1FF   call    00414AE0           ;  得到S1的长度
    005FA9E8  |.  83F8 05       cmp     eax, 5            ;  判断这里应该是注册码每段由5位组成
    005FA9EB  |.  0F85 65040000 jnz     005FAE56         
    005FA9F1  |.  8D4D 8C       lea     ecx, [ebp-74]
    005FA9F4  |.  E8 E7A0E1FF   call    00414AE0          ;  得到S2的长度
    005FA9F9  |.  83F8 05       cmp     eax, 5            ;同上
    005FA9FC  |.  0F85 54040000 jnz     005FAE56
    005FAA02  |.  8D8D 54FFFFFF lea     ecx, [ebp-AC]
    005FAA08  |.  E8 D3A0E1FF   call    00414AE0           ;  得到S3的长度
    005FAA0D  |.  83F8 05       cmp     eax, 5             ;同上
    005FAA10  |.  0F85 40040000 jnz     005FAE56
    005FAA16  |.  8D4D A8       lea     ecx, [ebp-58]
    005FAA19  |.  E8 C2A0E1FF   call    00414AE0           ;  得到S4的长度
    005FAA1E  |.  83F8 05       cmp     eax, 5             ;同上
    005FAA21  |.  0F85 2F040000 jnz     005FAE56
    还有:               
    005FA8C1  |.  6A 00         PUSH 0
    005FA8C3  |.  6A 2D         PUSH 2D                            ;这里的“-”
    005FA8C5  |.  8B4D 0C       MOV ECX,DWORD PTR SS:[EBP+C]
    005FA8C8  |.  E8 133EE3FF   CALL PowerCmd.0042E6E0
    005FA8CD  |.  8945 E8       MOV DWORD PTR SS:[EBP-18],EAX
    005FA8D0  |.  6A 01         PUSH 1
    005FA8D2  |.  6A 2D         PUSH 2D                            ;还有个“-”
    005FA8D4  |.  8B4D 0C       MOV ECX,DWORD PTR SS:[EBP+C]
    005FA8D7  |.  E8 043EE3FF   CALL PowerCmd.0042E6E0
    005FA8DC  |.  8945 EC       MOV DWORD PTR SS:[EBP-14],EAX
    005FA8DF  |.  8B45 E8       MOV EAX,DWORD PTR SS:[EBP-18]
    005FA8E2  |.  83C0 01       ADD EAX,1
    005FA8E5  |.  3945 EC       CMP DWORD PTR SS:[EBP-14],EAX
    005FA8E8  |.  0F8E AD050000 JLE PowerCmd.005FAE9B              ;这里有一个
    005FA8EE  |.  837D E8 00    CMP DWORD PTR SS:[EBP-18],0
    005FA8F2  |.  0F8E A3050000 JLE PowerCmd.005FAE9B              ;这还有一个,
    跳向:
    005FAE9B  |> \8A4D F3       MOV CL,BYTE PTR SS:[EBP-D]         ;直接跳到这里来了,而这里的这里已经被005FA8AC处的MOV BYTE PTR SS:[EBP-D],0 为0,结果就不必说了
    005FAE9E  |.  880D 14A17000 MOV BYTE PTR DS:[70A114],CL        ;全局变量
    005FAEA4  |.  8A45 F3       MOV AL,BYTE PTR SS:[EBP-D]         ;AL也被赋值为0了

    因此,从上面的内容来看,除了注册码长度为23位外,注册码还必须含有3个“-”,余下的20位被3个“-”平均分成4等分。
    其实,验证一下就知道我们的推测对不对,呵呵!
    改变下注册码形式:
    分别用1个“-”、2个“-”、3个“-”输出3组注册码
    1234567890a-cdefghijklm
    1234567-90abcdefgh-jklm
    12345-7890a-cdefg-ijklm输入进去,
    结果表明我们的推测是成立的。

    注册码格式检测1:
    0042E6E0  /$  0FB74424 04   MOVZX EAX,WORD PTR SS:[ESP+4]     ;  "-"
    0042E6E5  |.  807C24 08 00  CMP BYTE PTR SS:[ESP+8],0         ;  !
    0042E6EA  |.  6A 01         PUSH 1
    0042E6EC  |.  8D5424 0C     LEA EDX,DWORD PTR SS:[ESP+C]
    0042E6F0  |.  894424 0C     MOV DWORD PTR SS:[ESP+C],EAX      ;  “-”(2D)
    0042E6F4  |.  74 0A         JE SHORT PowerCmd.0042E700
    0042E6F6  |.  6A FF         PUSH -1
    0042E6F8  |.  52            PUSH EDX
    0042E6F9  |.  E8 42F8FFFF   CALL PowerCmd.0042DF40            ;  注册码检测1-2    得到注册码(已比较)/【未比较】的部分的长度,也决定着下面条件跳转是否成立
    0042E6FE  |.  EB 08         JMP SHORT PowerCmd.0042E708
    0042E700  |>  6A 00         PUSH 0                            ; |Arg2 = 00000000
    0042E702  |.  52            PUSH EDX                          ; |Arg1
    0042E703  |.  E8 08F7FDFF   CALL PowerCmd.0040DE10            ; 注册码格式检测1-1 这个CALL里,EAX的值决定着下面的跳转
    0042E708  |>  83F8 FF       CMP EAX,-1                        ;  
    0042E70B  |.  75 02         JNZ SHORT PowerCmd.0042E70F
    0042E70D  |.  0BC0          OR EAX,EAX
    0042E70F  \>  C2 0800       RETN 8

    注册码检测1-1:
    0040DE10  /$  55            PUSH EBP
    0040DE11  |.  8BEC          MOV EBP,ESP
    0040DE13  |.  83EC 10       SUB ESP,10
    0040DE16  |.  894D F0       MOV DWORD PTR SS:[EBP-10],ECX
    0040DE19  |.  837D 10 00    CMP DWORD PTR SS:[EBP+10],0
    0040DE1D  |.  75 13         JNZ SHORT PowerCmd.0040DE32
    0040DE1F  |.  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]
    0040DE22  |.  8B4D 0C       MOV ECX,DWORD PTR SS:[EBP+C]
    0040DE25  |.  3B48 14       CMP ECX,DWORD PTR DS:[EAX+14]
    0040DE28  |.  77 08         JA SHORT PowerCmd.0040DE32
    0040DE2A  |.  8B45 0C       MOV EAX,DWORD PTR SS:[EBP+C]
    0040DE2D  |.  E9 B1000000   JMP PowerCmd.0040DEE3
    0040DE32  |>  8B55 F0       MOV EDX,DWORD PTR SS:[EBP-10]
    0040DE35  |.  8B45 0C       MOV EAX,DWORD PTR SS:[EBP+C]
    0040DE38  |.  3B42 14       CMP EAX,DWORD PTR DS:[EDX+14]     ;  假码长度、假码中第一个“-”和最后一个“-”之间部分的长度【不同CALL调用时有所不同】
    0040DE3B  |.  0F83 9F000000 JNB PowerCmd.0040DEE0
    0040DE41  |.  8B4D F0       MOV ECX,DWORD PTR SS:[EBP-10]
    0040DE44  |.  8B51 14       MOV EDX,DWORD PTR DS:[ECX+14]     ;  同上
    0040DE47  |.  2B55 0C       SUB EDX,DWORD PTR SS:[EBP+C]
    0040DE4A  |.  8955 FC       MOV DWORD PTR SS:[EBP-4],EDX      ;  同上
    0040DE4D  |.  8B45 10       MOV EAX,DWORD PTR SS:[EBP+10]
    0040DE50  |.  3B45 FC       CMP EAX,DWORD PTR SS:[EBP-4]
    0040DE53  |.  0F87 87000000 JA PowerCmd.0040DEE0
    0040DE59  |.  8B4D 10       MOV ECX,DWORD PTR SS:[EBP+10]
    0040DE5C  |.  83E9 01       SUB ECX,1
    0040DE5F  |.  8B55 FC       MOV EDX,DWORD PTR SS:[EBP-4]      ;  同上
    0040DE62  |.  2BD1          SUB EDX,ECX
    0040DE64  |.  8955 FC       MOV DWORD PTR SS:[EBP-4],EDX
    0040DE67  |.  8B4D F0       MOV ECX,DWORD PTR SS:[EBP-10]
    0040DE6A  |.  E8 E149FFFF   CALL PowerCmd.00402850
    0040DE6F  |.  8B4D 0C       MOV ECX,DWORD PTR SS:[EBP+C]
    0040DE72  |.  8D1448        LEA EDX,DWORD PTR DS:[EAX+ECX*2]
    0040DE75  |.  8955 F4       MOV DWORD PTR SS:[EBP-C],EDX      ;  假码、假码第一和最后“-”之间的部分【不同的CALL调用时有不同】
    0040DE78  |.  EB 1C         JMP SHORT PowerCmd.0040DE96
    0040DE7A  |>  8B45 F8       /MOV EAX,DWORD PTR SS:[EBP-8]
    0040DE7D  |.  2B45 F4       |SUB EAX,DWORD PTR SS:[EBP-C]
    0040DE80  |.  D1F8          |SAR EAX,1
    0040DE82  |.  83C0 01       |ADD EAX,1
    0040DE85  |.  8B4D FC       |MOV ECX,DWORD PTR SS:[EBP-4]
    0040DE88  |.  2BC8          |SUB ECX,EAX
    0040DE8A  |.  894D FC       |MOV DWORD PTR SS:[EBP-4],ECX
    0040DE8D  |.  8B55 F8       |MOV EDX,DWORD PTR SS:[EBP-8]
    0040DE90  |.  83C2 02       |ADD EDX,2
    0040DE93  |.  8955 F4       |MOV DWORD PTR SS:[EBP-C],EDX
    0040DE96  |>  8B45 08        MOV EAX,DWORD PTR SS:[EBP+8]     ;  “-”
    0040DE99  |.  50            |PUSH EAX                         ; /Arg3
    0040DE9A  |.  8B4D FC       |MOV ECX,DWORD PTR SS:[EBP-4]     ; |
    0040DE9D  |.  51            |PUSH ECX                         ; |Arg2
    0040DE9E  |.  8B55 F4       |MOV EDX,DWORD PTR SS:[EBP-C]     ; |
    0040DEA1  |.  52            |PUSH EDX                         ; |Arg1
    0040DEA2  |.  E8 A9590000   |CALL PowerCmd.00413850           ; \PowerCmd.00413850
    0040DEA7  |.  83C4 0C       |ADD ESP,0C
    0040DEAA  |.  8945 F8       |MOV DWORD PTR SS:[EBP-8],EAX     ;  上面CALL决定了EAX是否为0
    0040DEAD  |.  837D F8 00    |CMP DWORD PTR SS:[EBP-8],0
    0040DEB1  |.  74 2D         |JE SHORT PowerCmd.0040DEE0       ;  EAX为0,则跳出循环
    0040DEB3  |.  8B45 10       |MOV EAX,DWORD PTR SS:[EBP+10]
    0040DEB6  |.  50            |PUSH EAX                         ; /Arg3
    0040DEB7  |.  8B4D 08       |MOV ECX,DWORD PTR SS:[EBP+8]     ; |“-”(2D)
    0040DEBA  |.  51            |PUSH ECX                         ; |Arg2
    0040DEBB  |.  8B55 F8       |MOV EDX,DWORD PTR SS:[EBP-8]     ; |假码中剩余部分(包含“-”)
    0040DEBE  |.  52            |PUSH EDX                         ; |Arg1
    0040DEBF  |.  E8 1C65FFFF   |CALL PowerCmd.004043E0           ; \PowerCmd.004043E0
    0040DEC4  |.  83C4 0C       |ADD ESP,0C
    0040DEC7  |.  85C0          |TEST EAX,EAX
    0040DEC9  |.  75 13         |JNZ SHORT PowerCmd.0040DEDE
    0040DECB  |.  8B4D F0       |MOV ECX,DWORD PTR SS:[EBP-10]
    0040DECE  |.  E8 7D49FFFF   |CALL PowerCmd.00402850
    0040DED3  |.  8B4D F8       |MOV ECX,DWORD PTR SS:[EBP-8]     ;  假码中剩余部分(包含第一个“-”)
    0040DED6  |.  2BC8          |SUB ECX,EAX
    0040DED8  |.  D1F9          |SAR ECX,1
    0040DEDA  |.  8BC1          |MOV EAX,ECX
    0040DEDC  |.  EB 05         |JMP SHORT PowerCmd.0040DEE3
    0040DEDE  |>^ EB 9A         \JMP SHORT PowerCmd.0040DE7A
    0040DEE0  |>  83C8 FF       OR EAX,FFFFFFFF
    0040DEE3  |>  8BE5          MOV ESP,EBP
    0040DEE5  |.  5D            POP EBP
    0040DEE6  \.  C2 0C00       RETN 0C

    注册码检测1-2:
    0042DF40  /$  51            PUSH ECX
    0042DF41  |.  55            PUSH EBP
    0042DF42  |.  57            PUSH EDI
    0042DF43  |.  8B7C24 18     MOV EDI,DWORD PTR SS:[ESP+18]
    0042DF47  |.  8BE9          MOV EBP,ECX
    0042DF49  |.  8B45 14       MOV EAX,DWORD PTR SS:[EBP+14]     ;  假码长度
    0042DF4C  |.  896C24 08     MOV DWORD PTR SS:[ESP+8],EBP
    0042DF50  |.  85FF          TEST EDI,EDI
    0042DF52  |.  75 14         JNZ SHORT PowerCmd.0042DF68
    0042DF54  |.  8B4C24 14     MOV ECX,DWORD PTR SS:[ESP+14]
    0042DF58  |.  3BC8          CMP ECX,EAX
    0042DF5A  |.  0F83 BB000000 JNB PowerCmd.0042E01B
    0042DF60  |.  5F            POP EDI
    0042DF61  |.  8BC1          MOV EAX,ECX
    0042DF63  |.  5D            POP EBP
    0042DF64  |.  59            POP ECX
    0042DF65  |.  C2 0C00       RETN 0C
    0042DF68  |>  53            PUSH EBX
    0042DF69  |.  56            PUSH ESI
    0042DF6A  |.  3BF8          CMP EDI,EAX
    0042DF6C  |.  0F87 A4000000 JA PowerCmd.0042E016
    0042DF72  |.  8B4C24 1C     MOV ECX,DWORD PTR SS:[ESP+1C]
    0042DF76  |.  2BC7          SUB EAX,EDI                       ;  假码长度-[EDI]
    0042DF78  |.  3BC8          CMP ECX,EAX
    0042DF7A  |.  73 02         JNB SHORT PowerCmd.0042DF7E
    0042DF7C  |.  8BC1          MOV EAX,ECX
    0042DF7E  |>  8B4D 18       MOV ECX,DWORD PTR SS:[EBP+18]
    0042DF81  |.  894C24 20     MOV DWORD PTR SS:[ESP+20],ECX     ;  假码长度
    0042DF85  |.  83F9 08       CMP ECX,8                         ;  假码长度与8比较
    0042DF88  |.  8D4D 04       LEA ECX,DWORD PTR SS:[EBP+4]
    0042DF8B  |.  894C24 1C     MOV DWORD PTR SS:[ESP+1C],ECX
    0042DF8F  |.  72 02         JB SHORT PowerCmd.0042DF93
    0042DF91  |.  8B09          MOV ECX,DWORD PTR DS:[ECX]        ;  假码
    0042DF93  |>  8B5C24 18     MOV EBX,DWORD PTR SS:[ESP+18]     ;  “-”(2D)
    0042DF97  |.  8D3441        LEA ESI,DWORD PTR DS:[ECX+EAX*2]  ;  假码最后一位
    0042DF9A  |.  8D9B 00000000 LEA EBX,DWORD PTR DS:[EBX]        ;  “-”(2D)
    0042DFA0  |>  0FB703        /MOVZX EAX,WORD PTR DS:[EBX]      ;  “-”(2D)
    0042DFA3  |.  66:3906       |CMP WORD PTR DS:[ESI],AX         ;  “-”(2D)依次与(倒序的)假码比较
    0042DFA6  |.  75 4C         |JNZ SHORT PowerCmd.0042DFF4      ;  不等就跳
    0042DFA8  |.  8BD7          |MOV EDX,EDI
    0042DFAA  |.  8BCB          |MOV ECX,EBX
    0042DFAC  |.  8BC6          |MOV EAX,ESI
    0042DFAE  |.  85FF          |TEST EDI,EDI
    0042DFB0  |.  76 13         |JBE SHORT PowerCmd.0042DFC5
    0042DFB2  |>  66:8B28       |/MOV BP,WORD PTR DS:[EAX]        ;  已比较过的假码的第一位
    0042DFB5  |.  66:3B29       ||CMP BP,WORD PTR DS:[ECX]        ;  “-”(2D)
    0042DFB8  |.  75 26         ||JNZ SHORT PowerCmd.0042DFE0
    0042DFBA  |.  83C0 02       ||ADD EAX,2
    0042DFBD  |.  83C1 02       ||ADD ECX,2
    0042DFC0  |.  83EA 01       ||SUB EDX,1
    0042DFC3  |.^ 75 ED         |\JNZ SHORT PowerCmd.0042DFB2
    0042DFC5  |>  837C24 20 08  |CMP DWORD PTR SS:[ESP+20],8      ;  假码长度与8比较
    0042DFCA  |.  72 38         |JB SHORT PowerCmd.0042E004
    0042DFCC  |.  8B5424 1C     |MOV EDX,DWORD PTR SS:[ESP+1C]
    0042DFD0  |.  8B0A          |MOV ECX,DWORD PTR DS:[EDX]       ;  假码
    0042DFD2  |.  8BC6          |MOV EAX,ESI                      ;  ESI(已比较过的假码)
    0042DFD4  |.  5E            |POP ESI
    0042DFD5  |.  5B            |POP EBX
    0042DFD6  |.  2BC1          |SUB EAX,ECX                      ;  倒序比较后还未比较的注册码部分
    0042DFD8  |.  5F            |POP EDI
    0042DFD9  |.  D1F8          |SAR EAX,1                        ;  得到注册码未比较的部分的长度
    0042DFDB  |.  5D            |POP EBP
    0042DFDC  |.  59            |POP ECX
    0042DFDD  |.  C2 0C00       |RETN 0C
    0042DFE0  |>  66:8BC5       |MOV AX,BP
    0042DFE3  |.  66:3B01       |CMP AX,WORD PTR DS:[ECX]
    0042DFE6  |.  1BC9          |SBB ECX,ECX
    0042DFE8  |.  83E1 FE       |AND ECX,FFFFFFFE
    0042DFEB  |.  83C1 01       |ADD ECX,1
    0042DFEE  |.^ 74 D5         |JE SHORT PowerCmd.0042DFC5
    0042DFF0  |.  8B6C24 10     |MOV EBP,DWORD PTR SS:[ESP+10]
    0042DFF4  |>  8BCD          |MOV ECX,EBP
    0042DFF6  |.  E8 5548FDFF   |CALL PowerCmd.00402850
    0042DFFB  |.  3BF0          |CMP ESI,EAX                      ;  已经比较过的假码 与 整个假码比较
    0042DFFD  |.  74 17         |JE SHORT PowerCmd.0042E016       ;  全部比较过后则跳出循环,也就决定了下面的EAX的值
    0042DFFF  |.  83EE 02       |SUB ESI,2
    0042E002  |.^ EB 9C         \JMP SHORT PowerCmd.0042DFA0
    0042E004  |>  8B4C24 1C     MOV ECX,DWORD PTR SS:[ESP+1C]
    0042E008  |.  8BC6          MOV EAX,ESI
    0042E00A  |.  5E            POP ESI
    0042E00B  |.  5B            POP EBX
    0042E00C  |.  2BC1          SUB EAX,ECX
    0042E00E  |.  5F            POP EDI
    0042E00F  |.  D1F8          SAR EAX,1
    0042E011  |.  5D            POP EBP
    0042E012  |.  59            POP ECX
    0042E013  |.  C2 0C00       RETN 0C
    0042E016  |>  5E            POP ESI
    0042E017  |.  83C8 FF       OR EAX,FFFFFFFF
    0042E01A  |.  5B            POP EBX
    0042E01B  |>  5F            POP EDI
    0042E01C  |.  5D            POP EBP
    0042E01D  |.  59            POP ECX
    0042E01E  \.  C2 0C00       RETN 0C

    注册码格式检测2:
    00430370  /$  6A FF         PUSH -1
    00430372  |.  68 78496000   PUSH PowerCmd.00604978
    00430377  |.  64:A1 0000000>MOV EAX,DWORD PTR FS:[0]
    0043037D  |.  50            PUSH EAX
    0043037E  |.  83EC 24       SUB ESP,24
    00430381  |.  A1 58316D00   MOV EAX,DWORD PTR DS:[6D3158]     ;  
    00430386  |.  33C4          XOR EAX,ESP
    00430388  |.  894424 20     MOV DWORD PTR SS:[ESP+20],EAX
    0043038C  |.  53            PUSH EBX
    0043038D  |.  55            PUSH EBP
    0043038E  |.  56            PUSH ESI
    0043038F  |.  57            PUSH EDI
    00430390  |.  A1 58316D00   MOV EAX,DWORD PTR DS:[6D3158]
    00430395  |.  33C4          XOR EAX,ESP
    00430397  |.  50            PUSH EAX
    00430398  |.  8D4424 38     LEA EAX,DWORD PTR SS:[ESP+38]
    0043039C  |.  64:A3 0000000>MOV DWORD PTR FS:[0],EAX
    004303A2  |.  8B4424 50     MOV EAX,DWORD PTR SS:[ESP+50]
    004303A6  |.  8B7424 48     MOV ESI,DWORD PTR SS:[ESP+48]
    004303AA  |.  8B5424 4C     MOV EDX,DWORD PTR SS:[ESP+4C]
    004303AE  |.  33DB          XOR EBX,EBX
    004303B0  |.  8BF9          MOV EDI,ECX
    004303B2  |.  8B4F 14       MOV ECX,DWORD PTR DS:[EDI+14]     ;  注册码长度
    004303B5  |.  895C24 14     MOV DWORD PTR SS:[ESP+14],EBX
    004303B9  |.  83F8 FF       CMP EAX,-1                        ;  注册码中第一个“-”和最后一个“-”之间部分的长度、注册码第一个“-”前的长度【不同的CALL调用时有不同。下同】
    004303BC  |.  75 04         JNZ SHORT PowerCmd.004303C2
    004303BE  |.  8BC1          MOV EAX,ECX
    004303C0  |.  2BC2          SUB EAX,EDX
    004303C2  |>  8D2C02        LEA EBP,DWORD PTR DS:[EDX+EAX]    ;  假码最后一个“-”(含)之前部分的长度
    004303C5  |.  3BE9          CMP EBP,ECX                       ;  假码最后一个“-”(含)之前部分的长度:假码长度
    004303C7  |.  76 04         JBE SHORT PowerCmd.004303CD
    004303C9  |.  8BC1          MOV EAX,ECX
    004303CB  |.  2BC2          SUB EAX,EDX
    004303CD  |>  3BD1          CMP EDX,ECX                       ;  注册码中第一个“-”(含)前的长度:假码长度
    004303CF  |.  76 0F         JBE SHORT PowerCmd.004303E0
    004303D1  |.  A1 643E6D00   MOV EAX,DWORD PTR DS:[6D3E64]
    004303D6  |.  50            PUSH EAX                          ; /Arg1 => 006A3F60
    004303D7  |.  8BCE          MOV ECX,ESI                       ; |
    004303D9  |.  E8 E219FDFF   CALL PowerCmd.00401DC0            ; \PowerCmd.00401DC0
    004303DE  |.  EB 53         JMP SHORT PowerCmd.00430433
    004303E0  |>  50            PUSH EAX                          ; /注册码中第一个“-”和最后一个“-”之间部分的长度
    004303E1  |.  33C9          XOR ECX,ECX                       ; |
    004303E3  |.  52            PUSH EDX                          ; |Arg2
    004303E4  |.  66:894C24 24  MOV WORD PTR SS:[ESP+24],CX       ; |
    004303E9  |.  BD 07000000   MOV EBP,7                         ; |
    004303EE  |.  57            PUSH EDI                          ; |Arg1
    004303EF  |.  8D4C24 24     LEA ECX,DWORD PTR SS:[ESP+24]     ; |
    004303F3  |.  896C24 3C     MOV DWORD PTR SS:[ESP+3C],EBP     ; |假码最后一个“-”(含)之前部分的长度
    004303F7  |.  895C24 38     MOV DWORD PTR SS:[ESP+38],EBX     ; |
    004303FB  |.  E8 8024FDFF   CALL PowerCmd.00402880            ; \PowerCmd.00402880
    00430400  |.  6A FF         PUSH -1                           ; /Arg3 = FFFFFFFF
    00430402  |.  53            PUSH EBX                          ; |Arg2
    00430403  |.  8D4424 20     LEA EAX,DWORD PTR SS:[ESP+20]     ; |
    00430407  |.  33D2          XOR EDX,EDX                       ; |
    00430409  |.  896E 18       MOV DWORD PTR DS:[ESI+18],EBP     ; |
    0043040C  |.  895E 14       MOV DWORD PTR DS:[ESI+14],EBX     ; |
    0043040F  |.  50            PUSH EAX                          ; |Arg1
    00430410  |.  8BCE          MOV ECX,ESI                       ; |
    00430412  |.  895C24 4C     MOV DWORD PTR SS:[ESP+4C],EBX     ; |
    00430416  |.  66:8956 04    MOV WORD PTR DS:[ESI+4],DX        ; |
    0043041A  |.  E8 6124FDFF   CALL PowerCmd.00402880            ; \PowerCmd.00402880
    0043041F  |.  837C24 30 08  CMP DWORD PTR SS:[ESP+30],8
    00430424  |.  72 0D         JB SHORT PowerCmd.00430433
    00430426  |.  8B4C24 1C     MOV ECX,DWORD PTR SS:[ESP+1C]     ;  注册码中第一个“-”和最后一个“-”之间部分
    0043042A  |.  51            PUSH ECX
    0043042B  |.  E8 9BD2FEFF   CALL PowerCmd.0041D6CB
    00430430  |.  83C4 04       ADD ESP,4
    00430433  |>  8BC6          MOV EAX,ESI
    00430435  |.  8B4C24 38     MOV ECX,DWORD PTR SS:[ESP+38]
    00430439  |.  64:890D 00000>MOV DWORD PTR FS:[0],ECX
    00430440  |.  59            POP ECX
    00430441  |.  5F            POP EDI
    00430442  |.  5E            POP ESI
    00430443  |.  5D            POP EBP
    00430444  |.  5B            POP EBX
    00430445  |.  8B4C24 20     MOV ECX,DWORD PTR SS:[ESP+20]
    00430449  |.  33CC          XOR ECX,ESP
    0043044B  |.  E8 6CD2FEFF   CALL PowerCmd.0041D6BC
    00430450  |.  83C4 30       ADD ESP,30
    00430453  \.  C2 0C00       RETN 0C


    其实算法很简单,对注册码格式也是一眼就猜出来了。关键在检测上花了点时间来验证我的推测是否是正确的。希望本文能对大家有点启发,那也不枉我辛苦地码字了。呵呵
    最后上图:

    no.JPG
    ok-1.JPG
    ok-2.JPG

    评分

    参与人数 1威望 +40 飘云币 +40 收起 理由
    月之精灵 + 40 + 40 您的贴子很精彩,希望能再次分享!

    查看全部评分

    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2016-7-30 18:42
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2011-1-14 16:01:12 | 显示全部楼层
    .NET 的东西。能用OD调试起来??
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2019-3-12 17:25
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2011-1-14 19:40:32 | 显示全部楼层
    好文!顶顶
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2011-1-14 22:38:03 | 显示全部楼层
    真强啊,不过确实看着有些眼花缭乱:loveliness:
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2015-8-3 23:07
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2011-1-15 12:21:29 | 显示全部楼层
    佩服你,哈哈,啥也不说了,加分,哈哈
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2015-8-23 23:49
  • 签到天数: 27 天

    [LV.4]偶尔看看III

     楼主| 发表于 2011-1-15 13:59:20 | 显示全部楼层
    佩服你,哈哈,啥也不说了,加分,哈哈
    月之精灵 发表于 2011-1-15 12:21

    /:001 ,最近在补看Nisy的视频,抽空搞的.....
    多指点哈
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    昨天 20:32
  • 签到天数: 1988 天

    [LV.Master]伴坛终老

    发表于 2011-1-17 12:46:52 | 显示全部楼层
    来了就要支持一下
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2019-11-28 07:16
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2011-1-17 13:14:51 | 显示全部楼层
    1. 查壳:Microsoft Visual Studio .NET 2005 -- 2008 -> Microsoft Corporation
    2. 经过OD跟踪,得出注册码形如XXXXX-XXXXX-XXXXX-XXXXX(可参见对注册码格式检测部分),分别设4部分为S1、S2、S3、S4
    3.                           S1 -  S2 -  S3 -  S4
    复制代码
    我的电脑上怎么是“Microsoft Visual C++ v6.0 DLL *”?
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2015-8-23 23:49
  • 签到天数: 27 天

    [LV.4]偶尔看看III

     楼主| 发表于 2011-1-17 18:48:40 | 显示全部楼层
    我的电脑上怎么是“Microsoft Visual C++ v6.0 DLL *”?
    CCC_Fish 发表于 2011-1-17 13:14




    呵呵,我在单位上用看雪版的PEID查的与兄弟一样:Microsoft Visual C++ v6.0 DLL *





    但家里用另一版本则是:
    NET.GIF
    PYG19周年生日快乐!
  • TA的每日心情
    难过
    2024-4-22 14:49
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    发表于 2011-1-18 00:53:57 | 显示全部楼层
    精神可嘉!纳入精华~~
    这样学习下去,没有不成材的道理,兄弟应该慢慢开始keygen
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表