laozhhaiJohn 发表于 2024-4-8 12:43

Cheat Engine(CE)游戏修改-共用代码-更方便比对的方法-以《赤痕》为例

本帖最后由 laozhhaiJohn 于 2024-4-8 12:56 编辑

# Cheat Engine(CE)游戏修改-共用代码-更方便比对的方法-以《赤痕》为例

## 一、前言

共用代码的一般处理流程:
1、找到关键的数值地址;
2、找出是什么访问了此地址;
3、在若干代码中找较为有用的代码;(下文假设此是共用代码)
4、找出代码改写的地址;
5、找到己方和敌方若干地址;
6、**比较这些地址的不同点;**
7、根据不同,写汇编代码进行注入。
8、保存代码并运行测试。


在第6步,比较若干地址的异同,CE程序经历了3个发展阶段。
(1)较早的ce版本,只能分别打开若干“浏览内存相关区域”窗口或者寄存器窗口,肉眼比对;
图1
(2)CE第二阶段,作者加入分析数据-结构分析,来较为方便的进行列表比对。这一步已经非常方便了。
图2,图2-2
(3)CE第三阶段,增加新功能--分组查找共同特征。CE自动比对不同组别的地址和寄存器,提示用户不同。
图3

现在就来介绍一下这个新的方便功能的使用。

**这里假设读者已经熟练掌握CE的基本操作。**

本教程学习自b站up主:我婧,创作的视频:](https://www.bilibili.com/video/BV18g41117Sa/?spm_id_from=333.999.0.0&vd_source=74c03e6f5fd3f4ea5af556998228a799)


## 二、以《赤痕》Bloodstained-Ritual of the Night 为例说明:

赤痕游戏中,玩家和怪物减血的代码是典型的共享代码。无论玩家击打怪物,还是怪物杀伤玩家,都是运行同一段代码。
这里已经找到该代码,为写例程,在进行脚本注入,使双方都不被减血。
图4
那么新功能怎么使用呢?

### (一)对敌我地址进行分组:

图5
图6
哪一方做为分组1或2都没有关系,关键是不要把地址分错阵营,例如将敌人的地址误以为是己方。
下图是标注完毕分组后的情况。
图7

### (二)扫描共同特征前设置:

图8
图9
双击后出现比较窗口,注意3的位置请填写0,否则会查找多级指针,造成速度下降且用途不大。
图10

### (三)扫描后的结构比对结果:

单击**上面的图**中-位置4--扫描--按钮。CE提示保存扫描文件,之后打开下图的比对情况:
图11
可以看到,在偏移240的位置是HP,各不相同,偏移244的位置是玩家魔法值。偏移248位置是玩家经验值。
这里,CE将双方阵营的数据结构呈现,这里已经略去的相同的地址部分,仅仅呈现组1与组2不同的部分,且不比较组2中3个数据相同与否。这样就非常方便玩家选择合适的地址进行汇编区分。

这里以使用偏移54位置值为例进行代码比较。

```
cmp ,0//敌人
je Diren_HP   //相等则跳到写敌人HP代码处

cmp ,1//玩家
je Player_HP    //相等则跳到写玩家HP代码处
```

## 三、脚本参考

附件:
1、游戏存档
2、CE学习脚本

在学习脚本中,沙地和陆地分别写了一个注入,达成自定义二段跳次数。后来尝试将2者合并为1个脚本,能够顺利运行。后来,恰巧在b站看到 up主:我婧 的脚本合并教程,真是巧了。

在之后,继续查看陆地和沙地反汇编代码,发现一个共同的call,于是进入call里面查看,在其中一个位置进行了注入,这个注入脚本可以达成在陆地、沙地、水中自定义跳跃次数,不用单独开陆地、沙地跳跃次数脚本了。

## 四、其他:

在扫描器中,双击这些寄存器,CE会打开寄存器比较情况,供玩家参考。
图12.


好了。这次的学习分享就到这里,祝大家CE愉快!

心里乐开花 发表于 2024-4-10 12:59

感谢分享,好好学习一下。

molingqing 发表于 2024-4-10 13:33

{:1_924:} 有没系统的学习CE CE上的教学部分学完过关了,但是针对游戏 很多都不一样

福气啦 发表于 2024-4-10 13:39

很详细的教程,感谢分享,学习了

fanvalen 发表于 2024-4-10 15:06

果然又有新的更方便的办法

gen 发表于 2024-4-10 17:49

感谢分享,学习了

gujie53025231 发表于 2024-4-10 22:39

这个厉害,,分享分享。。谢谢了

LightSylcanus 发表于 2024-4-10 22:56

以前学了点都全忘了

kio123 发表于 2024-4-10 23:02

学习一下

xuiaipojie 发表于 2024-4-11 01:05

好好学习一下。
页: [1] 2 3
查看完整版本: Cheat Engine(CE)游戏修改-共用代码-更方便比对的方法-以《赤痕》为例