Window Commander極其好用,請參照破解 (4千字)

看雪資料發表於2001-04-04

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

相關文章