CE修改Eternium永恒之金进阶篇

Posted Thuuunder

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CE修改Eternium永恒之金进阶篇相关的知识,希望对你有一定的参考价值。

CE修改Eternium永恒之金【进阶篇】

目录

注意:此教程需要一定的CE和汇编基础。

游戏/工具下载:

Eternium v1.5.5
CheatEngine7.1
IDA(非必需,仅供分析)

一、强行制造

强行制造的意思就是材料不够也可以申请制造物品。

思路:

我在前一篇文章中提过:

首先说一下这游戏制造装备的特性。如果制造时你的材料不够无法满足制造的装备的需要,你的材料会被扣除至零,不会变成负数。金币不够的话是会变成负数的,如果出现这种情况重启游戏或者再通过改任务奖励即可恢复。

注意:此处一般会搜到两到三个数值。一般情况下要同时修改这几个数值,否则可能会出现下图所示材料不足无法制造的情况:

完整的情况是这样:有两个地址中的数据都始终和选择的制造等级相同。

单独修改第一个数值的时候数值马上恢复成与第二个地址一样的值,游戏中各个数据似乎也没有变化。

单独修改第二个地址的数值时,第一个数值会立刻变为和第二个数值一样,并且材料的数量也会改变。如果此时材料不够的话,制造按钮无法按下。

而同时修改两个数值的时候,游戏中只有等级变了,材料的数量并没有改变。如果你修改之前材料数量充足,按钮是可以按下的话,修改之后依旧可以按下。此时按下之后,尽管材料可能不够,依然可以造出装备。

是不是说,只要我们让按钮的状态一直保持可以按下,即使材料不够我们依然可以造出物品?

答案是:是的

步骤:

打开游戏进入制造页面,选择一件装备。可以看到制造41级装备的时候材料充足,制造按钮可以按下。制造51级装备的时候按钮无法按下。

猜测内存中表示按钮状态的是一个布尔值。打开CE,数据类型选择“字节”,来回改变制造物品的等级从而使按钮状态发生改变,按钮可以按下的时候就搜1,按不下的时候就搜0,如此反复。最终大致能搜到两个值将搜到的数值改为1,可以发下即使材料不够按钮也可以按下。

进一步筛选之后得到一个值。右击,点击找出是什么访问了这个地址。

选中添加到代码列表,双击查看汇编代码。

修改汇编码的话个人比较喜欢用AOB注入。操作步骤如下:

  1. 工具 => 自动汇编 => 模板 => CT表框架代码 => 模板 => AOB注入。
  2. 将 code: 后面的代码复制到 newmem: 后面,在cmp指令前添加mov指令
  3. 文件 => 分配到当前的CT表。

    验证一下脚本是否可用:


    成功!
    最后记得保存,以后要用到的时候就不用再搜代码了。

二、无需图纸、无需解锁

说明:

1.5.5版本更新出了一些需要用这个黄球解锁才能打造的装备。之前介绍过改邮件物品数量的方法改黄球的方法,但是对于错过黄球活动的玩家来说不可行。接下来的修改可以跳过解锁这一步。

步骤:

尝试用IDA看一下这条指令(Eternium.s86+7CBBE )周围的指令结构:

周围还有几个位置发生了跳转:
跳过验证步骤直接说结果吧:

Eternium.s86+7C998 - 84 C0                 - test al,al

这条代码判断装备是否解锁

Eternium.s86+7CA19 - 85 C0                 - test eax,eax

这条判断装备是否有图纸

继续用AOB注入:


激活脚本,再进入游戏可以看到,即使装备是锁定的依然可以制造:

三、说明

虽说是进阶篇但实际上用到的技术什么的也都很简单。

浏览代码结构那一步CE也能做不过麻烦功能也不如IDA。

后面应该还会有一篇用lua直接改数据的教程,等我再琢磨琢磨有空再发。

文中游戏版本1.5.5,版本不同指令地址也不同。Eternium.s86文件位于游戏安装目录,查看的时候可能需要用到安全选项卡。

四、代码地址更新

1.5.12代码地址:

地址指令码含义
Eternium.s86+7D2EDcmp byte ptr [esi+00000199],00按钮状态判断
Eternium.s86+7D0C7test al,al解锁状态判断
Eternium.s86+7D148test eax,eax图纸状态判断

以上是关于CE修改Eternium永恒之金进阶篇的主要内容,如果未能解决你的问题,请参考以下文章

CE修改Eternium永恒之金基础篇

CE修改Eternium永恒之金基础篇

CE修改Eternium永恒之金LUA篇

CE修改Eternium永恒之金LUA篇

ce修改器使用方法

怎么用ce查找单机游戏的物品代码