在前一篇文章中,介绍了《英雄无敌》3的complete(英文)版的免CD制作,但那是一副仓促之作,破解得很粗糙,留下了很大的不足!
《英雄无敌》3完整版complete(英文)——免CD修改
h3-0.png (84.94 KB, 下载次数: 0)
下载附件
2024-10-15 01:21 上传
由于《英雄无敌》3的一些过场动画,是放在光盘上,通过程序加载时,再把这些资源加载到内存的,因此,程序中对光盘信息的处理远较其它游戏复杂,而前文对程序调式不足,只是仓促绕过光驱检测,而在光驱上的资源也因此完全舍弃,自然程序中就缺少了一些动画资源,导致那次的免CD留下了不小的遗憾!而我又是一个强迫症者,这种不“完美”总是如鲠在喉,于是便有了这次完美版免CD。
[color=]二、准备工作
准备工作有两项:
1、 挂载《英雄无敌》3的play盘,把其中的Heroes3目录复制到电脑游戏安装目录里(我为了偷懒,把目录名称Heroes3改成了H3)
h3-0-2.png (68.97 KB, 下载次数: 0)
下载附件
2024-10-15 01:22 上传
2、 用hex编辑软件(如:010Editor)打开游戏程序,来到02D0处,输入如下图所示数值
h3-0-3.png (57.06 KB, 下载次数: 0)
下载附件
2024-10-15 01:23 上传
保存好就可以逆向了。
[color=]三、逆向修改过程
首先要说明一下,修改的一个非常重要的注意事项:修改的子程序一定不是“通用”子程序,即这个子程序只在此处调用,否则是不能修改的,切记!
在前文中已经找到了加载光驱的子程序了,即004ED650,关键call在004ED9A6处的call 0050C1C0。用X32dbg打开刚刚添加数值的游戏程序,直接在004ED650处下断点,并运行(前文已经把这个call修改成了mov eax,7了,把它还原成call 0050C1C0)
h3-0-4.png (127.58 KB, 下载次数: 0)
下载附件
2024-10-15 01:24 上传
步入这个子程序。一路向下,在50C293处,遇到了跳转,自然是不能跳的,将其改成不跳。
h3-0-5.png (70.27 KB, 下载次数: 0)
下载附件
2024-10-15 01:25 上传
接着来到50C2AA处,光驱检测后,要是eax为5就是有光驱,但是免CD自然是没有的,eax=1,所以这里的跳转自然也不能让其自由地跳了。
h3-0-6.png (164.6 KB, 下载次数: 0)
下载附件
2024-10-15 01:26 上传
接着在2B4处看到上面的call返回的结果应该是注册表中的游戏光驱信息,这个自然是不能再使用的,要把它改成我们在前面准备的第二个的那个地址,即004002D0,采用“先”直接修改eax(等后面一起考虑如何修改代码)
h3-0-7.png (230.19 KB, 下载次数: 0)
下载附件
2024-10-15 01:27 上传
向下接着看到判断eax值并跳转或者输入值,这里的输入值本来应该跳过的,这样正好拿来修改代码。做法是跳转到下一行,将下一行改为给eax赋值004002D0
h3-0-8.png (141.63 KB, 下载次数: 0)
下载附件
2024-10-15 01:28 上传
改成这样
h3-0-9.png (140.11 KB, 下载次数: 0)
下载附件
2024-10-15 01:28 上传
再向下到2CD这行时,程序又给eax赋给注册表内的值。
h3-0-10.png (158.63 KB, 下载次数: 0)
下载附件
2024-10-15 01:29 上传
因此这里又要修改eax的值。考虑到这里命令码数不够用,所以要三行全部变动。具体:将2D0行提升到2CD处,将2CD和2D3行的5个码合并成赋值命令,改成如下:
h3-0-11.png (126.74 KB, 下载次数: 0)
下载附件
2024-10-15 01:30 上传
这样再一路下来发现这个子程序没有问题了,返回到004ED650中。紧接着在4ED9B0处进入598210这个子程序。在21E和223处,24C和251处,遇到前面同样的事,将提供的地址再次赋给eax,修改如下
h3-0-12.png (131.68 KB, 下载次数: 0)
下载附件
2024-10-15 01:31 上传
接着在5DF处再次遇到赋值注册表值
h3-0-13.png (121.59 KB, 下载次数: 0)
下载附件
2024-10-15 01:32 上传
考虑到后面606处,再次调用局部变量[ebp-10]里的注册表值,因此这里对命令作个大调整,即把我们的地址赋给edi,同时修改[ebp-10]里的值为我们的地址,这样后面再赋值就不是注册表值,而是我们提供的地址了。最后改成如下
h3-0-14.png (145.26 KB, 下载次数: 0)
下载附件
2024-10-15 01:32 上传
至此全部改完。
[color=]四、测试
打开游戏,选战役模式
h3-0-15.png (1.01 MB, 下载次数: 0)
下载附件
2024-10-15 01:33 上传
开始动画出现
h3-0-16.png (561.91 KB, 下载次数: 0)
下载附件
2024-10-15 01:34 上传
让英雄战败导致游戏失败
h3-0-17.png (317.78 KB, 下载次数: 0)
下载附件
2024-10-15 01:35 上传
[color=]五、下载
https://wwzd.lanzoup.com/ixJR32ck1vxa