冒险岛079

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1|回复: 0

Day 3 -- 大海捞针:当你连数值都不知道的时候

[复制链接]

701

主题

13

回帖

2235

积分

管理员

积分
2235
发表于 3 小时前 | 显示全部楼层 |阅读模式
Day 3 -- 大海捞针:当你连数值都不知道的时候
Cheat Engine 从入门到住院 · Day 3

昨天我们学了精确搜索:知道血量是 100,直接搜 100。但如果游戏根本不告诉你具体数字呢?

很多游戏只显示一个血条,从满到空,你只知道"被打了一下,血少了一点",但具体少了多少?不知道。

这就像蒙着眼睛在大楼里找人,你甚至不知道目标长什么样。但你知道一件事——他在移动。

今天我们用 CE Tutorial 的 Step 3 来搞定这个问题。

━━━━━━━━━━━━━━━━━━━━

本文你将学到

  • "未知初始值"搜索的原理
  • 如何用"变化方向"替代"精确数值"做筛选
  • Changed / Unchanged / Decreased / Increased 扫描类型
  • 逐步缩小范围的实战技巧
    阅读时间:10 分钟 | 实操时间:25 分钟 | 难度:入门

    ━━━━━━━━━━━━━━━━━━━━

    CE Tutorial Step 3:未知初始值

    进入 Step 3,你会看到:

  • 一根血条(没有数字)
  • 一个 "Hit me" 按钮(点了血量减少)
  • 血条下方可能有一个计时器或其他干扰

    你的任务:在不知道具体血量数字的情况下,找到血量地址,把它改成 5000。

    ━━━━━━━━━━━━━━━━━━━━

    核心思路:不搜数字,搜变化

    既然不知道具体值,我们换个思路:不搜"等于多少",搜"怎么变的"。

    逻辑是这样的:

  • 先记下"现在的状态"(全量快照)
  • 做一个操作(比如挨打)
  • 然后问 CE:"哪些地址的值减少了?"

    游戏里几百万个地址,在你挨打的那一瞬间,绝大多数地址的值是不变的。只有少数几个会变化,其中就包括你的血量。

    多重复几轮,交集越来越小,最终就能锁定目标。

    ━━━━━━━━━━━━━━━━━━━━

    实操步骤

    第一步:设置扫描参数

    在 CE 主界面:

  • Scan Type:选择
    1. Unknown initial value
    复制代码
    (未知初始值)
  • Value Type:选择
    1. 4 Bytes
    复制代码

    点击 First Scan

    这一次 CE 不会搜索特定的值,而是给整个内存做一个"快照"——记录下每个地址当前的值。

    扫描完成后,左边会显示"Found: XXXXXXX"一个很大的数字。别慌,这是正常的,这只是说"我记住了这么多个地址"。

    第二步:挨打,然后搜"减少了"

    回到 Tutorial,点击 Hit me。血条变短了。

    回到 CE:

  • Scan Type:改为
    1. Decreased value
    复制代码
    (值减少了)
  • 点击 Next Scan

    CE 会把快照里的值和当前值做对比,找出所有"现在比之前小"的地址。

    结果数量大幅减少,但仍然很多。

    第三步:什么都不做,搜"没变"

    这一步很关键。回到 Tutorial 窗口,什么都不做,不要点 Hit me。

    回到 CE:

  • Scan Type:改为
    1. Unchanged value
    复制代码
    (值没变)
  • 点击 Next Scan

    这会排除掉那些"一直在变化"的地址——比如计时器、帧计数器、随机数生成器这些每帧都在变的东西。你没有挨打,血量不应该变化,所以真正的血量地址应该在"没变"的集合里。

    第四步:交替使用"减少"和"没变"

    重复以下循环:

  • 点 Hit me → 搜
    1. Decreased value
    复制代码
  • 等一下不动 → 搜
    1. Unchanged value
    复制代码

    每轮都会淘汰一批地址。通常 3-5 轮之后,列表里就只剩下个位数的地址了。

    第五步:锁定并修改

    当结果只剩几个地址时,逐个添加到下方列表,把值改成 5000。

    改对了的那个地址就是血量。Step 3 通关。

    ━━━━━━━━━━━━━━━━━━━━

    Scan Type 大全

    CE 提供了多种扫描类型,适用于不同场景:

    | 扫描类型 | 含义 | 什么时候用 |
    |---------|------|----------|
    | Exact Value | 精确等于某个值 | 知道具体数字时 |
    | Unknown initial value | 未知初始值(首次快照) | 不知道数字时的第一步 |
    | Bigger than... | 大于某个值 | 知道下限时 |
    | Smaller than... | 小于某个值 | 知道上限时 |
    | Value between... | 在某个范围内 | 知道大致范围时 |
    | Increased value | 值增加了 | 加血/加金币后 |
    | Decreased value | 值减少了 | 扣血/花钱后 |
    | Changed value | 值变了(不管增减) | 值一定会变但不确定方向时 |
    | Unchanged value | 值没变 | 什么都没做时 |
    | Increased value by... | 增加了特定数量 | 知道精确增量时 |
    | Decreased value by... | 减少了特定数量 | 知道精确减量时 |

    其中
    1. Unchanged value
    复制代码
    是最容易被忽略但最强大的过滤器。在你什么都不做的时候用它,能排除掉大量持续变化的"噪声"地址。

    ━━━━━━━━━━━━━━━━━━━━

    搜索策略

    面对未知初始值的搜索,记住这个套路:
    1. Unknown initial value(建立快照)
    2.   ↓
    3. 做操作 → Decreased / Increased(缩小范围)
    4.   ↓
    5. 不做操作 → Unchanged(排除噪声)
    6.   ↓
    7. 重复 2-3 轮
    8.   ↓
    9. 结果个位数 → 逐个验证
    复制代码

    这个方法的本质是差分分析——你不需要知道绝对值,只需要观察变化模式。你控制输入(打或不打),观察输出(变或不变),像做实验一样逐步缩小变量范围。

    ━━━━━━━━━━━━━━━━━━━━

    常见问题

    Q:做了很多轮 Next Scan,结果还是很多怎么办?

    A:可能有其他地址碰巧和你的操作节奏同步变化。试试更复杂的操作模式:比如连点两次 Hit me 后搜 Decreased,然后等很久不动搜 Unchanged。等待时间越长,"碰巧同步"的地址越少。

    Q:Decreased value 和 Decreased value by 有什么区别?

    A:
    1. Decreased value
    复制代码
    只判断"变小了",不管小了多少。
    1. Decreased value by X
    复制代码
    精确匹配减少量。如果你能从血条的长度变化估算出大概减少了多少,用后者筛选更精准。

    Q:为什么有时候找到的地址改了没效果?

    A:可能找到的是"显示值"而不是"真实值"。有些游戏会把血量存在两个地方:一个是逻辑计算用的真实值,一个是 UI 显示用的缓存值。你需要找到真实值那个地址。办法是改完后挨打一次,看血量是从你改的值开始扣,还是从原来的值继续扣。

    ━━━━━━━━━━━━━━━━━━━━

    小结

    今天我们学会了面对未知数值时的搜索策略:

    1. Unknown initial value
    复制代码
    做全量快照
    1. Decreased
    复制代码
    /
    1. Increased
    复制代码
    追踪变化方向
    1. Unchanged
    复制代码
    排除持续变化的噪声
  • 交替使用,逐步逼近目标

    这个方法的精髓在于:你不需要知道答案是什么,你只需要知道答案在怎么变化。

    明天 Day 4,我们要面对一个新的敌人——浮点数。那些小数点后面的数字,会让你对"数字在内存里怎么存"有一个全新的认识。

    提前预警:明天的内容会涉及一点点 IEEE 754,但别怕,我保证讲得比高数老师有趣。
  • 您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    果子博客
    扫码关注微信公众号

    Archiver|手机版|小黑屋|风叶林

    GMT+8, 2026-3-29 20:23 , Processed in 0.203962 second(s), 19 queries .

    Powered by 风叶林

    © 2001-2026 Discuz! Team.

    快速回复 返回顶部 返回列表