飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 6034|回复: 16

[原创] 文件批量重命名 4.20 验证流程分析

[复制链接]
  • TA的每日心情
    开心
    2016-5-24 12:54
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2014-6-30 00:22:35 | 显示全部楼层 |阅读模式
    本帖最后由 mod5689 于 2014-6-30 00:47 编辑

    纯代码的东西估计没几个人愿意去看,先说下大概流程


    启动时:先看\user\renamefile.txt 文件是否存在,不存在标题自然是未注册,同时功能限制的全局变量赋值0.
                                                                             若文件存在,验证其保存的机器码、注册码与程序计算的两项是否都相等,不一样则未注册版,功能限制全局变量赋值0;
                                                                                                                                                                                                 若一样则注册版,功能限制全局变量赋值-1
    注册时:与启动时一样,先检查文件是否存在,内容是否正确。若都正确刚显示 已注册!但是功能限制的全局变量未重新赋值。
                                                                                                      若不正确,让你输入注册码再进行验证。
    功能限制:检查全局变量的值,-1代表已注册,0代表未注册同时开启限制。


    无代码无真相



    启动时验证流程:

    004C63B4   .  E8 87FDFFFF   call    004C6140                                                             ;  判断 \文件批量重命名4.20\user\renamefile.txt 是否存在
    004C63B9   .  0FBFD0        movsx   edx, ax                                                                ;  ax=-1 为文件存在
    004C63BC   .  85D2          test    edx, edx
    004C63BE   .  0F84 6A030000 je      004C672E                                                          ;  文件不存在直接跳向004C679A   push  00491E20   ; / 未注册版

    004C6411   .  8B4D D4       mov     ecx, dword ptr ss:[ebp-2C]                                  ;  读取文件的内容 (UNICODE "123          1111-1111-1111-1111")

    004C64F6   .  8BD0          mov     edx, eax                                                                 ;  读取机器码eax:(UNICODE "123")
    004C65E4   .  8BD0          mov     edx, eax                                                                 ;  程序自己计算的机器码eax=001922DC, (UNICODE "0--0-")
    004C65F0   .  FF15 F4104000 call    near dword ptr ds:[<&MSVBVM60.__>                ;  比较读取和程序自己计算的 机器码是否一样


    004C65FF   .  8B4D D8       mov     ecx, dword ptr ss:[ebp-28]                                   ;  读取的注册码:[ebp-44](UNICODE "1111-1111-1111-1111")
    004C6602   .  51            push    ecx
    004C6603   .  E8 98020000   call    004C68A0
    004C6608   .  8BD0          mov     edx, eax                                                                 ;  程序计算的注册码 eax=00191A3C, (UNICODE "0000-0000-0000-0000")
    004C660A   .  8D4D BC       lea     ecx, dword ptr ss:[ebp-44]
    004C660D   .  FF15 BC124000 call    near dword ptr ds:[<&MSVBVM60.__>               ;  MSVBVM60.__vbaStrMove
    004C6613   .  50            push    eax
    004C6614   .  FF15 F4104000 call    near dword ptr ds:[<&MSVBVM60.__>                ;  比对 读取和计算的注册码


    004C6621   .  66:23F0       and     si, ax                                                                      ;  si 为机器码比对结果, ax为注册码比对结果
    004C6624   .  66:8975 80    mov     word ptr ss:[ebp-80], si                                      ;  si:最终校验结果
    004C6628   .  8D55 BC       lea     edx, dword ptr ss:[ebp-44]
    004C662B   .  52            push    edx
    004C662C   .  8D45 C0       lea     eax, dword ptr ss:[ebp-40]
    004C662F   .  50            push    eax
    004C6630   .  6A 02         push    2
    004C6632   .  FF15 50124000 call    near dword ptr ds:[<&MSVBVM60.__>               ;  MSVBVM60.__vbaFreeStrList
    004C6638   .  83C4 0C       add     esp, 0C
    004C663B   .  0FBF4D 80     movsx   ecx, word ptr ss:[ebp-80]                                 ;最终校验结果
    004C663F   .  85C9          test    ecx, ecx
    004C6641   . /0F84 E2000000 je      004C6729                                                         ;  启动时验证机器码、注册码 确定是不是注册版
    004C6647   .  C745 FC 0C000>mov     dword ptr ss:[ebp-4], 0C
    004C664E   .  66:C745 D0 FF>mov     word ptr ss:[ebp-30], 0FFFF                           ;  是注册版的话就赋值-1, 功能限制 全局变量
    004C6654   .  C745 FC 0D000>mov     dword ptr ss:[ebp-4], 0D
    004C665B   . |833D 7C405200>cmp     dword ptr ds:[52407C], 0
    004C6662   . |75 1C         jnz     short 004C6680
    004C6664   . |68 7C405200   push    0052407C
    004C6669   . |68 08C84800   push    0048C808
    004C666E   . |FF15 2C124000 call    near dword ptr ds:[<&MSVBVM60.__>               ;  MSVBVM60.__vbaNew2
    004C6674   . |C785 40FFFFFF>mov     dword ptr ss:[ebp-C0], 0052407C
    004C667E   . |EB 0A         jmp     short 004C668A
    004C6680   > |C785 40FFFFFF>mov     dword ptr ss:[ebp-C0], 0052407C
    004C668A   > |8B95 40FFFFFF mov     edx, dword ptr ss:[ebp-C0]
    004C6690   . |8B02          mov     eax, dword ptr ds:[edx]
    004C6692   . |8945 80       mov     dword ptr ss:[ebp-80], eax
    004C6695   . |68 FC144900   push    004914FC                                                         ;  文件批量重命名
    004C669A   . |8B0D 14405200 mov     ecx, dword ptr ds:[524014]
    004C66A0   . |51            push    ecx                                                                           ; /String => "4"
    004C66A1   . |FF15 60104000 call    near dword ptr ds:[<&MSVBVM60.__>               ; \__vbaStrCat
    004C66A7   . |8BD0          mov     edx, eax
    004C66A9   . |8D4D C0       lea     ecx, dword ptr ss:[ebp-40]
    004C66AC   . |FF15 BC124000 call    near dword ptr ds:[<&MSVBVM60.__>               ;  MSVBVM60.__vbaStrMove
    004C66B2   . |50            push    eax
    004C66B3   . |68 10154900   push    00491510                                                         ; /  注册版
    004C66B8   . |FF15 60104000 call    near dword ptr ds:[<&MSVBVM60.__>               ; \__vbaStrCat
    004C66BE   . |8BD0          mov     edx, eax

    004C6724   . /E9 E2000000   jmp     004C680B

    004C6735   .  66:C745 D0 00>mov     word ptr ss:[ebp-30], 0                                 ; 如果renamefile.txt不存在,就跳到这里了

    004C679A   .  68 201E4900   push    00491E20                                                        ; / 未注册版

    004C687D      66:8B45 D0    mov     ax, word ptr ss:[ebp-30]                                  ; 功能限制 全局变量

    004C6891   .  C3            retn                                                                                    ;  返回到 004F3483


    004F347E   .  E8 BD2DFDFF   call    004C6240                                                         ; 这个call 就是上述 过程
    004F3483   .  66:A3 1040520>mov     word ptr ds:[524010], ax                            ;  功能限制 全局变量





    注册时的验证流程:

    004D07B0   .  E8 FB69FFFF   call    004C71B0                                                             ;  计算 机器码
    004D07B5   .  8BD0          mov     edx, eax                                                                 ;  机器码 eax=03CB4D8C, (UNICODE "0--0-")

    004D083B   .  68 683B4900   push    00493B68                                                         ;  未注册   默认是未注册


    004D0893   .  E8 A858FFFF   call    004C6140                                                             ;  查看 renamefile.txt 是否存在
    004D0898   .  0FBFC0        movsx   eax, ax                                                                ;  ax -1 存在    0 不存在
    004D089B   .  85C0          test    eax, eax
    004D089D   .  0F84 71040000 je      004D0D14                                                        ;  不存在则跳向 未注册 并且让你输入注册码。若存在则读取注册码


    004D09E0   .  E8 BB5EFFFF   call    004C68A0                                                             ;  计算注册码
    004D09E5   .  8945 B4       mov     dword ptr ss:[ebp-4C], eax
    004D09E8   .  C745 AC 08800>mov     dword ptr ss:[ebp-54], 8008
    004D09EF   .  8D4D BC       lea     ecx, dword ptr ss:[ebp-44]
    004D09F2   .  51            push    ecx                                                                            ; /var18
    004D09F3   .  8D55 AC       lea     edx, dword ptr ss:[ebp-54]   
    004D09F6   .  52            push    edx                                                                            ; |var28
    004D09F7   .  FF15 44114000 call    near dword ptr ds:[<&MSVBVM60.__>                ; \__vbaVarTstEq
    004D09FD   .  66:8945 80    mov     word ptr ss:[ebp-80], ax                                     ;  注册窗口 注册码比对
    004D0A01   .  8D45 AC       lea     eax, dword ptr ss:[ebp-54]
    004D0A04   .  50            push    eax
    004D0A05   .  8D4D BC       lea     ecx, dword ptr ss:[ebp-44]
    004D0A08   .  51            push    ecx
    004D0A09   .  6A 02         push    2
    004D0A0B   .  FF15 3C104000 call    near dword ptr ds:[<&MSVBVM60.__>               ;  MSVBVM60.__vbaFreeVarList
    004D0A11   .  83C4 0C       add     esp, 0C
    004D0A14   .  0FBF55 80     movsx   edx, word ptr ss:[ebp-80]
    004D0A18   .  85D2          test    edx, edx
    004D0A1A   .  0F84 F4020000 je      004D0D14                                                         ;  读取的注册码不正确就跳向 让你输入注册码
    004D0A20   .  C745 FC 0C000>mov     dword ptr ss:[ebp-4], 0C
    004D0A27   .  8B45 08       mov     eax, dword ptr ss:[ebp+8]
    004D0A2A   .  8B08          mov     ecx, dword ptr ds:[eax]
    004D0A2C   .  8B55 08       mov     edx, dword ptr ss:[ebp+8]
    004D0A2F   .  52            push    edx
    004D0A30   .  FF91 4C030000 call    near dword ptr ds:[ecx+34C]
    004D0A36   .  50            push    eax
    004D0A37   .  8D45 CC       lea     eax, dword ptr ss:[ebp-34]
    004D0A3A   .  50            push    eax
    004D0A3B   .  FF15 BC104000 call    near dword ptr ds:[<&MSVBVM60.__>               ;  MSVBVM60.__vbaObjSet
    004D0A41   .  8945 84       mov     dword ptr ss:[ebp-7C], eax
    004D0A44   .  68 843B4900   push    00493B84                                                         ;  已注册!


                            若renamefile.txt 不存在或者保存的注册不正确则会让你重新输入注册


    004D0034   .  E8 6768FFFF   call    004C68A0                                                             ;  计算注册码
    004D0039   .  8945 88       mov     dword ptr ss:[ebp-78], eax
    004D003C   .  C745 80 08800>mov     dword ptr ss:[ebp-80], 8008
    004D0043   .  8D4D 90       lea     ecx, dword ptr ss:[ebp-70]
    004D0046   .  51            push    ecx                                                                           ; /var18
    004D0047   .  8D55 80       lea     edx, dword ptr ss:[ebp-80]                                     ; |
    004D004A   .  52            push    edx                                                                           ; |var28
    004D004B   .  FF15 44114000 call    near dword ptr ds:[<&MSVBVM60.__>               ; \__vbaVarTstEq  比对你输入的和计算的注册
    004D0051   .  66:8985 1CFFF>mov     word ptr ss:[ebp-E4], ax
    004D0058   .  8D45 80       lea     eax, dword ptr ss:[ebp-80]
    004D005B   .  50            push    eax
    004D005C   .  8D4D 90       lea     ecx, dword ptr ss:[ebp-70]
    004D005F   .  51            push    ecx
    004D0060   .  8D55 A0       lea     edx, dword ptr ss:[ebp-60]
    004D0063   .  52            push    edx
    004D0064   .  6A 03         push    3
    004D0066   .  FF15 3C104000 call    near dword ptr ds:[<&MSVBVM60.__>                ;  MSVBVM60.__vbaFreeVarList
    004D006C   .  83C4 10       add     esp, 10
    004D006F   .  0FBF85 1CFFFF>movsx   eax, word ptr ss:[ebp-E4]
    004D0076   .  85C0          test    eax, eax
    004D0078      0F84 F2030000 je      004D0470                                                          ;  输入的注册码不正确就跳注册码错误提示,若正确则将机器码、注册码保存到 renamefile.txt

    004D036A   .  68 7C3A4900   push    00493A7C                                                         ;  文件批量重命名 注册版   (注册码正确标题也会改)





    功能限制验证:

    004EC95A   .  0FBF05 104052>movsx   eax, word ptr ds:[524010]                           ;  启动时赋值的全局变量 -1 注册,0 未注册
    004EC961   .  85C0          test    eax, eax
    004EC963   .  0F85 C3000000 jnz     004ECA2C
    004EC969   .  837D D4 03    cmp     dword ptr ss:[ebp-2C], 3                                   ;  如果是未注册,就判断是不是第三个文件
    004EC96D   .  0F8E B9000000 jle     004ECA2C
    004EC973   .  C745 FC 28000>mov     dword ptr ss:[ebp-4], 28
    004EC97A   .  C785 2CFFFFFF>mov     dword ptr ss:[ebp-D4], 80020004
    004EC984   .  C785 24FFFFFF>mov     dword ptr ss:[ebp-DC], 0A
    004EC98E   .  C785 3CFFFFFF>mov     dword ptr ss:[ebp-C4], 80020004
    004EC998   .  C785 34FFFFFF>mov     dword ptr ss:[ebp-CC], 0A
    004EC9A2   .  C785 4CFFFFFF>mov     dword ptr ss:[ebp-B4], 80020004
    004EC9AC   .  C785 44FFFFFF>mov     dword ptr ss:[ebp-BC], 0A
    004EC9B6   .  C785 ECFEFFFF>mov     dword ptr ss:[ebp-114], 00494BB0                ;  未注册用户最多只有操作3个文件!

    我的修改方法是:修改几行代码,让注册时把机器码和真码保存到renamefile.txt

    评分

    参与人数 3威望 +28 飘云币 +24 收起 理由
    GeekCat + 4 厉害
    Nisy + 20 + 20 赞一个!
    Dxer + 4 + 4 佩服佩服。

    查看全部评分

    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2020-11-19 11:04
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2014-7-1 08:52:59 | 显示全部楼层

    004C6A4C  XOR EDI,EDI                             ;  i=0
    004C6A4E  MOV EAX,19
    004C6A53  CMP DI,AX                               ;  i<=25
    004C6A56  JG 文件批量.004C6AF3
    004C6A5C  PUSH 文件批量.00491E48                      ;  "A"
    004C6A61  CALL NEAR DWORD PTR DS:[<&MSVBVM60.#516>;  取ASC码
    004C6A67  ADD AX,DI                               ;  "A"+i
    004C6A6A  LEA ECX,DWORD PTR SS:[EBP-E8]
    004C6A70  JO 文件批量.004C71A3
    004C6A76  MOVSX EAX,AX
    004C6A79  PUSH EAX
    004C6A7A  PUSH ECX
    004C6A7B  CALL NEAR DWORD PTR DS:[<&MSVBVM60.#608>;  转化为字符
    004C6A81  MOV DX,DI
    004C6A84  ADD DX,1
    004C6A88  JO 文件批量.004C71A3
    004C6A8E  MOVSX EBX,DX
    004C6A91  DEC EBX
    004C6A92  CMP EBX,1A
    004C6A95  JB SHORT 文件批量.004C6A9D
    004C6A97  CALL NEAR DWORD PTR DS:[<&MSVBVM60.__vb>;  MSVBVM60.__vbaGenerateBoundsError
    004C6A9D  LEA EAX,DWORD PTR SS:[EBP-E8]
    004C6AA3  PUSH EAX
    004C6AA4  CALL NEAR DWORD PTR DS:[<&MSVBVM60.__vb>;  MSVBVM60.__vbaStrVarMove
    004C6AAA  MOV EDX,EAX
    004C6AAC  LEA ECX,DWORD PTR SS:[EBP-D8]
    004C6AB2  CALL NEAR DWORD PTR DS:[<&MSVBVM60.__vb>;  MSVBVM60.__vbaStrMove
    004C6AB8  MOV ECX,DWORD PTR SS:[EBP-6C]
    004C6ABB  MOV EDX,EAX
    004C6ABD  LEA ECX,DWORD PTR DS:[ECX+EBX*4]
    004C6AC0  CALL NEAR DWORD PTR DS:[<&MSVBVM60.__vb>;  存入字符表
    004C6AC6  LEA ECX,DWORD PTR SS:[EBP-D8]
    004C6ACC  CALL NEAR DWORD PTR DS:[<&MSVBVM60.__vb>;  MSVBVM60.__vbaFreeStr
    004C6AD2  LEA ECX,DWORD PTR SS:[EBP-E8]
    004C6AD8  CALL NEAR DWORD PTR DS:[<&MSVBVM60.__vb>;  MSVBVM60.__vbaFreeVar
    004C6ADE  MOV EAX,1
    004C6AE3  ADD AX,DI                               ;  i++
    004C6AE6  JO 文件批量.004C71A3
    004C6AEC  MOV EDI,EAX
    004C6AEE  JMP 文件批量.004C6A4E


    这部分的作用是生成大写字符表(没有采用常量模式),最终结果是:
    ABCDEFGHIJKLMNOPQRSTUVWXYZ

    计算注册码:

    004C6AF3  MOV EBX,1                               ;  j=1--外循环
    004C6AF8  MOV EAX,4
    004C6AFD  MOV DWORD PTR SS:[EBP-18],EBX
    004C6B00  CMP BX,AX                               ;  j<=4?--机器码一共四段,分段计算
    004C6B03  MOV EDI,1                               ;  i=1--内循环
    004C6B08  JG 文件批量.004C6E81
    004C6B0E  MOV DWORD PTR SS:[EBP-40],EDI
    004C6B11  MOV EAX,4
    004C6B16  CMP DI,AX                               ;  i<=4?--注册码共四段,每段4位
    004C6B19  JG 文件批量.004C6E6C
    ……
    省略浮云代码段
    ……
    004C6BC3  CALL NEAR DWORD PTR DS:[<&MSVBVM60.#632>;  读取机器码一位--分段进行
    ……
    省略浮云代码段
    ……
    004C6C58  CALL NEAR DWORD PTR DS:[<&MSVBVM60.#581>;  转化为整数--按十进制模式
    004C6C5E  FSTP QWORD PTR SS:[EBP-154]             ;  结果
    ……
    省略浮云代码段
    ……
    004C6C72  FILD DWORD PTR SS:[EBP-1A0]             ;  i
    004C6C78  FSTP QWORD PTR SS:[EBP-1A8]
    004C6C7E  FLD QWORD PTR SS:[EBP-1A8]
    004C6C84  FMUL QWORD PTR SS:[EBP-154]             ;  转化值*i
    004C6C8A  FSTSW AX
    004C6C8C  TEST AL,0D
    004C6C8E  JNZ 文件批量.004C719E
    004C6C94  CALL NEAR DWORD PTR DS:[<&MSVBVM60.__vb>;  结果取整
    004C6C9A  MOV EDX,DWORD PTR SS:[EBP-98]
    004C6CA0  LEA ECX,DWORD PTR DS:[ESI+EDI*4]
    004C6CA3  CMP ESI,4
    004C6CA6  MOV WORD PTR DS:[EDX+ECX*2],AX          ;  保存结果
    ……
    省略浮云代码段
    ……
    004C6CDC  CMP WORD PTR DS:[EAX+ECX*2],1           ;  结果与1比较
    004C6CE1  LEA ECX,DWORD PTR DS:[ESI+EDI*4]
    004C6CE4  SETL DL                                 ;  若小于1则设置为1
    004C6CE7  XOR EBX,EBX
    004C6CE9  CMP WORD PTR DS:[EAX+ECX*2],1A          ;  结果与26比较
    004C6CEE  LEA ECX,DWORD PTR DS:[ESI+EDI*4]
    004C6CF1  SETG BL                                 ;  若大于则设置为1
    004C6CF4  OR EDX,EBX                              ;  判断值求 OR
    004C6CF6  NEG EDX
    004C6CF8  SBB EDX,EDX
    004C6CFA  XOR EBX,EBX
    004C6CFC  NEG EDX
    004C6CFE  CMP WORD PTR DS:[EAX+ECX*2],0F          ;  结果与15比较
    004C6D03  SETE BL                                 ;  相等则设置为1
    004C6D06  OR EDX,EBX                              ;  判断值求 OR
    004C6D08  JNZ SHORT 文件批量.004C6D6C             ;  上述判断只要一个为真,则转入处理模式2
    004C6D0A  CMP ESI,4                               ;  处理模式1
    ……
    省略浮云代码段
    ……
    004C6D29  MOVSX EBX,WORD PTR DS:[EAX+EDX*2]       ;  计算结果
    004C6D2D  DEC EBX                                 ;  计算索引值--字符表的索引
    004C6D2E  CMP EBX,1A                              ;  实际是判断结果是否大于26,到这里已无必要了
    004C6D31  JB SHORT 文件批量.004C6D39
    ……
    省略浮云代码段
    ……
    004C6D61  CALL NEAR DWORD PTR DS:[<&MSVBVM60.__vb>;  从字符表中读取一位做注册码--查表
    004C6D67  JMP 文件批量.004C6E4E
    004C6D6C  MOV EBX,DWORD PTR DS:[<&MSVBVM60.__vbaG>;  处理模式2
    ……
    省略浮云代码段
    ……
    004C6DC9  CALL NEAR DWORD PTR DS:[<&MSVBVM60.#660>;  计算结果转化为数字
    004C6DCF  LEA EDX,DWORD PTR SS:[EBP-F8]
    004C6DD5  PUSH 1
    004C6DD7  LEA EAX,DWORD PTR SS:[EBP-108]
    004C6DDD  PUSH EDX
    004C6DDE  PUSH EAX
    004C6DDF  CALL NEAR DWORD PTR DS:[<&MSVBVM60.#619>;  取结果的末尾做注册码对应位
    ……
    省略浮云代码段
    ……
    004C6E64  MOV DWORD PTR SS:[EBP-40],EDI           ;  i++
    004C6E67  JMP 文件批量.004C6B11                   ;  内循环
    004C6E6C  MOV EAX,1
    004C6E71  ADD AX,BX
    004C6E74  JO 文件批量.004C71A3
    004C6E7A  MOV EBX,EAX                             ;  j++
    004C6E7C  JMP 文件批量.004C6AF8                   ;  外循环


    机器码分为四段,每段长度1-4位不等,均用“-”分隔,且为十进制数字。
    对每一段,依次读取一位转化为整数(非ASC码),并乘以对应的位置号(1-4)。
    很显然,结果介于0-36,当结果为0、15、>26时,直接取末位做注册码对应位。
    如果介于1-14、16-26,则从字符表中读取对应位做注册码对应位。至于计算结果-1,是索引调整问题。
    很显然,注册码中含0不含O。

    如机器码为:1326-6360-1288-5849时,注册码计算过程为:
    字符表编号:
    1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
    A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z
    1326--1*1=1,3*2=6,2*3=6,6*4=24,对应注册码为:AFFX
    6360--6*1=6,3*2=6,6*3=18,0*4=0,对应注册码为:FFR0
    1288--1*1=1,2*2=4,8*3=24,8*4=32,对应注册码为:ADX2
    5849--5*1=5,8*2=16,4*3=12,9*4=36,对应注册码为:EPL6

    所以注册码为:AFFX-FFR0-ADX2-EPL6

    点评

    计算部分一看就明白了。过程还是不懂。过几天再回来分析算法。  详情 回复 发表于 2014-7-1 09:22

    评分

    参与人数 2威望 +44 飘云币 +40 收起 理由
    Nisy + 40 + 40 很给力!
    mod5689 + 4

    查看全部评分

    PYG19周年生日快乐!
    回复 支持 1 反对 0

    使用道具 举报

  • TA的每日心情
    开心
    2020-11-19 11:04
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2014-6-30 08:45:54 | 显示全部楼层
    注册算法并不复杂。

    点评

    [attachimg]72398[/attachimg] 欠你一个回复。今天补上。  详情 回复 发表于 2016-5-24 02:11
    不复杂是什么程度,在VB里晕了。一点头绪也没。 只猜出来每段注册码第一个数对应的字母  详情 回复 发表于 2014-6-30 23:50
    晚上再看看算法,万事开头难。  详情 回复 发表于 2014-6-30 08:57
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2016-5-24 12:54
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2014-6-30 08:57:56 | 显示全部楼层
    DaShanRen 发表于 2014-6-30 08:45
    注册算法并不复杂。

    晚上再看看算法,万事开头难。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2020-11-19 11:04
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2014-6-30 09:33:49 | 显示全部楼层
    等你的算法分析:

    测试用的

    测试用的
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-2-29 21:42
  • 签到天数: 117 天

    [LV.6]常住居民II

    发表于 2014-6-30 15:20:21 | 显示全部楼层
    把他搞出来了啊,猛
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2016-5-24 12:54
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2014-6-30 23:50:11 | 显示全部楼层
    DaShanRen 发表于 2014-6-30 08:45
    注册算法并不复杂。

    不复杂是什么程度,在VB里晕了。一点头绪也没。
    只猜出来每段注册码第一个数对应的字母
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2020-11-19 11:04
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2014-7-1 07:34:58 | 显示全部楼层
    等会给你算法分析。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2016-5-24 12:54
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2014-7-1 09:22:59 | 显示全部楼层
    DaShanRen 发表于 2014-7-1 08:52
    这部分的作用是生成大写字符表(没有采用常量模式),最终结果是:
    ABCDEFGHIJKLMNOPQRSTUVWXYZ

    计算部分一看就明白了。过程还是不懂。过几天再回来分析算法。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2016-5-24 12:54
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2016-5-24 02:11:11 | 显示全部楼层
    DaShanRen 发表于 2014-6-30 08:45
    注册算法并不复杂。

    a.png
    欠你一个回复。今天补上。

    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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