智猩猩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前沿进展与开源一线动态
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.