使用说明
LLM代码审计多工具
具备代码评估、安全审计和专业报告撰写的技能和CLI。适用于任何AI编码环境。
🎯 技能
技能是结构化的工作流程,引导人工智能完成多步骤过程。每项技能都包含特定任务的详细说明、阶段和最佳实践。
| 技能 | 目的 | 能力 |
|---|---|---|
| 🛡️ 安全审计员 | 使用Map&Probe方法进行交互式安全审计 | Map(结构清单)→ 检查表(可选,特定于标准)→ 探测(每条路径漏洞分析) |
| 🔍 威胁建模 | 代码级审计前的系统威胁枚举 | 分析→ 图表→ 攻击者→ 资产→ 威胁(STRIDE)→ 报告 |
| 📊 估计量 | 项目范围界定和工作量估算 | 全范围(发现、探索、指标、报告)或不同范围(发现,审查、报告) |
| 🧠 设计挑战者 | 挑战过于复杂的设计 | 提出具有明确权衡的简化方案 |
| 📝 抄写员 | 报告撰写和发现生成 | 专业问题描述、报告介绍 |
| 🔬 sast管道 | 运行SAiST静态分析管道 | 初始化扫描→ 解决差距→ 运行规则(发货+自定义) |
| ✏️ 规则编写 | 作者SAiST检测规则 | 范围、深度和映射规则类型与测试模式 |
技能如何发挥作用
技能提供了AI自主遵循的完整工作流程。当被调用时,AI会加载技能的协议,并根据需要使用可用的工具逐步执行。每种技能都可以通过其各自的斜线命令调用(例如。, /security-auditor, /estimator).
[!注意] 模型性能:不同AI模型的技能表现不同。根据您的需求,您可能需要调整模型以获得最佳结果:
- 速度:较轻的型号(如Claude Haiku、Gemini Flash)执行速度更快,但可能会错过一些微妙的问题
- 推理努力:功能更强大的模型(如Claude Sonnet/Opus、Gemini Pro)提供更深入的分析和更好的边缘情况检测
- 彻底性:高层模型在探索和验证方面往往更全面
- 冗长:具有较高推理能力的模型在思考过程中可以不那么冗长
尝试不同的模型,为您的用例找到合适的平衡点。
🧰 CLI工具
这 aud CLI通过树型AST解析提供结构化代码分析。所有命令都支持glob模式,用于一次分析多个文件(例如。, "src/**/*.sol").技能会自动调用这些命令作为其工作流程的一部分。默认情况下,输出使用TOON;通过 --json 对于JSON。
👀 aud peek
在不读取完整实现的情况下从源文件中提取函数和方法签名。这 估计量 技能使用peek快速理解代码库的API表面、存在什么函数、它们的参数、可见性和修饰符。这非常适合进行初步探索和构建不熟悉代码的心理图,而不需要读取完整的文件。
📏 aud metrics
计算代码度量:
- 标准化代码行(nLOC):总行数减去空行、仅注释行和规范化为单行的多行构造(例如,跨越3行的函数签名计为1)。
- 评论密度:有/是注释的行的百分比,表示文档覆盖范围。
- 认知复杂度:通过按嵌套深度加权计算分支(if、for、while等)来衡量控制流的复杂性。深度嵌套的逻辑得分高于平面代码。
- 预计小时数:根据nLOC和每种语言的基本费率审查时间估算。
这 估计量 skill使用此命令计算执行安全审计所需的时间。
📈 aud diff-metrics
指标仅限于在两个git ref之间更改的行。炮弹发射到 git diff -U0 -M 要提取每个文件中添加/删除的行范围,然后使用树状图解析每个更改的文件,并计算与 aud metrics --仅限于添加行 nloc_added 和 complexity_added,并删除了以下行 nloc_removed.
复杂性遵循SPEC-CLI§2.2语义:一个新的分支节点增加了 1 + branching_ancestors (包括已有的祖先)。非分支添加的行不会带来任何复杂性。
每行还发出 changed_functions --体重叠≥1的头树可调用对象的名称 幸存 添加行(空白/注释/仅测试更改不列出函数)。把这些直接喂进去 aud call-chains --root=<name> 用于范围分析。
这 估计量 技能使用此命令进行增量审计范围界定(在审查之前确定PR的大小)。
🔗 aud gaps
从源文件构建符号图(容器、可调用对象、变量、事件、修饰符、边),并输出未解析的结果 边缘间隙 --引用静态传递无法解析(未解析的调用者、接口分派、外部库)。按边缘类型(高/中/低)对差距进行优先级排序,以便进行代理分流。
支持 --resolutions=<file> 将手动解决的间隙应用CSV,将其提升到混凝土边缘。
⛓️ aud call-chains
通过完整的调用图跟踪从根函数(无传入调用边的可调用函数)到调用链,按根分组,排序最长。这 安全审计员 技能使用它来理解执行如何在系统中流动,并识别攻击面。
支持 --root=<name> 从特定功能开始,以及 --max-depth=<n> 以限制遍历深度。
📊 aud graph
构建和转储完整的符号图——所有节点(文件、容器、可调用对象、变量、修饰符、事件)和边(包含、调用、读取、写入、has_modifier、继承、发射、导入)。可用于直接检查图形结构。
🔬 aud run --规则引擎
构建符号图并对其运行基于Lua的检测规则。规则要么是内置的,要么是自定义的(.lua 文件)。
--rule=<ID>--仅运行特定的发货规则--rule-path=<path>--从运行一个临时规则.lua文件--rule-inline=<lua>--从内联Lua字符串运行一个特殊规则
结果包括规则元数据、置信度、位置和深度规则的可选执行路径。支持按置信度(问题、气味、指针)进行过滤。
ℹ️ aud info
列出语言配置详细信息(容器类型、可调用类型、变量类型、可见性提取、内置过滤器、度量配置)。有助于理解解析器对给定语言的看法。
🌐 支持的语言
Solidity·Rust·Go·Python·Cairo·Compact·Move·Noir·Tolk·Masm·C++·Java·JavaScript·TypeScript·TSX·Flow
📦 安装
通过克劳德代码插件
# 1. Start Claude Code
claude
# 2. Go to plugins
/plugin
# 3. Navigate to Marketplaces tab
# 4. <enter> on "+ Add Marketplace"
# 5. Paste this repo's link, <enter>
# 6. Hit <space> and <i>
通过Gemini CLI扩展
gemini extensions install <repository-url>
其他AI编码环境(游标、Codex、Windsurf等)
技能可以使用安装 技能CLI。这包括 aud CLI——所有平台的预构建二进制文件都随附 auditor-addon-cli 技能:
npx skills add <repository-url>
AI可以调用 aud 直接通过技能路径。有关手动使用,请参阅 auditor-addon-cli skill's skill.md获取添加说明 aud 到你的路径。
从源代码构建
需要 Zig 0.15+.
# Clone the repository
git clone <repository-url>
cd auditor-addon
# Native build
zig build
# Run tests
zig build test
# Cross-compile all platforms (macOS/Linux/Windows × arm64/x86_64)
./scripts/build-all.sh --release
🏗️ 建筑与设计
核心原则
- 🧩 模块化:CLI、管道、语言配置和输出之间的明确分离
- 🔌 可扩展:通过声明式添加新语言
LanguageConfig结构 - ⚡ 快速:单Zig二进制文件,零运行时依赖,树型语法编译
- 🔬 Lua中的规则:检测规则在Lua中编写,在运行时加载
技术栈
- 语言: --单一二进制文件,可交叉编译到所有平台
- AST发动机: 树保姆 --编译成二进制文件的语法
- 规则引擎: 路亚 --通过ziglua嵌入
- 输出格式: 卡通 --面向令牌的对象表示法(或JSON)
- CLI解析: 齐格拍手
关键项目文件
.claude-plugin/: 🔌 Claude代码插件配置CLAUDE.md: 🤖 Claude Code插件上下文指南GEMINI.md: 🤖 Gemini CLI扩展上下文指南gemini-extension.json: ⚙️ Gemini CLI扩展配置skills/: 🎯 技能定义和协议src/: 🔧 Zig源代码(管道、语言配置、输出、CLI)vendor/grammars/: 🌳 树型语法源skills/auditor-addon-cli/bin/: 📦 预构建二进制文件+平台调度器