☰
AI 自动化逆向(二十四)遇到疑似二进制,先看头几十字节
2026/10/28 19:08:22 网站建设 项目流程

AI 自动化逆向(二十四)遇到疑似二进制,先看头几十字节

本文是「AI 自动化逆向」系列第 24 篇。上一篇:magic 家族图谱:让 AI 定位「读取器在哪个模块里」;下一篇预告:数据表格式:一个恒等式覆盖 99% 的表。

前言

上一篇是"找到读它的人",这一篇是更前面十秒钟的一步起手式——它救回来的不是十秒钟,是整条路线:

拿到一个"疑似二进制"的资源文件,先把它头几十字节当文本看一眼。

因为"疑似二进制"这四个字里,"疑似"经常是真的只是疑似。

(同前几篇:文中"AI"指执行分析的模型,"我"指设定目标、审结果的人;内容均已脱敏。)

一、AI 在这里踩的坑:默认动作是 hexdump

AI 的默认倾向很一致:拿到资源文件,直接上十六进制视角——看熵、找魔数、准备按二进制格式开逆。

问题在于,这一步一旦走上去,问题就被升级了:从"读一篇文章"变成"逆一种二进制格式"。而很多资源文件根本经不起这个待遇——

这个项目里有一整个类别、一千五百多个"特效"文件,是纯文本。它们装着中文注释、装着嵌套的括号结构;只是编码是一种中文编码,谁要是拿另一种常见编码去开,会直接报解码失败——于是"打不开"被当成了"是二进制/被加密",二进制逆向的整套流程就此启动,而真相是打开方式不对。

人应该加的检查:"乱码"先换编码,再谈格式。编码不对和格式不对,看起来是同一种故障;但前者十秒能解决,后者可能花掉一天。

二、过程:三步吃下"文本红利"

第一步:头几十字节当文本读

动作只有一个:把开头几十字节按文本方式看一眼——有没有像人话的结构?括号、逗号、可读单词、重复的模式?

这个项目里的答案是教科书级的:那批文件是Lisp 风格嵌套列表——一层套一层的括号,直白得不能再直白。于是整件事立刻降级:不是"逆出来",是"读出来"——

  • 文件结构:一个版本号 + 一串"特效块";
  • 每个特效块:特效编号、纹理名、若干参数、再加一串关键帧(时间戳、位置、缩放、旋转、颜色、透明度);
  • 字段语义直读可得:时间戳是毫秒量级、颜色是 0 到 255、透明度是 0 到 1——读出来自己就能和常识对上。

最后的验收也很干脆:全部文件 100% 解析、0 失败(写一个几十行的解析器就够——它不是逆向工具,是个"读法正确"的翻译)。

第二步:解码回退要成链、要有兜底

既然"打开方式"是关键,解析器就要把多种可能的"打开方式"排成一条回退链:按最可能的编码先解,失败就退下一档,最后有一档兜底(能保证任何字节都不至于炸掉解析)。

两条配套纪律:回退链要固定、要有底;回退发生时要在输出里留痕——不然"这份数据是用哪一档解出来的"又变成一个不可见状态(那正是本系列一切老病的开端)。

第三步:二进制搜不到,就换一个层次搜

同一片工作里还有一条姊妹教训,正好补全这套动作:有一类资源的"逻辑"在全部二进制模块里零命中——第一反应是"不存在";真相是它根本不在二进制里,在脚本层。

“二进制里搜不到” ≠ “不存在”——它可能只是住在另一个层次:脚本、配置、明文数据。

还有更便宜的一招:先ls/cat一遍根目录的文本配置,再考虑反编译。这个项目里有一份几百字节的明文配置,里面躺着整条关键链的输入端——而它"被此前所有会话路过了"。最便宜的入口,往往是最后被看的。

三、判据与验证:四条

1. 拿不准,先看头几十字节。文本?结构化?看完再决定用哪套工具——这一眼几乎零成本,收益是一条路线级的。

2. "乱码"先换编码。编码问题 ≠ 格式问题;解码失败 ≠ 加密。多试一档再下结论。

3. 文本格式的验收:全量解析 + 语义直读。“100% 解析、0 失败"配"字段读出来和常识对得上”(时间像时间、颜色像颜色)——两条都过,才算真读对了。

4. 搜不到时换层次再搜。二进制、脚本、明文配置各搜一遍,再宣布"不存在";顺带先吃"明文红利"——根目录的文本文件,永远先看。

四、结论

"疑似"和"二进制"这两个词连在一起的时候,先花十秒钟看一眼——很多"疑似二进制"只是"编码没猜对"或"层次没找对"。

把这个系列前面的主题串起来看:前面讲的都是"怎么判",这一条是**“先判它配不配被那么判”**——在动用整套重武器之前,先确认目标是不是只需要一双手把它翻开。

五、边界声明

  • 本文只讨论AI 自动化逆向中的判据设计与审核方法,不涉及任何具体产品、厂商或服务的分析结论。
  • 文中所有地址、偏移、常量、字段名一律为占位符或示意值,
    不代表任何真实目标中的取值;示例代码为说明判据而编写,不构成可运行的针对特定目标的工具。
  • 文中提到的比例与数字均来自作者项目内的测量记录,仅用于说明方法失效的方式。
  • 请勿将本文内容用于未授权的用途。

六、收尾

文本红利吃完了,下一篇回到真正的二进制战场——但用的还是"先找等式"的老办法:一种数据表格式,一个恒等式覆盖了 99% 的表;而最有意思的,往往是那个不满足恒等式的例外。

下一篇计划聊:数据表格式:一个恒等式覆盖 99% 的表。



转载请注明出处:
https://lizhiyong.blog.csdn.net/article/details/169170109

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询