-
-
修改豪杰解霸V8播放显示信息
-
发表于:
2004-5-27 15:19
6851
-
修改豪杰解霸V8播放显示信息
作者:牛博威
QQ : 343538175
http://nboy.cnwlt.com
用豪杰播放电影的时候,在屏幕的右上角总有"豪杰超级解霸"的信息,看起来不爽。作为一个diy爱好者,怎么能忍受呢?下面我们看看怎么把它干掉!
首先,打开WinHex,进入Tools/Ram Editor选项,搜索"豪杰超级解霸",发现在且仅在00433df0处有该数据。
这就好办了,下面还用说,用hiew打开STHSDVD.exe文件,切换入16进制形式,F5,跳转到文件偏移地址:33df0处,把数据BAC0BDDCB3ACBCB6BDE2B0D4(豪杰超级解霸的AscII码)全改为00就可以了。我满怀希望打开一看,立马傻了,原来:33df0处是73 74 68 73 64 76 64,也就是“sthsdvd”。为什么会不对呢?难道是我们搜索错误么?
答案肯定是否定的。原来,在:33df0(OA)处本来就是“sthsdvd”,豪杰在启动的时候把这个字符串给修改成了“豪杰超级解霸”字符串。这样我们在源文件中修改sthsdvd肯定没有什么作用了。
那我们就坐以待毙了么?当然不是。这里有几个方案可以供大家参考。
一、
作个动态补丁,等程序在入运行的时候把:433df0的数据更换掉。这样做非常简单,大家都熟悉了做游戏修改器,做这个岂不是easy!但是为了这么个小东西就这样做,也太夸张了点;
二、
既然“豪杰超级解霸”是程序动态载入的,那我们就找出来它到底从哪里搞到的“豪杰超级解霸”这几个字,然后我们把“豪杰超级解霸”的“老窝”给端掉就可以了。这个方案看起来是可行的,但是我追了一下,发现“老窝”所在的地址是个比较麻烦的地址,为什么说麻烦呢?因为它的地址在STHSDVD.exe文件中是找不到的,据我估计或许是来自某一个dll文件。这样看来还要再找那个dll么?我是没心情再找了,哪位老大要有兴趣自己去找吧;
三、
第2种方法是找到“豪杰超级解霸”的“老窝”,难道我们找到程序载入点,不让它载入“豪杰超级解霸”不行么?我们下面要看看什么地方调用了这个字符串。打开trw2000,
bpm 433df0 (当对433df0有操作的时候发生中断)。打开STHSDVD.exe,Trw拦截到:
0167:bff711be REPNE SCASB
你可以看看EDI,发现“thsdvd”字符串就是在这里被“挪移”成了“豪杰超级解霸”,但是0167:bff711be这个地方肯定我们无法静态修改(看看那地址,就知道反编译肯定找不到)。
我们可以跳出来,在TRW中下F12,跳出来,到了下面:
* Possible StringData Ref from Data Obj ->"sthsdvd"
:0041024C 68F03D4300 push 00433DF0 '修改为push 00433e00
…………………..
* Reference To: USER32.LoadStringA, Ord:01ABh
:00410254 FF15C4034300 Call dword ptr [004303C4]
原来USER32.LoadStringA是幕后黑手。上面的"sthsdvd"就是“作案对象”。这就好办了,我们把LoadStringA的作案对象修改就可以了。我把push 00433DF0改为push 00433e00,因为00433e00比较“清静”,全部是00。下面就好办了,再次用Hiew打开STHSDVD.exe ,把那个地方修改就可以了。你要是嫌麻烦可以不这样做,由于STHSDVD.exe载入的时候不对内存进行更新,假如你现在用TRW动态修改试验成功了,那先把豪杰关掉,把STHSDVD.exe文件直接用Hiew打开,就把你的动态修改结果保存了,请注意这个技巧使用前最好备份一下哦。
现在,豪杰就不对“sthsdvd”进行操作了,再次打开豪杰,播放一个电影,发现屏幕上的现在成了:“sthsdvd”。按照文章开始介绍的方法,把00433df0(RA) 处写上你的信息,那么,自己也可以留名豪杰了:) 。我修改成了:“D3C0D4B6B5C4CCABBFD5B1A4C0DD”,就是“永远的太空堡垒”。
再次播放一个电影,哇,这次成功了,并且在没播放任何电影的时候,播放屏幕的标题是:“永远的太空堡垒”!这可是个意外成果。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课