解决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
你便可以用任何字符进去了,而且运行第一次后,下次运行不再需要输入东东了,可以直接进去了。。 *_^
- 标 题:解决kai's super goo 1.5读光盘的问题
- 作 者:chn-boy
- 时 间:2000-12-5 22:21:55
- 链 接:http://bbs.pediy.com