破解深入地心(Game)
破解程序:
深入地心(Game)
破解工具:
SoftICE 3.0 For Windows 95
W32Dasm 8.5
破解者:
chcw
在安装完深入地心之后,执行其主程序Emb.exe,得到错误提示“你并未正确安装本游戏”。下
面我们将分析并解决该错误。
1. 用SoftICE载入EMB.EXE。
2. 因为在运行时会有一个错误提示,我们就对它设置断点:
BPX MESSAGEBOXA
3. 按Ctrl-D,程序开始运行,触发SoftICE,光带停留在MessageBoxA函数的入口处:
USER32!MessageBoxA
0137:BFF541BA PUSH EBP
将光标移到MessageBoxA函数的返回处
0137:BFF541D RET 0010
并键入命令HERE,程序执行到光标所在处。
4. 按F10,回到调用MessageBoxA函数的上层语句处:
0137:00470B29 CALL USER32!MessageBoxA
从该语句处向上找,发现在:00470B0F有一处函数调用,其函数的返回值决定了是否显示错误的
提示。
0137:00470B0F CALL 00402F5E <-函数调用
0137:00470B14 ADD ESP, 00000004
0137:00470B17 TEST EAX, EAX ;若EAX非零,则不显示错误信息。
0137:00470B19 JNE 00470B36
5. 键入BC *,清除原先的断点。再将鼠标移到:00470B17 TEST EAX, EAX处双击,设置执行断
点。
6. 按Ctrl-D回到执行程序,此时程序显示完错误信息,并正常退出。在SoftICE中选择Module/Load
再次载入程序。
7. 程序开始运行后 ,SoftICE将被触发,刚才设置的断点被激活了:
0137:00470B17 TEST EAX, EAX ; <-激活的断点处
键入r eax=1,将eax的值强行设置为1。然后键入X,继续运行程序。此时程序不再显示错误信息,
而是开始显示主界面。但在选择New Game后,程序继续执行时会出错并退出。看来,很可能函数
00402F5E读取了某些主程序运行时所必须的数据,我们需要进一步分析函数00402F5E
8. 用W32Dasm对执行程序EMB.EXE进行反汇编,并在Search/Find Text中输入"call 00402F5E",查找
调用函数00402F5E的语句,亮条将停留在以下语句处:
:00470B0F E84A24F9FF call 00402F5E
在工具栏上选择"Call",文本调用(Text Call)该函数。亮条将停留在函数00402F5E的入口处:
:00402F5E 55 push ebp
9. 从:00402F5E处往下看,可以知道该函数的大致功能。函数的第一部分是调用wsprintfA()函数:
wsprintfA(OneString, "Software\TGL\INSTALL\%s", AnotherString) ,
形成一个型如"Software\TGL\INSTALL\AnotherString"的串OneString以备后用(OneString和
AnotherString是参数,为叙述方便,这里我们指定它们的名字):
* Possible StringData Ref from Data Obj ->"Software\TGL\INSTALL\%s"
|
:00402F6B 6868304800 push 00483068
:00402F70 8D8DFCFEFFFF lea ecx, dword ptr [ebp+FFFFFEFC]
:00402F76 51 push ecx
|
* Reference To: USER32.wsprintfA, Ord:0264h
:00402F77 FF1544865B00 Call dword ptr [005B8644]
程序的第二部分是从注册表中打开上述串OneString对应的键,并从中取出某一串值:
:00402F95 6801000080 push 80000001
* Reference To: ADVAPI32.RegOpenKeyExA, Ord:012Eh
|
:00402F9A FF15FC835B00 Call dword ptr [005B83FC]
...
* Possible StringData Ref from Data Obj ->"GameDirectory"
|
:00402FB9 6880304800 push 00483080
:00402FBE 8B95F8FEFFFF mov edx, dword ptr [ebp+FFFFFEF8]
:00402FC4 52 push edx
* Reference To: ADVAPI32.RegQueryValueExA, Ord:0136h
|
:00402FC5 FF1500845B00 Call dword ptr [005B8400]
...
从串名"GameDirectory"我们可以猜到,该串中存放的串值是游戏的目录。查Win32 SDK可
以知道这个键是在HKEY_CURRENT_USER下。
根据上述分析,我们可以猜想到,在正版的游戏正常安装后,会生成主键
HKEY_CURRENT_USER\Software\TGL\INSTALL\AnotherString
并在该主键下生成一个串,该串的名字为"GameDirectory",值为游戏文件所在的目录。我
们只要在注册表中手工键入上述的主键和串,就应该能使程序正常启动。
10.但是在串\Software\TGL\INSTALL\AnotherString中尚有子串AnotherString的值是未知的。
在工具栏上选择"Ret",返回到调用函数00402F5E的语句处:
:00470B0A 68849E4800 push 00489E84
:00470B0F E84A24F9FF call 00402F5E
从压栈的参数中我们可以获取串AnotherString的地址为00489E84。
11.选择HexData/Hex Display of Data Object/Segments,并找到00489E84处的数据:
:00489E80 xx xx xx xx B2 60 A4 4A RH...`.J
:00489E88 A6 61 A4 DF 00 xx xx xx .a......
这些数据看起来好象是一些乱码,仔细分析一下,就可以发现它们都是中文的内码(BIG5),
解读后得到字符串AnotherString="深入地心"。
12.现在我们可以修改注册表了。执行REGEDIT,打开注册表,创建键
HKEY_CURRENT_USER\Software\TGL\INSTALL\深入地心,(注意这里必须用BIG5输入),并
在此主键中加入串GameDirectory=.\
附:修改注册表的文件EMB.REG
------------------------ EMB.REG ----------------------------
REGEDIT4
//Regist Embrace(Add a key to the register table)
//Written By Mr. CHCW
[HKEY_CURRENT_USER\Software\TGL]
[HKEY_CURRENT_USER\Software\TGL\INSTALL]
[HKEY_CURRENT_USER\Software\TGL\INSTALL\瞏み]
"GameDirectory"=".\\"
--------------------- End of File EMB.REG -------------------
(出处:赢政天下收集整理)
相关文章:
·关于注册Flag在破解中的应用
·从轻松试卷 v4.03 的破解看 r fl z 的妙用
·破解圣经之------滚瓜烂熟篇
·破解API Spy for Windows 95/98/NT/2000
·chm帮助编辑器v2.6 注册码破解详谈之一*脱壳篇*
·破解NetAlert v2 [热点] 指导如何自动脱壳!!
·破解的理由
·对于破解的一些想法
·Audio Converter 3.0 破解要点
·破解 Matcom 4.0 for BC
相关软件:
·美萍安全卫士密码破解器 3.0+
·网文快爪 v1.0 破解版
·坏猫网页编辑 v2.0完整版破解文件
·pakmarker1.0破解版
·IE Plus!破解版
·邮件服务器2.6+破解版
·登录奇兵 3.01破解文件
·易思多媒体网络教室-4用户演示版破解文件
·网络三国智能机器人1.0.0.101版破解
·网络三国智能机器人1.0.0.103版破解
→ 特别推荐
→ 热点TOP10
我为人人《《==》》人人为我
关于我们 |
帮助(?)
| 广告服务 |
版权声明 |
商业合作 |
发展历程 |
加盟我们 |
联系我们
Copyright © 1999-2003
winzheng.com All Rights Reserved.
繁体版:由华琦数码技术提供
Powered
by:MeSky.Net
当年一篇教程能让一台电脑焕然一新;今天的效率工具换成了 AI。 想知道当下最可靠的 AI 模型怎么选?看 赢政指数——我们用了 28 年的选软件严谨,现在用来评测大模型。