tKC在他的破解教程中幾乎每次都提到WINDOW COMMANDER,而我是屬於一形成習慣就難改的那類,最近上網在華軍順手當下來。一使用,效果還真不錯“這腰不酸了,腿不疼了,胃也不抽筋了”,在此鄭重向大家推薦(如果你沒有用過)。
WINDOW COMMANDER的最新版本是4.52。它採用KEYFILE形式註冊,需要在它的目錄下有一個1024 BYTES的 WINCMD.KEY,註冊演算法很複雜,(至少我還看不明白)。
在此鄭重宣告:《論壇精華II》中有一篇C-pen寫的WINDOW COMMAND 4.51版的破解文章。這篇文章極其有用,我的破解就是完全參照完成的,只是地址不同,簡單的寫一下過程。
它是用ASPACK壓的,用TRW2000 LOAD,下 PNEWSEC,再下MAKEPE脫殼;
執行出現CRC CHECK的訊息框,下 BPX MESSAGEBOXA,攔到:
:004EAC4D 8D85E4FDFFFF lea eax, dword
ptr [ebp+FFFFFDE4]
:004EAC53 E87CF0F1FF call
00409CD4
:004EAC58 50
push eax
:004EAC59 8B45FC
mov eax, dword ptr [ebp-04]
:004EAC5C E8576EF3FF call
00421AB8
:004EAC61 50
push eax
* Reference To: USER32.MessageBoxA, Ord:0000h 《==
|
:004EAC62 E8E1ADF1FF Call
00405A48
:004EAC67 6A00
push 00000000
* Possible Reference to String Resource ID=61536: "Grid index out of range"
|
:004EAC69 6860F00000 push
0000F060
:004EAC6E 6812010000 push
00000112
:004EAC73 8B45FC
mov eax, dword ptr [ebp-04]
靜態分析,向上找:
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004EA8B4(C)
|
:004EA8EC 83E809
sub eax, 00000009
:004EA8EF 0F8438060000 je 004EAF2D
:004EA8F5 48
dec eax
:004EA8F6 0F84E4060000 je 004EAFE0
:004EA8FC 48
dec eax
:004EA8FD 0F8485060000 je 004EAF88
:004EA903 2D36050000 sub eax,
00000536
:004EA908 90
nop
:004EA909 90
nop
:004EA90A 90
nop
:004EA90B 90
nop
:004EA90C 90
nop
:004EA90D 90
nop
:004EA90E E962070000 jmp 004EB075
(跳轉已NOP掉)
作出WINCMD.KEY檔案,再下 BPX CREATEFILEA,攔WINCMD.KEY的讀取,跟到以下兩處:
:004D902A 8D8560FAFFFF lea eax, dword
ptr [ebp+FFFFFA60]
:004D9030 8D9570FEFFFF lea edx, dword
ptr [ebp+FFFFFE70]
* Possible Reference to String Resource ID=00016: "Specify file type"
|
:004D9036 B910000000 mov ecx,
00000010
:004D903B E8E499F2FF call
00402A24
:004D9040 0F84AE000000 je 004D90F4
:004D9046 33DB
xor ebx, ebx
和:
:004D9445 8D8560FAFFFF lea eax, dword
ptr [ebp+FFFFFA60]
:004D944B 8D9560FEFFFF lea edx, dword
ptr [ebp+FFFFFE60]
* Possible Reference to String Resource ID=00016: "Specify file type"
|
:004D9451 B910000000 mov ecx,
00000010
:004D9456 E8C995F2FF call
00402A24
:004D945B 7402
je 004D945F
:004D945D 33DB
xor ebx, ebx
這兩處比較[EAX]和[EDX]處內容是否一致,若成功會跳走。我是這樣改的:
將EAX賦值分別改為
lea eax, dword ptr [ebp+FFFFFE70]
。。。。
lea eax, dword ptr [ebp+FFFFFE60]
這樣就可以了。
C-pen提到的暗樁同樣存在,就是每執行一項什麼功能,WINCOMMANDER會退出,怎麼設斷呢?
關鍵點在這裡:它的‘關於’是一個訊息框,好了 BE MESSAGEBOXA,點‘關於’,攔下後,一個跳轉會到這裡
:004F3BA1 A198525400 mov eax,
dword ptr [00545298]
:004F3BA6 2DB9230000 sub eax,
000023B9
〈==改為 XOR EAX,EAX
CMP EAX,EAX
NOP
:004F3BAB 740A
je 004F3BB7
* Possible Reference to String Resource ID=00001: "Enter file types (e.g.
*.doc;*.txt)"
|
:004F3BAD B801000000 mov eax,
00000001
:004F3BB2 E84509F1FF call
004044FC
問題解決了,當然,我不清楚KEYFILE的計算註冊名是亂碼,哪位兄臺有興趣可以追一追。
僅以此文獻給C-pen