ByteNoteByteNote

字节笔记本

2026年6月25日

测了一个 4000 行的安全 AI 项目,核心能用,但用户第一步就会卡住

API中转
¥120

GitHub 上看到个叫 reverse-skill 的项目,标榜「逆向工程 + 授权渗透 + 安全研究的 AI 技能路由包」,号称能装进 Claude Code、Cursor、Cline 这些 AI 编码工具里,让 AI 自动按方法论去做安全任务。

听着挺唬人。我把整个项目 clone 下来,从头到尾真机跑了一遍——不是看 README,是实打实地执行脚本、跑构建、核交叉引用。结论有点意外:这项目的「大脑」设计得相当扎实,但「手脚」出了几个让人第一脚就绊倒的 bug。

先说它到底是什么

它不是一个能直接 npm start 的应用,而是一套喂给 AI 的「安全工作方法论库」。

体量摆在这:339 篇 Markdown 文档、22 个技能子目录、40 个 CTF 实战场景、4500 行可执行代码。AI 拿到任务后,先按内置的路由表找到对应技能,再按引导补齐本机缺的工具,最后在授权约束下执行。

听起来像个安全版的「AI 作战手册」。问题是,手册写得再好,执行环节掉链子也没用。

真跑之后:该亮的灯,基本都亮了

我没有止步于翻文档。四类检查全做了:

工具索引刷新——跑了一遍它的环境感知脚本,准确识别出我机器上的 java、python、node、adb、nmap,正确标记缺失的 jadx、frida。生成的索引还乖乖写进了 .gitignore,不会被误提交。这个小细节挺加分。

40 个脚本全过语法关——12 个 shell 脚本统一用了 set -euo pipefail 严格模式,出错即停。这是写脚本的基本功,说明作者不是随便糊的。

授权框架没掉链子——对一个安全工具来说,这比功能本身更重要。它把「授权声明」设成强制第 0 步,必须最先读,反复强调「所有操作必须在授权范围内」「禁止越权扩大范围」。没看到任何教 AI 干坏事的引导。

结构没注水——README 点名的技能目录、40 个 CTF 场景,一个不少,抽样看了几个 SKILL.md,内容扎实,179 到 629 行不等,不是占位符堆砌。

到这一步,我差点以为捡到宝了。

然后我点了「构建」,第一脚就绊倒了

项目里唯一能编译的工程叫 burp-mcp-full,一个把 Burp Suite 接成 MCP 工具的 Java 扩展。作者自己的 macOS 文档里,推荐用户这样构建:

bash
chmod +x build.sh
./build.sh

我照做了。每一行都报 command not found。

打开 build.sh 一看,文件里每个字符前面都被插了一个 符号。shebang 那行实际长这样:→#→!→/→b→b→i→n→/→b→a→s→h。明显是某次保存时编码搞坏了,谁也没发现。

行,那我绕过它,直接跑 Gradle。结果:

Could not set unknown property 'sourceCompatibility'

build.gradle 用了 Gradle 8 已废弃、Gradle 9 彻底删除的写法。而我装的是 Gradle 9.4。作者的推荐构建路径,在现代 Gradle 上必然失败。

我顺手改了一行,把属性挪进 java {} 块,再跑 gradle help——BUILD SUCCESSFUL。问题确认是代码而非环境。后面真正构建没跑完,是沙箱挡了 Maven Central 的下载,跟项目无关。

还有几个「言行不一」的毛病

构建之外,我还挖出两类问题:

一是文档承诺能装,代码却不认。 它的用法提示里列了 sqlmap、hashcat、hydra、gobuster、ffuf 五个工具,但你真跑 bootstrap-reverse.sh sqlmap,它回你一句「未知能力」——case 分支里压根没写。典型的「文档跑赢了实现」。

二是路由表有死链。 我把它的路由表里 45 个文件引用逐一核验,4 个断了:一个 skill 目录压根没建(纯死链),另外三个是路径前缀少写了,文件其实在,只是 AI 按表跳转会扑空。

该怎么评价这个项目

测完我心里有杆秤了。

它的方法论和路由设计是真正用心做的——工具感知准、脚本规范、授权严谨、内容充实,不是一个凑数的玩具。这部分对得起它的定位。

但它的**「最后一公里」维护得不好**——构建脚本编码坏了没人发现,Gradle 升级没跟上,文档和代码已经漂移,路由表有死链。任何一个想照文档实操的用户,大概率会在构建这一步怀疑人生。

最反直觉的是:这五个 bug 加起来,修起来大概只要 40 分钟。 一个 4000 行、设计这么用心的项目,卡在几个一行级的小问题上,挺可惜的。

所以我给的结论是:作为 AI 的安全知识库来用,可用;但想构建它的 Burp 扩展,先得自己动手修两个 bug。它需要的不是重写,是一次认真的收尾——补个 Gradle Wrapper、跑个引用校验脚本,这类漂移就不会再复发。

开源项目最遗憾的事,往往不是做不出来,而是差了最后那 40 分钟的收口。

分享: