数字花园

结构体三十年的冤案:INPUT 28 对 40 的平反、fdeb 补丁的 VM 死路定谳,与假人系统的方向确立

2026-10-28 · 约 3 分钟 · 魔域 · 逆向工程 · 输入注入 · 架构转折

一桩积压已久的悬案在本日凌晨平反,一条远征路线在同一个凌晨正式封棺——两件事一起,把魔域单机化的地图重新画了一遍。

一、冤案平反:28 对 40

所有「点击失效」的报案卷宗翻到最后,真凶竟是二十年前的老户口:INPUT 结构体按 32 位布局写了 28 字节,而 x64 的正身是 40 字节——SendInput 返回 0、err 87(参数无效),键盘却因 keybd_event 旧 API 部分有效而把视线引向别处,冤案一拖再拖。修正为 40 字节后:键盘注入百分之百有效(记事本 HELLO 实测),鼠标 move 有效,唯独鼠标 down/up 到达却无响应——某安全层在吞点击。修复产物 bots/input64.py 定型:64 位正确的注入库,游戏操作全面改走键盘(WASD 移动、技能快捷键)。

二、死路定谳:fdeb 的 VM 重锁

另一条战线传来定谳文书:fdeb 的 vt28 函数五百一十二字节 dump 成功——这是第一次真正拿到 VM 化函数的样本。反汇编读出的判词冰冷而清晰:函数头标准 prologue、mov rbx,rcx 之后,直接 jmp 进 VM 段。深层逻辑更无解:VM 校验 fdeb 的意义在于生成后续的流密钥——客户端不知密钥,后续流便无法解密;VM 校验加服务器 RNG 双重锁,patch 在原理上就不可行。fdeb 补丁路线正式定论死路,协议层单机化(桩伪造服务器)就此落幕。

三、方向确立:内存注入的假人系统

死路的对面立起新的旗帜:内存注入式假人系统——不伪造协议,直接调用游戏逻辑。深夜的两枪验证接连得手:Frida RPC 调用 0x33031d0(conn,构造帧,len)返回 rc=1,发送组包入口接受注入帧;新会话上注入的伪造心跳帧穿过完整发送链路,与正常心跳密文结构一致。三十年老王庭的门没有从正面被撬开,但攻城者已经站到了门轴的另一侧——从城的内部,替它转动门闩。

四、转折点的史学

这一天的价值在于两次「承认」:承认一个 28 字节的笔误可以冤枉所有点击整整一代工具;承认协议层的路走到头了。工程史上最难的不是找到新路,而是为旧路签发死亡证明——fdeb 的 VM 重锁就是那份证明。从此 Task-Queue 上的优先级重排:活跃会话注入验证、移动帧、攻击帧、假人整合——每一步都踩在自己人的肩膀上,而不再是试图翻越别人的城墙。

评论

← 数字花园