在大学的时候特别喜欢玩游戏,尤其偏爱单机游戏。在玩一些单机游戏的时候,特意使用了一些修改工具。本来是打算做成一个系列的,但是现在由于时间问题,仅介绍一些。(大概包括rimworld,饥荒,放逐之城,缺氧,星际争霸1等,手头有一些资料,需要的也可以找我要,整理这些比较花费时间)
RA2也就是所谓的红色警戒2,这里选用的是中国人最常见的*之辉进行介绍。(这里使用了两个CE版本来进行,主要是CE6以后不提供trainer保存功能,所以刚开始使用的是cheatEngine6.3,后边用的是CE5.6)
首先打开游戏,打开CE,附加进程。
通过值更改和不断扫描,找到了三个地址0x0081F6EC、0x0081F6F0和0x0F8D93D4,分别修改后,发现只有第三个值才是正确的。
然后找出是什么修改了这个地址
是类似于mov[ebx+24C],eax这种指令在该地址中写入了值
两条指令虽然一个是ebx ,一个是esi,但是结构相似,分别打开后发现两个关键寄存器中的值也是一样的,因此这个不重要
这里省略掉一步是查看什么语句写入了ebx,我使用汇编查看器发现20行代码内没有很明显的mov ebx,xxx 这种语句,因此判断这个是一级指针的形式,也就是 [game.exe + addrA] + 0x24C的地址中存着游戏金钱的值。查找这个adrrA,也就是新建查询,查找0x0F8D9188,这里还需要注意的是记得勾选Hex选项,不然使用的是10进制,就是错误的值。第一个项中的地址0x00A1E0C4的值是绿色的,说明有可能是基址
手动添加这个地址
然后点击Ok保存,发现这个地址中存的恰好就是金钱的值
(下边使用的都是CE5.6版本)
点击高级选项,点击保存,选择创建新的修改器,选择游戏/程序运行时,修改数据,点击确定,分别对应图中的0-4步骤
之后会出现如下的界面,添加地址,选择刚才新建的指针地址,编辑好热键,选择对应的线程(game.exe)然后选择保存修改器,就生成了
最后放一个效果界面