解決kai's super goo 1.5讀光碟的問題
軟體名稱:kai's super goo 1.5 (35M ――〉天啦,我就是2M的專線網路螞蟻下載也用了7分24秒)
下載地址:http://www.iszero.com/php3-bin/redirect.php?ID=0&GET=/tuxing/zhizuo/Kaigoo.zip
軟體說明:
除錯工具:SoftICE4.05、W32dsm89
目的:解決kai's super goo 1.5讀光碟的問題
作者:chn-boy
除錯日期:2000-12-05
其實這個軟體除錯工作很簡單,沒有必要寫的這麼詳細,只是為了寫作規範化,所以我還是把它當作那麼一回事情來
寫。首先在SoftICE下下斷點 bpx GetWindowTextA,F5回到Windows,在那個輸入名字對話方塊裡隨便輸入一些字元,執行。
SoftICE會自動彈出(我一直都說:so beautiful),下命令bd *,按F12一直到superGoo領空,到了領空,第一件事情就
是在進入領空處的地方下一個斷點――bpx xxxxxxxx,以被後用。然後就是F10,一路跟蹤,直到彈出出錯對話方塊為止,
如下面的程式片斷:
:00401EC4 85C0
test eax, eax <-- 2)第二個步驟嘗試是改這個。。
:00401EC6 0F8532010000 jne 00401FFE
:00401ECC 8D8C2454020000 lea ecx, dword ptr
[esp+00000254]
:00401ED3 E818650800 call 004883F0
:00401ED8 85C0
test eax, eax <-- 根據下面的那個出錯對話方塊,首先懷疑這個地方有問題
<-- 1)第一個步驟嘗試是改這個。。
:00401EDA 0F8493000000 je 00401F73
:00401EE0 FFD3
call ebx
:00401EE2 6A06
push 00000006
* Possible StringData Ref from Data Obj ->"custom errors_"
|
:00401EE4 686C104900 push 0049106C
:00401EE9 8D8C245C010000 lea ecx, dword ptr
[esp+0000015C]
:00401EF0 68FF000000 push 000000FF
:00401EF5 51
push ecx
:00401EF6 E8A5620600 call 004681A0
:00401EFB 83C410
add esp, 00000010
:00401EFE 6A00
push 00000000
:00401F00 8D942458010000 lea edx, dword ptr
[esp+00000158]
:00401F07 52
push edx
:00401F08 8BCE
mov ecx, esi
:00401F0A FFD5
call ebp <-- 程式在這個Call中彈出出錯對話方塊,由於上面部分的程式
<-- 來看,先改嘗試改變前面1)和2)跳轉,如果不行的話,
<-- 就要跟到這個Call中再慢慢研究了。。這是 3)第三個步驟
:00401F0C 6A05
push 00000005
* Possible StringData Ref from Data Obj ->"custom errors_"
|
:00401F0E 686C104900 push 0049106C
:00401F13 8D44245C lea
eax, dword ptr [esp+5C]
:00401F17 68FF000000 push 000000FF
:00401F1C 50
push eax
:00401F1D E87E620600 call 004681A0
********* 中間的這個部分省略 **********
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00401EDA(C)
|
:00401F73 8B7C2444 mov
edi, dword ptr [esp+44] <--程式的正確入口
:00401F77 83C9FF
or ecx, FFFFFFFF
:00401F7A 33C0
xor eax, eax
:00401F7C F2
repnz
:00401F7D AE
scasb
根據上下文,bd *以後,首先在1)處下個斷點,F5回到Windows,重新來一次,程式會中斷在1)處,改掉1)後面的那個跳
轉,發現成功了。那麼這個地方就是關鍵了,記下這個地方的Code碼:85 c0 0f 84 93 00 00 00 ff d3 6a 06。用Hex Workshop
進行修改。
用Hex WorkShop(當然啦,你也可以用HView什麼之類的,我是因為看雪斑竹在破解工具欄中那個Hex WorkShop的介紹才一直
使用它的。。呵呵,因為我一直都在向看雪斑竹學習、一直在向他看齊 :b )開啟SuperGoo.exe,查詢前面說的那個字串,然
後有兩種修改方法:
1)改後面的那個 je 00401F73 為 jmp 00401F73
2)改 test eax, eax 為 xor eax, eax <-- 也就是把 85 改成 33 就可以了
我用的是第2中方法,嘿嘿(為什麼?哎,因為改動少嗎,只需改一個位元組就可以了。。。哈哈哈哈)
【最後整理】
改:85 c0 0f 84 93 00 00 00 ff d3 6a 06
^^
33
你便可以用任何字元進去了,而且執行第一次後,下次執行不再需要輸入東東了,可以直接進去了。。 *_^