吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 9623|回复: 133
收起左侧

[原创] 【续】《英雄无敌》3完整版complete(英文)——免CD修改(完美版)

  [复制链接]
darkf 发表于 2024-10-15 01:36
一、前言


在前一篇文章中,介绍了《英雄无敌》3的complete(英文)版的免CD制作,但那是一副仓促之作,破解得很粗糙,留下了很大的不足!


《英雄无敌》3完整版complete(英文)——免CD修改


h3-0.png


由于《英雄无敌》3的一些过场动画,是放在光盘上,通过程序加载时,再把这些资源加载到内存的,因此,程序中对光盘信息的处理远较其它游戏复杂,而前文对程序调式不足,只是仓促绕过光驱检测,而在光驱上的资源也因此完全舍弃,自然程序中就缺少了一些动画资源,导致那次的免CD留下了不小的遗憾!而我又是一个强迫症者,这种不“完美”总是如鲠在喉,于是便有了这次完美版免CD。

二、准备工作


准备工作有两项:
1、 挂载《英雄无敌》3的play盘,把其中的Heroes3目录复制到电脑游戏安装目录里(我为了偷懒,把目录名称Heroes3改成了H3)


h3-0-2.png

2、 用hex编辑软件(如:010Editor)打开游戏程序,来到02D0处,输入如下图所示数值



h3-0-3.png


保存好就可以逆向了。

三、逆向修改过程

首先要说明一下,修改的一个非常重要的注意事项:修改的子程序一定不是“通用”子程序,即这个子程序只在此处调用,否则是不能修改的,切记!
在前文中已经找到了加载光驱的子程序了,即004ED650,关键call在004ED9A6处的call 0050C1C0。用X32dbg打开刚刚添加数值的游戏程序,直接在004ED650处下断点,并运行(前文已经把这个call修改成了mov eax,7了,把它还原成call 0050C1C0)


h3-0-4.png


步入这个子程序。一路向下,在50C293处,遇到了跳转,自然是不能跳的,将其改成不跳。



h3-0-5.png


接着来到50C2AA处,光驱检测后,要是eax为5就是有光驱,但是免CD自然是没有的,eax=1,所以这里的跳转自然也不能让其自由地跳了。



h3-0-6.png


接着在2B4处看到上面的call返回的结果应该是注册表中的游戏光驱信息,这个自然是不能再使用的,要把它改成我们在前面准备的第二个的那个地址,即004002D0,采用“先”直接修改eax(等后面一起考虑如何修改代码)



h3-0-7.png


向下接着看到判断eax值并跳转或者输入值,这里的输入值本来应该跳过的,这样正好拿来修改代码。做法是跳转到下一行,将下一行改为给eax赋值004002D0



h3-0-8.png


改成这样


h3-0-9.png


再向下到2CD这行时,程序又给eax赋给注册表内的值。



h3-0-10.png


因此这里又要修改eax的值。考虑到这里命令码数不够用,所以要三行全部变动。具体:将2D0行提升到2CD处,将2CD和2D3行的5个码合并成赋值命令,改成如下:



h3-0-11.png


这样再一路下来发现这个子程序没有问题了,返回到004ED650中。紧接着在4ED9B0处进入598210这个子程序。在21E和223处,24C和251处,遇到前面同样的事,将提供的地址再次赋给eax,修改如下



h3-0-12.png


接着在5DF处再次遇到赋值注册表值



h3-0-13.png


考虑到后面606处,再次调用局部变量[ebp-10]里的注册表值,因此这里对命令作个大调整,即把我们的地址赋给edi,同时修改[ebp-10]里的值为我们的地址,这样后面再赋值就不是注册表值,而是我们提供的地址了。最后改成如下



h3-0-14.png


至此全部改完。


四、测试

打开游戏,选战役模式


h3-0-15.png


开始动画出现



h3-0-16.png


让英雄战败导致游戏失败



h3-0-17.png


五、下载


https://wwzd.lanzoup.com/ixJR32ck1vxa

免费评分

参与人数 28吾爱币 +30 热心值 +27 收起 理由
nateroom + 1 + 1 谢谢@Thanks!
Hmily + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
Tori97 + 1 热心回复!
流浪星空 + 2 + 1 谢谢@Thanks!
guoruihotel + 1 + 1 谢谢@Thanks!
xao + 1 + 1 谢谢@Thanks!
梦里叹月 + 1 https://www.alipan.com/s/w5C1zLSgvZH 经典中文版
rosng + 1 + 1 谢谢@Thanks!
mafei3709 + 1 + 1 热心回复!
我自有分数 + 1 + 1 谢谢@Thanks!
yangoldwolf + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
lb12718 + 1 + 1 谢谢@Thanks!
Arrears + 1 + 1 我很赞同!
TuJiXiuZaYu + 1 我很赞同!
156608225 + 1 + 1 用心讨论,共获提升!
jiafei5331 + 1 + 1 谢谢@Thanks!
rebirthboy + 1 我很赞同!
afrend + 1 + 1 谢谢@Thanks!
smtwtfs + 1 + 1 热心回复!
yyyl + 1 + 1 谢谢@Thanks!
52bojie + 1 + 1 我很赞同!
抱薪风雪雾 + 1 + 1 谢谢@Thanks!
PigBrother + 1 用心讨论,共获提升!
萌新酱 + 1 我很赞同!
highdolphin + 1 + 1 用心讨论,共获提升!
scanjojo + 1 + 1 我很赞同!
吾爱支持 + 1 + 1 谢谢@Thanks!
aeolos999 + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

cao777 发表于 2024-10-15 10:08
☆木木可可★ 发表于 2024-10-15 08:29
谢谢楼主的不懈努力,我也很喜欢这些老游戏,尤其是2005年前的一些游戏,画面比起现在的虽然粗糙,但是制作 ...

画面虽然看起来粗糙 其实配色 布局 可一点都不比现在的差 甚至比现在更好
当时很多都是手工画的 当时的美工水准 风格也都和咱们的口味相投
不像现在的美工都是计算机搞的 花里胡哨的 一点没有美的感觉
其实除了操作手感 别的都比现在的好 就这个操作手感(比如跟手感觉等体感)比现在要差些
☆木木可可★ 发表于 2024-10-15 08:29
谢谢楼主的不懈努力,我也很喜欢这些老游戏,尤其是2005年前的一些游戏,画面比起现在的虽然粗糙,但是制作精良,系统严谨、内容丰富,娱乐性比现在的不遑多让。
EssenceA1 发表于 2024-10-15 06:04
Lty20000423 发表于 2024-10-15 07:36
非常经典的一款游戏
tzblue 发表于 2024-10-15 08:03
记得99年开始玩Hero3,相比2代有巨大提升,直到现在有时还玩一会。感谢楼主分享!
lighterleon 发表于 2024-10-15 08:06
感谢楼主分享,想当年整宿玩儿,慢慢的回忆
wqipk 发表于 2024-10-15 08:17
很详细,收获颇多。
tydzjing 发表于 2024-10-15 08:21
要是能汉化就好了
rlx2003 发表于 2024-10-15 08:22
没想到我们玩过的英雄3是经历了这么麻烦的破解,真厉害
sxlh2311 发表于 2024-10-15 08:23
经典游戏,可以回味一下
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-22 19:26

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表