文章目录
-
- Exact Value scanning
-
- 任务
- 实现步骤
- Unknown initial value
-
- 任务
- 实现步骤
- 原理说明
- Floating points
-
- 任务
- 实现步骤
- 原理说明
- Code finder
-
- 任务
- 实现步骤
- 原理说明
- Pointers
-
- 任务
- 实现步骤
- 原理说明
-
- Change Pointer 操作:
- Active(活跃状态)和数值修改:
- Code Injection
-
- 任务概述
- 实现步骤
- 原理说明
- Multilevel Pointers
-
- 任务
- 实现步骤
- 原理说明
- Shared code
-
- 任务
- 实现步骤
- 原理说明
Exact Value scanning
任务
- 底部窗口显示
Health: xxx
。 - 每次点击
Hit me
,健康值会减少。 - 任务是找到并将健康值修改为
1000
。
实现步骤
-
执行
Exact Value
扫描,选择4 Bytes
,输入当前健康值,点击First Scan
,这是因为大多数游戏中的数据通常以2字节或4字节这两种格式存储。
-
如果有多个地址,不确定是哪一个,点击
Hit me
并输入新的健康值,再次扫描(Next Scan)
。重复此步骤,直到确认唯一地址。 -
双击左侧列表中的地址,使其出现在下方列表中。双击该地址的数值,将值修改为
1000
。
Unknown initial value
任务
在前一步中,我们使用精确数值扫描找到了一个已知值。这次我们将处理一个状态条,其初始值未知,但范围在0~500
之间。每次点击Hit me
,会减少一些健康值。
实现步骤
- 开始新扫描:
- 点击
New Scan
开始新的扫描。
- 设置扫描类型和数值类型:
- 数值类型设置为4字节(大多数Windows应用使用4字节)。
- 扫描类型选择
Unknown initial value
。 - 点击
First Scan
进行初次扫描。
- 执行减少值扫描:
- 点击
Hit me
减少健康值。 - 在
Cheat Engine
中选择Decreased Value
。 - 点击
Next Scan
进行下一次扫描。
- 重复扫描:
- 重复点击
Hit me
和Decreased Value
扫描,直到只剩下几个可能的地址。
- 确定正确地址:
- 因为我们知道值在
0~500
之间,选择最可能的地址并添加到列表中。
修改健康值:
- 将健康值修改为
5000
以完成这一步骤。
原理说明
未知初始值扫描:当我们不知道初始值时,无法使用精确数值扫描。选择Unknown initial value
进行初次扫描,将所有可能的内存地址作为候选。
减少值扫描:每次点击Hit me
,健康值减少。选择Decreased Value
进行扫描,可以过滤掉那些值未减少的地址,从而逐步缩小范围。
逐步缩小范围:通过多次点击Hit me
和扫描,逐步减少候选地址数量,最终确定唯一的地址。
这个方法通过不断减少值的扫描,逐步确定未知初始值的内存地址,适用于初始值未知但范围已知的情况。
Floating points
在前面的教程中,我们使用了字节扫描。这次我们将处理以浮点数形式存储的数据。一些游戏使用浮点数来存储信息,以防止简单的内存扫描工具轻易找到这些数据。浮点数是带有小数点的数值(如5.12或11321.1)。
任务
修改健康值(float类型)
和弹药值(double类型)
为5000
或更高。
实现步骤
- 开始新扫描:
- 点击
New Scan
开始新的扫描。
- 设置数值类型和扫描类型:
- 设置健康值扫描:数值类型选择
Float
。 - 扫描类型选择
Exact Value
。 - 在数值框中输入当前健康值,点击
First Scan
进行初次扫描。
- 减少健康值并重复扫描:
- 点击
Hit me
减少健康值。 - 输入新的健康值,点击
Next Scan
。 - 重复点击
Hit me
和Next Scan
直到确定唯一地址。 - 双击地址将其添加到下方列表中,修改值为
5000
。
- 设置弹药值扫描:
- 点击
New Scan
开始新的扫描。 - 数值类型选择
Double
。 - 扫描类型选择
Exact Value
。 - 在数值框中输入当前弹药值,点击
First Scan
进行初次扫描。
- 减少弹药值并重复扫描:
- 点击
Shoot
减少弹药值0.5
。 - 输入新的弹药值,点击
Next Scan
。 - 重复点击
Shoot
和Next Scan
直到确定唯一地址。 - 双击地址将其添