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編譯的。