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注入。操作步骤如下:
- 工具 => 自动汇编 => 模板 => CT表框架代码 => 模板 => AOB注入。
- 将 code: 后面的代码复制到 newmem: 后面,在cmp指令前添加mov指令
- 文件 => 分配到当前的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+7D2ED | cmp byte ptr [esi+00000199],00 | 按钮状态判断 |
Eternium.s86+7D0C7 | test al,al | 解锁状态判断 |
Eternium.s86+7D148 | test eax,eax | 图纸状态判断 |
以上是关于CE修改Eternium永恒之金进阶篇的主要内容,如果未能解决你的问题,请参考以下文章