• 标 题:vfp&exe1.70注册码计算 (2千字)
  • 作 者:小楼
  • 时 间:2001-6-4 0:23:30
  • 链 接:http://bbs.pediy.com

vfp&exe1.72C注册码计算

    据其帮助文件,知道注册方式为keyfile保护。keyfile应在文件安装目录下。
    所以用filemon监视,知道keyfile为vfp&exe.bin,伪造它。
    经过一番艰苦跟踪后终于知道关键点

:0045640F E8B4150000              call 004579C8

F8进入,比对关键
......
:004579E5 8A27    mov ah, byte ptr [edi] <--依次取密码字串“好
                                          孩子8好孩子8...”
                                          ascii码对应为BA C3
                                          BA A2 D7 D3 38....
:004579E7 8A03    mov al, byte ptr [ebx] <--依次取vfp&exe.bin字串ascii码
:004579E9 80F800  cmp al, 00
:004579EC 7406    je 004579F4
:004579EE 38E0    cmp al, ah
:004579F0 7402    je 004579F4
:004579F2 30E0    xor al, ah            <--两者异或
:004579F4 8806    mov byte ptr [esi], al <--值存入ptr[ebx]
:004579F6 43      inc ebx
:004579F7 46      inc esi
:004579F8 47      inc edi
:004579F9 80FC38  cmp ah, 38
:004579FC 7502    jne 00457A00
:004579FE 89D7    mov edi, edx
:00457A00 E2E3    loop 004579E5          <--循环
......

    由动态跟踪知道,
1.当xor后dword ptr [006EFBF4]==机器码,则注册成功。
2.mov al, byte ptr [ebx]  <--ebx初值为006EF8B0
  6EFBF4-6EF8B0+1==837(BCD),
  所以VFP&EXE.bin文件第837~844字符对应计算后的机器码。此时的密码字顺序为“A2 D7 D3 38 BA C3 BA A2....”,由XOR原理知道:a = (a xor b) xor b
所以演算如下(我的机器码为1DDD0D4E):

机器码 对应ASCII码  密码ascii码  vfp&exe.bin字符位置  hex值
  1    31            A2          第837位          93
  D    44            D7          第838位          93
  D    44            D3          第839位          97
  D    44            38          第840位          7C
  0    30            BA          第841位          8A
  D    44            C3          第842位          87
  4    34            BA          第843位          8E
  E    45            A2          第844位          E7

    这样只要你构建一个vfp&exe.bin文件,其字符第837~844位依次填入上述HEX值,你就拥有注册版了。

    不知谁能写出一个可以自动生成vfp&exe.bin文件的注册机来,请一定将源代码提供,最好是DELPHI编译的。