吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2738|回复: 58
上一主题 下一主题
收起左侧

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

[复制链接]
跳转到指定楼层
楼主
darkf 发表于 2024-10-15 01:36 回帖奖励
一、前言


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


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





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

二、准备工作


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




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






保存好就可以逆向了。

三、逆向修改过程

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





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






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






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






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






改成这样





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






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






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






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






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






至此全部改完。


四、测试

打开游戏,选战役模式





开始动画出现






让英雄战败导致游戏失败






五、下载


https://wwzd.lanzoup.com/ixJR32ck1vxa

免费评分

参与人数 11吾爱币 +10 热心值 +10 收起 理由
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年前的一些游戏,画面比起现在的虽然粗糙,但是制作 ...

画面虽然看起来粗糙 其实配色 布局 可一点都不比现在的差 甚至比现在更好
当时很多都是手工画的 当时的美工水准 风格也都和咱们的口味相投
不像现在的美工都是计算机搞的 花里胡哨的 一点没有美的感觉
其实除了操作手感 别的都比现在的好 就这个操作手感(比如跟手感觉等体感)比现在要差些
推荐
 楼主| darkf 发表于 2024-10-15 18:23 |楼主
zxsbk 发表于 2024-10-15 17:44
下载了程序不知道怎么打开

光有这个出现不行的,你要下载我第一次免CD那篇里的下载链接中的游戏光盘镜像文件,用虚拟光驱挂载后安装游戏,再把这篇里下载的主程序放到你游戏安装目录里,以后就不用加载CD镜像就能直接玩
沙发
EssenceA1 发表于 2024-10-15 06:04
3#
Lty20000423 发表于 2024-10-15 07:36
非常经典的一款游戏
4#
tzblue 发表于 2024-10-15 08:03
记得99年开始玩Hero3,相比2代有巨大提升,直到现在有时还玩一会。感谢楼主分享!
5#
lighterleon 发表于 2024-10-15 08:06
感谢楼主分享,想当年整宿玩儿,慢慢的回忆
6#
wqipk 发表于 2024-10-15 08:17
很详细,收获颇多。
7#
tydzjing 发表于 2024-10-15 08:21
要是能汉化就好了
8#
rlx2003 发表于 2024-10-15 08:22
没想到我们玩过的英雄3是经历了这么麻烦的破解,真厉害
9#
sxlh2311 发表于 2024-10-15 08:23
经典游戏,可以回味一下
10#
☆木木可可★ 发表于 2024-10-15 08:29
谢谢楼主的不懈努力,我也很喜欢这些老游戏,尤其是2005年前的一些游戏,画面比起现在的虽然粗糙,但是制作精良,系统严谨、内容丰富,娱乐性比现在的不遑多让。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-10-16 07:53

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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