天下网吧 >> 网吧天地 >> 网吧技术 >> 网吧软件 >> 正文

偷天换日——光盘版游戏完美转换硬盘版

 你知道吗——JNZ和JMP是什么意思?
  JNZ为有条件转移指令,先检测一个条件,如果满足则跳转,否则继续执行下一行代码。而JMP则为无条件转移指令,不检测任何条件而直接跳转至需要转移的位置。

  第四步:选择菜单命令“File→Save File”(文件→保存文件),将修改成果保存。重新运行“××物语”,不再有讨厌的“请插入××物语的游戏光盘”提示框出现,没有光盘也能玩!

  实战2:把光盘文件转移到硬盘
  游戏特征:硬盘上仅有部分游戏文件,没有复制的光盘文件的路径记录在文件或注册表中。
  修改原理:将需要从光盘中提取的内容复制到本地硬盘中,并修改路径记录使游戏程序从本地硬盘进行读取。

  典型游戏:《××医院》  修改难度:★★
  所需工具:记事本

  第一步:《××医院》在安装过程中即使选择“完全安装”,在运行时也需要插入光盘,并且插入光盘后确实在游戏过程中有较大数据量的读取,故判断其有一部分游戏文件没有安装到本地硬盘中。插入该游戏光盘,浏览其下文件并与硬盘中的游戏安装目录中的文件作比较,发现有几个目录中的文件数都不同,但光盘与硬盘的目录结构一致。
  第二步:从光盘中将缺少的游戏文件复制到硬盘中的游戏安装目录中(可用“覆盖”),再次运行游戏却发现仍提示插入游戏光盘。因为游戏程序并不知道你把缺少的游戏文件复制到硬盘中了,仍然去寻找光盘中的文件。那么怎么能让游戏程序知道呢?我们需要修改游戏程序的“记忆”,寻找游戏设置文件(一般为文件名中包含“Config”、“cfg”、“settings”等关键字的文件),如本例中的游戏的设置文件为游戏安装目录下的Hospital.Cfg,用“记事本”打开此文件,将“INSTALL_PATH=”后的路径修改为你游戏的安装路径(即硬盘中存放刚才复制过来的缺少文件的路径,本例修改后的行如“INSTALL_PATH=C:\Program Files\Bullfrog\Hospital\”),保存并关闭文件。
  第三步:再次运行游戏,发现不再需要插入光盘了。

修改过程总结
  在给出以上实例后,我们比较概括地总结一下修改步骤。
  首先通过文件比较及光驱读盘时间等来判断游戏的类型是A还是B。
  A.仅检测光盘,硬盘中已安装所有游戏文件。
  第一步:用W32DASM查看游戏程序文件的汇编程序代码,找出光盘检测部分的代码位置。
  第二步:分析这段代码,找出条件转移指令JNZ的位置。
  第三步:用RTA编辑游戏程序文件,查看刚才记录下的JNZ的位置,并将其修改为JMP(无条件转移指令)。

  小提示
  以上情况仅用于未做进一步加密的游戏,有些游戏在光盘检测代码处使用了“花指令”或“动态加密”技术,则无法用此法修改。

  B.硬盘中的游戏文件不全,需要从光盘中读取。
  第一步:比较硬盘中的游戏文件数与光盘中的文件数,将硬盘中缺少的文件复制到游戏安装目录相应位置中(也可复制到其他目录并在第三步的路径处做相应的修改,但出于兼容性考虑,强烈建议复制到游戏安装目录)。

  小提示
  有一些游戏对文件做了加密隐藏,用此法修改路径后会出现类似“缺少文件”的提示。

  第二步:根据文中给出的特征识别法寻找游戏用以存放光盘文件路径的设置文件(或注册表位置)。
  第三步:编辑该设置文件,并将其中的文件存放路径修改为游戏安装目录。

本文来源:《电脑爱好者》 作者:狂ρκ

声明
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。文章是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本网联系,我们将及时更正、删除,谢谢。 Email:support@txwb.com,系统开号,技术支持,服务联系微信:_WX_1_本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧·网吧天下
  • 本周热门
  • 本月热门
  • 阅读排行