AI 自动化逆向(二十五)数据表格式:一个恒等式覆盖 99% 的表
本文是「AI 自动化逆向」系列第 25 篇。上一篇:遇到疑似二进制,先看头几十字节;下一篇预告:「已解出」和「已解析」是两回事。
前言
卷四第一篇(第 6 篇)讲过"先找恒等式"解一个资源容器。这一篇是它的兄弟案例------但规模换了个量级:面对的是一整族数据表,两百多个文件,一个恒等式,一次覆盖。
而且这一篇真正的主角不是那个恒等式------是唯一不满足它的那个文件。
(同前几篇:文中"AI"指执行分析的模型,"我"指设定目标、审结果的人;内容均已脱敏。)
一、AI 在这里踩的坑:一族文件,两种错法
面对"两百多个长的差不多的数据表",有两种标准错法:
- 逐个逆:一个表一轮分析,一百多个文件就是一百多轮------AI 有产能也不该这么烧;
- 差不多就收工 :找到一个"大致成立"的模式(比如"大多数文件能整除"),宣布理解------"大多数"是一个没有下限的词。
正确的姿势其实卷四已经给过:先写恒等式,全量验。 只是这次它的产出不是"解开了这个表",而是**"把这一族表一刀切开"**。
二、过程:一刀切开两百多个表
第一步:一个恒等式的"全家桶"
先看结构:这些表的形状高度一致------16 字节的定长头 + 紧密排列的记录区 。头里四个字段:魔数、版本、每条记录多长 、一共多少条。
于是恒等式顺手就来:
文件大小 == 16 + 记录长 × 记录数
然后是全量验证:两百多个表,零剩余。 一个不多、一个不少。
这一刀的价值连乘三倍:
- "某个文件是不是这个格式"------变成了一个算术判定;
- "记录长、记录数这两个字段真的读对了吗"------等式替你把关:读错任何一个,等式立刻塌掉;
- "还剩多少没懂"------分母和分子都摆在了桌面上。
第二步:唯一的例外,就是第二个格式
全量两百多个里,有一个过不去:魔数不同、头只有 4 个字节、"版本"字段干脆没有了。
这里出现了本篇最值得抄的一条戒律------不许把它"拉进模型":
- 改分母("把那个文件排除")?------那是在改题目;
- 放宽等式("允许头部有几个字节的浮动")?------那是把两个物种硬揉成一个模型,从此每种怪文件都可以被"放宽"进去。
正确动作:例外单独立案、单独审 。审的结果也很教科书------它不是"坏样本",它是另一种表(疑为"资源 ID → 存储位置"的映射表,头部只解读到一半,明明白白标了"未深挖")。
恒等式不成立的那个例外,往往才是另一个格式。 一刀切不断的地方,正是下一个模型该出生的地方。
第三步:结构可以证明,语义只能分级交付
结构层已经硬了(全量验证)。但"每个字段是什么意思"没有跟着变硬------于是交付时分开标注:
- 结构:定长头 + 记录区,全量成立------硬结论;
- 语义 :主键列(首字段严格递增)、疑似标志位的重复位模式、疑似浮点的数值------中等置信度推断,未在运行环境中验证;
- 连"哪些是直读、哪些是推断"也逐条写明------语义不装成结构。
(两个观察尺度也值得记:几十条的小表可以逐字段肉眼排雷 ;上万条的大表,靠的是几个"形态学"侧面------首字段递增像主键、反复出现的位模式像标志位。样本越大,越要靠形态,不靠眼睛。)
第四步:当一族格式开始互相引用
最后一步的收获不是"又多懂了一个表",是链路 :表里嵌的字符串,很多是别的格式的 ID ------其中一类正好指向上一篇的文本特效:"特效 ID → 特效定义"整条链就此打通。
格式不是孤岛。 一族格式能互相引用时,顺着引用往两头接------连成链的那一刻,单点的价值会翻倍。
三、判据与验证:四条
1. 一族文件,先写恒等式、全量验。 通过率就是模型的成色单------100% 和 90% 说的是两件完全不同的事(第 6 篇的账,在这一族上又结了一次)。
2. 例外单独立案,不许"调整后拉进来"。 改分母、放宽等式,都是把下一个模型掐死在摇篮里。
3. 交付分层:结构(证明)与语义(推断)分开标注。 "结构可以被证明,语义常常只能被推断"------把这句话写进交付物,是长周期项目里最便宜的诚实。
4. 找联系:顺引用往两头接。 一族文件互相 ID 引用时,链路的产出比任何单表都值钱。
四、结论
恒等式的又一次用法,命名可以更狠一点:一个等式就是一把分类刀。
它把"两百多个文件"一刀切成"这个格式"和"不是这个格式"------而成色最好的信息,往往长在切不断的那一个上:那是下一个格式、下一个模型、下一篇文章的入口。
五、边界声明
- 本文只讨论AI 自动化逆向中的判据设计与审核方法,不涉及任何具体产品、厂商或服务的分析结论。
- 文中所有地址、偏移、常量、字段名一律为占位符或示意值 ,
不代表任何真实目标中的取值;示例代码为说明判据而编写,不构成可运行的针对特定目标的工具。 - 文中提到的比例与数字均来自作者项目内的测量记录,仅用于说明方法失效的方式。
- 请勿将本文内容用于未授权的用途。
六、收尾
"解开了、也解析了"------到这里都是好消息。下一篇泼一盆冷水,问一个交付层面的问题:"已解出"和"已解析"是两回事------解包出来几百个产物,它们各自到底处在什么状态,做过一次全量普查吗?
下一篇计划聊:「已解出」和「已解析」是两回事。

转载请注明出处: