智猩猩AI整理
编辑:林夕
【资料图】
「REA 是互联网上最危险的仓库……所以我做了个东西,让它看不见。」
说这话的是中山大学大三学生 Timo Zhang,他在 X 上介绍了自己独立开发的开源项目BLA(Blind LLM Agents),专门用来反制 REA 这类 AI 逆向工具。
他在发帖时晒出了 3,278 Star、407 Fork。目前,项目仓库已显示5.2k Star。
他点名的 REA,正是我们前几天报道过的那个AI 逆向项目。
把软件交给它,AI Agent 就能调用分析工具,顺着打包后的代码查文件、找函数,试着还原软件是怎么工作的。
项目上线一周,GitHub 标星就超过了 10 万。
REA 能自己顺着线索查下去,BLA 就从它看到的线索入手。按项目方对样例的估算,加固后的逆向任务最高可能消耗原来约 2800 倍的 Token。
01
给AI逆向工具一条假线索
AI Agent 做逆向时,会根据工具返回的结果决定下一步查什么,看到一个可疑的函数名,它可能去找调用者。
发现一个看起来和认证有关的模块,它又会顺着调用关系,看看软件什么时候会用到它。
BLA 下手的地方,就是 Agent 用来做这些判断的线索。
以 JavaScript 的Source Map为例。网页代码打包压缩后,原来分散在多个文件里的代码可能只剩下几行。
Source Map 能告诉调试器,这几行分别对应原项目里的哪个文件、哪个位置。
对逆向 Agent 来说,拿到这份映射,就有机会跳过大段压缩代码,直接找到要查的模块。
但这份映射也可能指向一条假线索。
在 BLA 展示的案例里,一段普通的客户端代码,看起来像是在调用硬件安全区,连相关的认证流程也像模像样。
Agent 如果信了,就可能接着找认证模块、梳理调用关系,最后把程序里从未发生过的调用写进报告。
Timo Zhang 在 X 上用三个词概括这套思路:Poison、Exhaust、Hallucinate。
先让 Agent 读到看似可信的信息,再让它沿着假线索消耗上下文和 Token,最后让这些未经核实的信息变成报告里的结论。
还有一种情况,Agent 甚至来不及追查。
BLA 会让部分加固后的文件超出分析器的处理上限,工具可能提前报错,也可能只返回部分结果。
于是,同样一套加固方案,有的样例会让 REA 在读取阶段停下来,有的则会让 Agent 带着不完整的信息继续往下查。
02
有的样例让REA报错,
有的还能继续查
BLA 的假线索能把 AI 带偏多远?
作者先用 REA 做了一组加固前后的对照,看看同一份软件经过处理,分析工具还能读出多少东西。
在公开的13 项对照里,有7 项在被测步骤报错或被拒绝,2 项仍能返回部分结果,1 项只在指定查询时报错,另外3 项未观察到分析受阻。
换句话说,有些样例一上来就卡在了文件读取环节,有些仍给 Agent 留下了继续追查的空间。
其中一个例子是Electron 应用常用的 ASAR 打包文件。加固前,样例只有607 字节。
加固后,文件增至16.93 MiB,超过了 REA 当时的默认读取上限,分析器随即报错。
至于引言里提到的最高 2800 倍,项目方给出的是另一组数据。
它来自对14 个样例的成本建模,估算的是加固后逆向任务可能消耗多少 Token。
在这组估算里,不同样例的 Token 消耗约为原来的300 至 2800 倍。
工具在第一步就报错,和 Agent 顺着一条假线索查了十几轮,是两种不同的结果。
前者能在对照测试里直接记录,后者的实际开销取决于 Agent 查了多久、读了多少内容。
即使它最后交出了一份完整的报告,还有一个问题要回答:报告里的调用关系,究竟来自程序本身,还是来自那条假线索?
03
一条命令,
跑完BLA的14个官方样例
BLA 提供命令行工具和 MCP 接入。想先看看前面提到的样例怎么跑,用命令行就够了。
项目 README 推荐Node.js 22.23.4 或更新的 22.x 版本,或者 Node.js 24 及以上版本。
装好 Node.js 后,打开终端,先检查版本:
node -v
接着,用npx运行 BLA 自带的 14 个示例。第一次执行时,终端可能会提示下载bla-agents包。
npx bla-agents benchmark
运行后会看到各样例的 Token 倍率、费用估算和运行结果一致性检查。
这里的Token 和费用仍是项目内部估算,可以和前面截图里的表格对照看。
如果想试自己的项目,可以先复制一份构建产物,在副本目录里运行:
npx bla-agents harden .
命令里的.指当前目录。
BLA 会在该目录中查找支持的构建产物,依次执行审计、加固和验证。
跑完可以对照处理前后的文件大小,再用项目自己的测试套件跑一遍,确认打包后的应用还能正常运行。
04
同一个作者,
也在做给Agent省Token的工具
Timo Zhang 的 GitHub 上还有一个叫mu(μ)的开源项目,他用树莓派做了个小模型,想帮Coding Agent 少花一点 Token。
这和 BLA 放在一起,倒有点意思。一个想给自己用的 Agent 省预算,一个专门让来做逆向的 Agent 多花预算。
回到前面那条假线索。
对人来说,发现它是假的,关掉文件就行。
对 Agent 来说,等它发现不对,可能已经读了好几个文件、调了好几次工具,还把一路查到的东西都留在了上下文里。
所以,即使 AI 最后识破了诱饵,查证这条线索的 Token,也已经花出去了。
关注+星标,获取AI前沿进展与开源一线动态



