AI 自动化逆向(十七)解码器、反汇编器、反编译器:能力边界表
本文是「AI 自动化逆向」系列第 17 篇。上一篇:AI 把一个像素格式判错了两次;下一篇预告:AI 的产能是量级的:1000 个脚本意味着什么。
前言
像素那仗赢在"有画面可看"。这一篇回到没有画面可看的地方------工具本身。
因为在这个项目里,曾经有一个会话正式写下过一句结论:"这台机器上没有反汇编器。" 那是错的。工具一直都在。而更麻烦的还不是这一句错话,是它背后的一个普遍混淆:
"解码"和"分析"是两个层,而这两层的工具长得有点像。
(同前几篇:文中"AI"指执行分析的模型,"我"指设定目标、审结果的人;内容均已脱敏。)
一、AI 在这里踩的坑:一句"没有",带偏了上千个脚本
那句"没有反汇编器"带来的直接损失很具体:在它之前和之后的一批会话,都以为只能自己动手 ------累计写下了上千个脚本,手工解析文件结构、手工解码指令。
而实际环境里,一个成熟的全量分析器 一直装着,做好了全部自动分析。真相是:没人去查"库层"------找工具的人在应用层找了一圈,没找见,就宣布了不存在。
同一族还有一个更细的混淆:
- 纯解码库 (业界常用:一段字节进去,助记符出来)------它是个纯粹的"翻译器",不知道哪里是函数、哪条是数据;
- 全量分析器 (业界常用:自动分析整个文件)------函数边界、控制流图、交叉引用、反编译,只有它才有。
把"只有解码器"当成"没有分析器",就是把这两层当成了一个东西。
人应该加的检查 :AI 说"环境里没有 X"时,先把它翻译成一句话再信:"我不知道这里有 X。" 然后要求它在每一层各找一遍(已装库?可执行文件?包管理器?服务?),再下结论。
二、能力边界表
这张表值得直接抄走------它划清了"哪一层能做什么":
| 能力 | 纯解码库 | 全量分析器 |
|---|---|---|
| 字节 → 助记符 | ✅ | ✅ |
| 函数边界识别 | ❌ 得自己推 | ✅ 自动分析 |
| 控制流图 | ❌ | ✅ |
| 交叉引用库 | ❌ 只能扫字节模式(有假阳性) | ✅ 数据库 |
| 反编译成伪代码 | ❌ | ✅ |
| 类型 / 结构体传播 | ❌ | ✅ |
| 速度 | 极快(MB 级文件数秒) | 慢(分钟级) |
| 批量脚本化 | ✅ 天然友好 | ⚠️ 视环境(这个项目就遇过一次"脚本通道故障、GUI 却正常") |
两条配套的认知:
1. 四层,不是两层。 解码 → 反汇编(线性)→ 分析(函数/图/引用)→ 反编译。能力严格递增,不要用一层的失败证据去宣布另一层不存在。
2. 工具能力不是一个布尔,是一张带状态的表。 同一个分析器,"装好了"和"能用"是两回事------那个项目的分析器本体一切正常,但 headless 的脚本通道坏过一阵:分析结果能用、批量脚本走不通。"有工具"要细分成"以什么形态可用"。
缺工具,还是缺能力?
分层的意义在缺东西的时候最明显:如果缺的只是"函数边界"这一项,不是只有两条路("买到完整分析器"或"没有")------还可以自建 :用纯解码库配上"逐字节重同步扫描",自己扫出一份指令起点缓存,凑出部分"分析"能力(这个项目后来就这么干了一件,后面会单独讲)。先定位缺的是哪一格,再决定在哪一层补。
三、判据与验证:给"用 AI 做工程"的三条
1. "没有"要有三层证据。 说环境里没有某能力之前,逐层交代:应用层找过什么、库层查过什么、运行时里有什么。"我没查到"和"没有",要分开写。
2. 能力表要标注"当前可用形态"。 别只写"有/无工具",写"哪个工具、什么形态、当前能不能批量用"。------同一个坑还会以另一种形式回来:环境变了(升级、权限、沙箱),昨天能用的通道今天可能断。
3. 把"工具选择"变成一次显式权衡。 解码库像计算器:快、每步都要你带着上下文;分析器像会计:慢、但有一本全局的账。要"这一步"用前者,要"整本账"用后者------而不是在"没有工具"的错觉里,用最原始的方式手搓一切。
四、结论
一句话:"这台机器上没有工具"和"我没查过这里",在输出上同形------这又是那族老问题的第五次出场(空、常量、字段、坐标......这次轮到"能力")。
而防它的姿势也还是那一套:把句子拆成可查的清单 。缺的是哪一层、哪种形态、能不能自建、自建的话缺哪一格------每一条都能查、能列、能被打脸。AI 对"世界上有什么"答得很快;对"这台机器上有什么",它必须去查。
五、边界声明
- 本文只讨论AI 自动化逆向中的判据设计与审核方法,不涉及任何具体产品、厂商或服务的分析结论。
- 文中所有地址、偏移、常量、字段名一律为占位符或示意值 ,
不代表任何真实目标中的取值;示例代码为说明判据而编写,不构成可运行的针对特定目标的工具。 - 文中提到的比例与数字均来自作者项目内的测量记录,仅用于说明方法失效的方式。
- 请勿将本文内容用于未授权的用途。
六、收尾
工具边界划清了,下一篇算一笔产能的账:上千个脚本意味着什么 ------为什么大多数脚本只活一轮、"跑得起来"和"结论对"差在哪、以及怎么让 AI 的工具能被它自己重跑。
下一篇计划聊:AI 的产能是量级的:1000 个脚本意味着什么。

转载请注明出处: