某游戏1代win版免CD
本帖最后由 darkf 于 2024-7-23 05:10 编辑某游戏是95年的,但在2000年出了千禧版,加上由Verok的HD补丁,使得其在最新的Win系统如:Win11、Win10上都可以完美运行,很受我的喜欢,该游戏可以选择一个地图,没事玩一下可能1、2个小时,很能打发时间。游戏要CD,这个每次还得加载虚拟光驱添加iso不是很方便,故修改一下使其免CD。
使用OD打开游戏
点击字符串搜索
找到有关CD和CD-ROM的字符串,如上图看到4500A9和4500D5两处,回到CPU窗口,右键选择go to再选表达式,其中填上4500A9
很容易看出,下图中的两处条件跳转就是免CD的关键跳转,只要避开两处跳转下面的两个关键call就能实现免CD了。
这样就修改这两处关键跳转。很简单地看到,只要把条件跳转改成无条件跳转即可。于是在4500(C上右键选择Binary->Edit
出现下面对话框
将其改成下面这样(感谢@爱飞的猫 朋友提醒!这里原指令长度是6,现在改为5了,所以后面跳转长度要加1,因此是:E9 23 00 00 00 90,错误的截图已修正)
点击OK后,变成下图样式
同样地,再把4500C8这句也改成(和上面完全相同)如下样子
至此,两个关键跳转已经修改完成,应该能免CD了,保存修改
运行新保存的游戏就不需要CD了,但这样修改后,运行游戏时是没有开始动画的。下面用hexedit类的软件修改这个文件使其具有开始动画。用010editor打开刚修改后的文件
选择search工具栏的find,调整为选择ASCII吗,在搜索框里输入\Anim,因为该游戏的动画是放在这个目录里的
搜到这里
将其改成下图样子(即:游戏本来的动画是存于CD上的,现在将其改到存放到游戏目录里)
最后,将游戏CD里的anim目录的内容和目录一起拷贝到游戏目录,如下图所示
至此,再游戏就不要CD了,还有开机动画。 wudalang123 发表于 2024-7-24 15:12
在修改条件跳转为无条件跳转时,如何确定哪些跳转是检查CD的关键跳转,而不是游戏逻辑的其他部分?
这个地方一看就明白:条件跳转就是可能跳也可能不跳。如果不跳,那就执行下面的命令,那自然就出问题了,这样自然就知道要跳才行!
但并不是所有的问题都是这样的,自然要根据具体的情况去分析,这也正是逆向的魅力所在! 本帖最后由 darkf 于 2024-7-22 19:26 编辑
@echo2087@forghost22@iwojima @chunfengyidu 统一回复以上各位热心的朋友,我第一次发帖呀,怕说出游戏名称违规,所以没有敢说,也有朋友说出来了,就是《英雄无敌》1代!
很神秘的游戏~ 请教这是什么游戏,看了教程感觉可以搞一搞 英雄无敌么? 现在玩单机游戏比玩手游好,不会沉迷还能放松 什么游戏呢,现在几乎只玩单机了 好复杂啊 什么游戏? 这是一个很古老的游戏啊