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

电脑游戏玩家都遇到过这样的问题,很多游戏在运行时仍需要插入光盘(“完全安装”情况下竟然也是如此!?)。如果光盘不慎遗失或光驱故障,面对安装好的游戏你是否就无计可施了呢?你可能会选择从网上下载高手制作的免CD补丁,可是并非每个光盘版游戏都能找到或能用这样的补丁。本文就要让你扮演一回高手的角色,自己来打造完美的硬盘版游戏。

特别声明:本文目的只是为了让购买正版游戏的用户能够在不磨损光驱的情况下方便地进行游戏,以下修改例子中皆隐去了部分游戏名称。

数据挖掘实验室

并不是每个光盘版游戏都能够转换为硬盘版,以下列举了一些可修改的游戏类型和特征,并给出实际修改过程。

数据挖掘实验室

实战1:去除光盘检测 数据挖掘交友

游戏特征:游戏所有文件均已安装至硬盘中,仅在游戏开始时出于版权保护目的检测一次光盘。 数据挖掘交友

修改原理:在游戏程序开始位置有一段检测光盘的代码,最简单的检测方式就是从光盘中读取特定文件,没有读到则弹出提示框并强制退出游戏,如果读到并确认为该游戏光盘,则程序跳转到游戏开始处。 数据挖掘论坛

修改难度:★★★

所需工具:W32DASM(点击下载)、RTA(原地址已不可用,据了解RTA和Hiew、010Editor同为16进制编辑器。)(注:以上两软件非网易学院提供,请注意安全) 数据挖掘研究院

第一步:下载W32DASM并解压,运行解压目录中的W32dsm8.93+.exe。选择W32DASM主界面菜单“Disassembler→Open File to Disassemble”(反汇编→打开需要反汇编的文件),在文件选择框中选择打开《××物语》安装目录下的zweipet.exe。

数据挖掘工具

第二步:选择菜单“Functions→Imports”(函数→输入表),在弹出窗口中有一个列表框详细列出了程序中用到的API函数。在窗口上方文本框中输入“GetDriveType”(不含引号)并点击右侧“Search”(搜索)按钮,下方列表框中就选中了该函数所在行,接着双击它(见图1)。

图1 查找到“GetDriveType”

小提示:API是程序调用系统功能的函数接口,比如程序要检测光盘,就必须使用GetDriveType函数来获得盘符的设备类型。因此找到GetDriveType函数在程序中的调用位置,就一定能在附近找到光盘检测代码。

第三步:在W32DASM主界面的代码显示框中就以高亮方式选中了GetDriveType函数的调用位置,将代码框稍微往下拉一点就能看到光盘检测代码了(见图2)。代码框最左侧的蓝色数字是代码的位置,如本文中在zweipet.exe中找到GetDriveType的位置为0048843,而光盘检测代码的位置在004088BD处。以下是代码简要注释: 数据挖掘论坛

图2 提示“插入光盘”的光盘检测代码 数据挖掘工具

  • :004088BD mov eax,dword ptr[esp+14]
  • :004088C1 test eax, eax //检查是否有光盘
  • :004088C3 jnz 004088DB //有光盘则跳转到004088DB位置(即游戏开始位置),没有光盘则不跳转
  • :004088C5 push 00000000
  • :004088C7 push 00428934
  • :004088CC push 00428919
  • :004088D1 push 00000000
  • :004088D3 call dword ptr[004233EC] //弹出一个提示窗口“请插入××物语的游戏光盘”
  • :004088D9 jmp 00408933 //程序转向代码结束部分,也就是强制退出游戏(见图3)

图3:004088D3位置处的代码执行时会弹出此提示框

数据挖掘工具

第三步:可以看到在004088C3处决定了程序走向(是继续下一行代码还是跳转到004088DB处开始游戏),如果能让程序不加判断直接跳转到004088DB,就等于跳过了光盘检测。关闭W32DASM,打开刚才下载的RTA,选择菜单命令“File→Open File”(文件→打开文件),同样也是打开zweipet.exe。RTA界面立即显示出zweipet.exe的汇编程序代码。最左侧的红色数字为代码位置,边上蓝色十六进制数为该行代码的机器码,右侧黄色文字则为汇编代码。找到要修改的位置004088C3,可这句汇编代码为“JNZ SHORT 4088DB”,将其修改为“JMP SHORT 4088DB”(不含引号,机器码为EB16)。 数据挖掘研究院

(图4 修改前) 数据挖掘交友

(图5 修改后)

你知道吗——JNZ和JMP是什么意思?

JNZ为有条件转移指令,先检测一个条件,如果满足则跳转,否则继续执行下一行代码。而JMP则为无条件转移指令,不检测任何条件而直接跳转至需要转移的位置。

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

[数据挖掘专家] [数据挖掘研究院] [数据挖掘论坛] [数据挖掘实验室]
上一篇:宽屏啦 宽屏啦 我将网页铺开看!
下一篇:在线处理照片 之 娱乐游戏篇
最新评论共有 0 位网友发表了评论 , 查看所有评论
发表评论( 不能超过250字,需审核,请自觉遵守互联网相关政策法规。 )
匿名?
数据挖掘网站导航 数据挖掘论坛导航
  • 数据挖掘工具
  • 数据挖掘论坛
  • DataCruncher - Cognos
  • MineSet - MathSoft
  • Intelligent Miner - GainSmarts
  • Sqlserver - SAS - Clementine
  • CART - Weka - WizSoft
  • NeuroShell - ModelQuest
  • data mining tools - Darwin
  • 数据挖掘交友
  • 数据挖掘博客
  • 数据挖掘工具
  • 数据挖掘资源
  • 数据挖掘技术算法
  • 数据挖掘相关期刊、会议
  • 研究院联盟合作专区
  • 数据挖掘基础与相关技术
  • 数据挖掘厂商与就业
  • 数据挖掘研究者乐园
  • 知名厂商数据挖掘工具资料
  • 国内数据挖掘实验室
  • Foreign Data Mining Lab
  • 热点关注
  • 史上最伟大的五位计算机罪犯
  • NOD32推荐设置
  • 装好不见得用好:史上最详细的Nero使用教程
  • 图文记录:Microsoft.com 的历史(1994-2007)
  • 如何将DVD电影完整放到CD上?
  • 硬盘数据修复软件EasyRecovery使用教程
  • Excel表格导入Coreldraw的方法和处理技巧
  • 没有摄像头 照样和漂亮MM视频聊天
  • 专业视频编辑友立MediaStudio Pro7
  • 真心祝福看得见:圣诞贺卡制作软件推荐
  • 论坛最新话题
  • Foundations of Statistical Natural Langu
  • Game Theory meet Data Mining: A Recent P
  • System Building: How does it help or hin
  • 数据挖掘与Clementine培训
  • 新手报到
  • 求 SASEM 客户流失预测分析
  • 数据挖掘工程师/搜索研究院—北京——无线
  • 数据挖掘入门介绍(如何着手数据挖掘)
  • Information Overload Survey Results
  • The INEX 2005 Workshop on Element Retrie
  • 相关资讯
  • 史上最伟大的五位计算机罪犯
  • 图文记录:Microsoft.com 的历史(1994-2007)
  • 数据挖掘实验室资料
  • 数据挖掘博客地址
  • 数据挖掘实验室网站地址
  • Prepare for Medicare audits by using dat
  • 注册成为SAS用户与爱好者俱乐部会员
  • 水南梅
  • 明日烟
  • 新人报道
  • 下载
  • 厦门服务器托管,450元/月—0592-5177319 高
  • 买空间送域名--0592-5177319 高静