Cheat Engine 数值类型与内存表示
同一个屏幕数字可能以整数、浮点数或其他形式保存在内存中。本节介绍 CE 常用 Value Type,帮助初学者选择合理的扫描类型。
字节与整数
内存中的数据由字节组成,类型决定如何解释这些字节。CE 常见的 Byte、2 Bytes、4 Bytes、8 Bytes 分别读取对应数量的字节;整数还可能按有符号或无符号方式解释。例如一个字节的 FF,无符号解释为 255,有符号解释为 -1。实际程序使用哪一种,需要结合程序的数据定义或行为判断。
在常见的 x86 和 x64 小端环境中,四字节整数 100 的十六进制表示是 00000064,内存中依次为 64 00 00 00。同一段字节以不同类型读取会得到不同的结果。CE 的 Hex 选项影响输入的数字进制;勾选后 64 表示十六进制 0x64,而不是十进制 64。
浮点与显示值
Float 通常为四字节单精度,Double 为八字节双精度。浮点值采用不同于整数的编码,因此屏幕显示 100 并不保证 4 Bytes 扫描能找到对应位置;它也可能是 Float,或只是内部值换算、取整后的结果。浮点运算存在精度差异,展示为 1.2 的值未必恰好等于十进制 1.2。
先参考练习关卡给出的类型;类型未知时,可以分别尝试 4 Bytes、Float 或 Double,并在每次更换类型前 New Scan。不要只凭某一时刻的数字相等判定结果,继续让练习值变化并比较候选行为。
文本与数组
Text 搜索字符序列,但编码、大小写、字符串长度和结束符都会影响结果。Array of byte(AOB)搜索原始字节序列;它既可表示数据,也可表示机器指令,并不自动说明这些字节的含义。Grouped 扫描可按已知布局组合多个值,适合理解字段排列后再使用。
练习时,将一个已知四字节整数加入地址表,切换观察方式并在内存浏览器查看相邻字节,比较十进制与十六进制。不要仅凭一个示例推断所有程序的字段宽度、编码或字节顺序;这些都取决于目标程序的实现。
做一个对照练习:在同一练习程序中分别观察整数和带小数的字段,写下显示值、实际选择的类型以及扫描结果的变化。再用另一次独立变化验证。观察得到的类型只适用于被验证字段,不能推及程序中所有显示方式相似的数字。