andreitoma8/hex

GitHub: andreitoma8/hex

Hex 是一个智能合约审计工具包,通过整合AI和确定性分析工具,加速从代码分析到漏洞验证的审计流程。

Stars: 1 | Forks: 0

# Hex 面向 Solidity 智能合约审计员的工具包。Hex 将 Claude Code 技能、确定性分析工具和本地仪表板相结合,助你从“刚收到代码”快速推进到“验证后的审计发现”,速度更快,覆盖更全面。 Hex 不会取代你的专业知识。它自动执行审计中的机械性工作(解析、数据收集、图表绘制、PoC 框架搭建、审计发现撰写),从而让你专注于真正重要的事情:阅读代码并思考可能出错的地方。 ![Hex 仪表板 — VaultX 协议主页,包含 KPI 指标栏、AI 生成的概览和合约架构图](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/604ada1192011647.png) ## 工作原理 你通过 Claude Code 驱动 Hex。输入 `/init-audit`,Claude 就会运行整个流程。三个组件在幕后基于共享项目目录协同工作: **Claude Code 技能**是入口。它们处理任何需要推理的工作——生成协议概览、识别不变式、检查代码是否符合规范、编写 PoC、草拟审计发现、协调其他 AI 审计代理。你以原生斜杠命令(例如 `/init-audit`、`/generate-overview`)的形式调用它们。技能是随 `hex` 包一起分发的 Markdown 文件,会被复制到你项目的 `.claude/skills/` 目录中。如果需要,你可以按项目编辑它们。对于需要深入代码理解的技能(PoC、不变式、规范符合性检查),推荐使用 Opus 模型;对于较简单的任务(概览、审计发现撰写),使用 Sonnet 模型效果也很好。 **`hex` CLI** 是技能调用的确定性引擎。它封装了经过实战检验的工具,如 Slither、solc 和 Forge,而不是重新发明静态分析,并且它输出带有置信度元数据的结构化 JSON,让你始终了解可以信任某个数据点的程度。你可以直接调用它,但通常不需要——`/init-audit` 会为你完成。 所有三个组件都从同一项目目录读取和写入。没有服务器,没有数据库,没有账户。一切都在本地运行。 ## 前置条件 使用 Hex 前,请确保已安装以下内容: - **Claude Code** — Anthropic 的用于代理式编码的 CLI 工具 - **Node.js** (v18+) 和 npm - **Foundry** (`forge`, `cast`) — 如果项目使用 Hardhat 则需安装 Hardhat - **Slither** — `pip install slither-analyzer` - **solc** — Solidity 编译器(通过 `solc-select` 或 Foundry 管理) 安装 Hex 后(下一节),运行 `hex doctor` 以确认所有组件就绪——它会打印一个带有标签的预检表格,为任何缺失项提供安装提示。 ## 快速开始 ### 1. 克隆客户端项目并安装 Hex ``` # 如常克隆或接收客户端项目 git clone https://github.com/client/protocol.git cd protocol # 全局安装 Hex npm install -g hex-audit ``` ### 2. 将技能放入项目并打开 Claude Code ``` hex claude # copies the audit skills into .claude/skills/ claude # open Claude Code in this directory ``` `hex claude` 是在 Claude Code 接管之前唯一需要的 CLI 调用——它复制技能文件,使 `/init-audit` 等命令作为原生斜杠命令出现。技能一旦放入 `.claude/skills/`,就可以按项目进行编辑。 ### 3. 让 Claude 初始化审计 在 Claude Code 内部: ``` /init-audit ``` Claude 会向你询问审计范围、提交哈希、区块链和文档 URL,然后: - 使用你的审计范围和项目元数据编写 `.hex/config.json`。 - 运行完整的分析流程(`stats`、`deps`、`access`、`state`、`calls`、`patterns`、`constraints`,然后是 `surface`),并在运行时实时流式显示每步进度。 - 在项目根目录创建一个 `CLAUDE.md` 文件——一个 Claude Code 在未来每次对话中自动加载的快速参考。它包含区块链、Solidity 版本、文档 URL、每个输出文件及其回答的问题的表格、推荐的技能调用顺序以及可用的 CLI 命令。 当 `/init-audit` 完成时,仪表板上的每个分析页面都已有数据。 你提供的范围定义了你负责审计的文件。所有其他项目文件仍然可供 Claude 用于上下文、编译和测试执行。 ### 4. 打开仪表板 在第二个终端中: ``` hex dashboard ``` 这会在你的浏览器中打开 `http://localhost:3000`。工作时保持它打开——随着 Claude 生成更多分析,每个页面会自动填充数据。使用 `--port 8080` 指定自定义端口,或使用 `--no-open` 跳过自动打开。 ## 审计工作流程 Hex 遵循四阶段工作流程。你可以按顺序进行,但也可以随时返回并重新运行前面的步骤。本节中的所有命令都在 Claude Code 内部输入。 ### 阶段 1 — 理解 此阶段的目标是在阅读任何一行代码之前,建立对协议的思维模型。这里的所有内容都是 AI 辅助的,基于 `/init-audit` 已经生成的确定性数据之上。 **1.1 — 概览** ``` /generate-overview ``` **1.2 — 统计数据、访问控制、状态、调用、模式、约束、攻击面** 已在 `/init-audit` 期间生成。在仪表板上查看它们: - `/stats` — 每个合约的 nSLOC、函数、修饰符、事件、错误、汇编行数。测试覆盖率(行覆盖率和分支百分比,未覆盖行高亮显示)。依赖项和 ERC/EIP 使用情况。 - `/access` — 谁能调用什么,按角色分组,并带有置信度指标,显示角色是从已知库检测到的(高置信度)还是从修饰符名称推断的(低置信度,需要验证)。角色还被标记 `kind` 类型(`access_control`、`state_check`、`guard`、`unknown`);`unknown` 类型默认隐藏在“显示推断/未知修饰符”开关后面,这样 `onlyDuringPause` 就不会冒充权限角色。 - `/state` — 每个状态变量的类型、可变性、哪些函数读取和写入它、是否未使用,以及当编译器工件可用时的存储槽冲突警告(合约内和继承差异)。 - `/calls` — 每个外部调用,包含信任级别、返回值检查和重入保护状态。 **1.3 — 系统图** ``` /generate-diagram ``` 生成一个 Mermaid 架构图,显示按区域分组的具体合约,带有语义符号(🏦 金库、💰 代币、🔮 预言机、🔒 治理、📦 存储)、颜色编码的节点、交互类型的边标签(delegatecall、外部调用、访问控制)、概览标题和可视图例。每个图最多约 15 个节点——大型协议会自动拆分为多个聚焦图。可在 `/diagram` 查看,支持缩放和平移控件。 **1.4 — 流程图** ``` /generate-flows ``` 为协议中每个重要路径生成 Mermaid 流程图,按用户类型(任何人、所有者、守护者等)、价值流(存款、取款、费用收取)和管理操作分组。使用不同的节点形状(椭圆表示开始/结束,圆柱体表示状态变化,菱形表示决策),每个合约一个泳道子图,纯英文标签。每个决策菱形显示成功和回滚路径。只有范围内的合约才会生成流程——范围外的合约仅作为外部调用目标出现。 **1.5 — 不变式** ``` /identify-invariants ``` 每个不变式都附带一个置信度评级。输出保存到 `.hex/invariants.md` 并在 `/invariants` 显示。 **1.6 — 规范符合性** ``` /check-spec-conformance ``` 检查代码是否真正做了它声称的事情。Claude 交叉参考四个规范来源: - **外部文档** — “用户可以随时取款” → 代码实际允许吗? - **NatSpec 注释** — `@notice 如果资产为零则回滚` 真的会回滚吗? - **接口符合性** — 合约是否实现了其接口中的每个函数并具有正确行为? - **ERC/EIP 合规性** — ERC-4626 实现是否遵循舍入规则?ERC-20 是否处理零金额转账? 每项检查被分类为 `CONFORMS`、`DEVIATES`、`PARTIAL`、`UNVERIFIABLE` 或 `UNDOCUMENTED`。偏差是潜在的审计发现。ERC 项包含 `spec_location.url`,以便 `/conformance` 仪表板可以链接回确切的 EIP 章节。结果保存在 `.hex/spec-conformance.json` 中并在 `/conformance` 渲染。 ### 阶段 2 — 审查 这是你进行实际审计的地方。Hex 在这里不会打扰你——你在 VS Code 中阅读代码,思考可能出错的地方,并在可疑之处留下 `@audit-issue` 注释。 当你发现潜在问题时,在受影响代码上方添加一条注释: ``` // @audit-issue Possible reentrancy — external call before state update. IERC20(token).transfer(recipient, amount); ``` 然后让 Claude 处理它(阶段 3)。 ### 阶段 3 — 审计发现 一旦你在审查阶段识别出问题,Hex 会帮助你验证并撰写它们。 **3.1 — 生成概念验证 (PoC)** ``` /generate-poc for the issue at src/Vault.sol line 156 about the rounding error ``` Claude 将会: 1. **读取所有上下文** — 所有先前的分析输出(访问控制、状态变量、外部调用、不变式、规范符合性、现有发现)以及目标源代码。在推理可利用性之前,先了解全貌。 2. **先进行推理** — 追踪执行路径,检查前提条件,评估现有保护措施。此推理过程保存在验证备忘录 `.hex/validations/_memo.md` 中,无论问题最终是否有效。 3. **检查项目的测试设置** — 阅读现有测试文件、基础合约、固件和配置。它会复用你项目的测试基础设施,而不是从头构建。 4. **编写 PoC** — 一个与项目框架(Foundry、Hardhat 等)和编码规范匹配的测试文件,继承自现有的基础测试合约。 5. **运行并迭代** — 执行测试,如果失败则进行调试,直到通过。 如果 Claude 结论认为问题无效,它会在验证备忘录中解释原因并停止。推理过程始终保留,因此不会丢失任何信息。 **3.2 — 撰写审计发现** 在 PoC 通过后: ``` /write-finding for the rounding error issue in src/Vault.sol ``` - 严重性(严重/高/中/低/信息),根据技能内联记录的可能性 × 影响矩阵进行评估。 - 描述(自包含:问题是什么、为什么存在、可能的影响是什么)。 - 代码位置及相关片段。 - PoC 引用。 - 以方向性建议(`考虑...`)形式提出的建议,而不是规定性修复。协议团队负责实现;审计员提出改进方向。 `findings.json` 是用于去重、严重性统计和仪表板报告视图的权威来源。 **审计发现中的代码块规则** 当 AI 在审计发现中包含代码片段时,它遵循严格的规则: - 永远不要在片段中修改原始代码(只允许 `@audit` 注释和用于省略行的 `// ...`)。 - 注释放在受影响代码上方的单独行中,而不是内联。 - 所有插入的注释都是完整的句子,带有正确的大写和标点符号。 - 不添加原始源中没有的解释性文本。 **3.3 — 将规范偏差转换为审计发现(可选) -->` 脚注对每个进行分类,将评论和状态附加到你匹配的本地审计发现上,并将队友的 issue 写入 `.hex/external/github/findings.json`,以便它们在 `/all-findings` 中以 `source: github` 和作者的 GitHub 登录名显示。 - **推送** 每个跟踪状态为 `settings.github.publish_status`(默认值:`verified`)的本地审计发现作为新 issue 发布,或者如果审计发现已有 `github.issue_number` 则更新现有 issue。正文根据审计发现的描述、代码位置和建议进行渲染;标签用于严重性、来源和状态。 - **通过调用 `/compare-findings` 进行去重**,这样队友提交的相同 bug 会显示为重复项,并带有你已经在 AI 工具中看到的相同 `match_signals`。 仪表板的 `/all-findings` 页面会将 GitHub Issues 与手动和 AI 工具发现并排内联显示。展开一行可以查看 issue 链接、状态、最后几条评论以及(对于你的本地发现)同步的 `github.issue_number`。侧边栏在 LiveStatus 下方会增加第二个指示器,显示上次运行 `/sync-github` 的时间。 评论保留在 GitHub 上——Hex 从不发布、编辑或删除评论。审计员在 GitHub 内部进行讨论。 ### 阶段 4 — 使用 AI 进行二次审计 在你手动审查完成后,运行外部 AI 审计代理作为第二遍检查,以捕获你可能遗漏的内容。 **4.1 — 运行 AI 分析** ``` /run-ai-analysis ``` 此编排技能: 1. 显示一个复选框式的工具选择提示(选择要运行哪些 AI 工具——solidity-auditor、sc-auditor、plamen、auditagent)。 2. 对每个工具运行预检检查——验证环境变量、技能安装和系统依赖项,然后显示一个缺失项摘要表。对于 plamen 和 auditagent,如果未找到则提供自动安装选项。 3. 先运行 auditagent(来自 Nethermind 的基于云的异步扫描器——触发一次 30-60 分钟的扫描,在后续运行中收集结果)。 4. **在编排器上下文中按顺序** 运行非 plamen 技能(solidity-auditor、sc-auditor),并带有类型感知的指令(技能文件工具遵循其 `SKILL.md` 方法论;MCP 服务器工具发现并使用其 MCP 工具)。 5. 在非 plamen 工具完成后运行 plamen。 6. 将所有审计发现标准化并批量写入 `tracking.json`,状态为 `status: "unverified"`。 7. 自动运行 `/compare-findings` 并打印覆盖差距摘要。 如果在你完成其他工具时,auditagent 的云扫描仍在运行,请在另一个终端中保持运行 `hex ai-status --watch`——它每 5 分钟轮询一次,并在扫描完成时通知你,这样审计发现就不会被遗忘。 **4.2 — 比较审计发现** ``` /compare-findings ``` Claude 在语义上将每个 AI 审计发现与你自己的进行比较。它根据受影响的合约、函数、根本原因和攻击向量进行匹配——而不是字符串匹配。输出: - **重复项** — 与现有项匹配的 AI 审计发现,带有置信度 *和* `match_signals`(合约/函数/根本原因/攻击向量中哪些一致)以及一行推理。如果你不同意合并,可以确切看到是哪个信号起了决定性作用。 - **新颖项** — 你没有发现的全新审计发现,按可能的严重性排序。 - **拒绝项** — 超出范围或明显无效,并附有解释。 结果保存在 `.hex/comparison.json` 中,主跟踪表更新。 **4.3 — 验证新审计发现** 对于 AI 代理提出的每个新颖审计发现: ``` /validate-ai-finding for AI-N001 ``` Claude 会独立追踪代码中描述的攻击路径,并判断其是否有效。如果有效,它会生成 PoC 并撰写审计发现。如果无效,它会解释原因。如果不确定,它会标记出需要你调查的具体问题。 **4.4 — 所有审计发现** 在 `/all-findings` 上查看完整情况: - 所有审计发现(你的和来自 AI 代理的)在一个可筛选的表格中。 - 状态:已验证、待验证、已拒绝。 - PoC 状态:通过、失败、未开始。 - 重复项映射:哪些 AI 审计发现对应你的哪些发现,并展开显示 `match_signals`。 - 摘要统计:按状态统计的总发现数。 - 可展开的行,包含完整的发现详情。 ## Claude Code 技能参考 每个技能都有一个推荐模型——在调用推荐使用 Opus 的技能之前,请切换你的 Claude Code 模型。 | 技能 | 阶段 | 推荐模型 | 功能描述 | |------|------|----------|----------| | `init-audit` | 设置 | Sonnet | 运行初始化 + 分析工具(尽可能并行) | | `generate-overview` | 1.1 | Sonnet | 撰写 2-3 段协议概览 | | `generate-diagram` | 1.3 | Sonnet | 创建 Mermaid 系统架构图 | | `generate-flows` | 1.4 | Opus | 按用户类型和价值路径创建 Mermaid 流程图 | | `identify-invariants` | 1.5 | Opus | 三遍式不变式识别(文档 → 代码 → 比较) | | `check-spec-conformance` | 1.6 | Opus | 验证代码是否符合文档、NatSpec、接口、ERC/EIP | | `generate-poc` | 3.1 | Opus | 验证问题推理,然后编写并运行 PoC 测试 | | `write-finding` | 3.2 | Sonnet | 将结构化审计发现写入 JSON,建议语气为保守的 `考虑...` | | `conformance-to-findings` | 3.3 | Sonnet | 批量将规范符合性偏差转换为已验证的审计发现 | | `run-ai-analysis` | 4.1 | Opus | 编排所有已配置的 AI 审计工具并进行预检 | | `compare-findings` | 4.2 | Sonnet | 对你的审计发现与 AI 代理审计发现进行语义去重(带 `match_signals`) | | `validate-ai-finding` | 4.3 | Opus | 交互式验证新的 AI 审计发现(PoC 与理性分析,严重性调整) | | `sync-github` | 3.5 | Sonnet | 在本地审计发现和 GitHub Issues 之间双向同步——拉取队友问题,推送你已验证的审计发现,然后运行 `/compare-findings` | ### 技能存放位置 技能使用 Claude Code 的原生技能格式,存储在 `.claude/skills//SKILL.md` 中。当你运行 `hex claude` 或 `hex init` 时,它们会被复制到那里。 ``` .claude/skills/ ├── init-audit/SKILL.md ├── generate-overview/SKILL.md ├── generate-diagram/SKILL.md ├── generate-flows/SKILL.md ├── identify-invariants/SKILL.md ├── check-spec-conformance/SKILL.md ├── generate-poc/SKILL.md ├── write-finding/SKILL.md ├── conformance-to-findings/SKILL.md ├── run-ai-analysis/SKILL.md ├── compare-findings/SKILL.md └── validate-ai-finding/SKILL.md ``` **Claude Code 如何找到它们:** Claude Code 会自动发现 `.claude/skills/` 中的技能。它们会显示为原生斜杠命令——在 Claude Code 中输入 `/` 即可看到它们。 **为项目自定义技能:** 你可以就地编辑任何 `SKILL.md` 文件。例如,向不变式识别技能添加特定于项目的提示,或调整 PoC 惯例以匹配不寻常的测试设置。 **升级 Hex 后更新技能:** ``` hex update-skills # re-copy and overwrite all skill files from the new package version hex update-skills --keep-custom # skip existing skill files to preserve your modifications ``` 默认情况下,`update-skills` 会用最新版本覆盖现有技能。使用 `--keep-custom` 可以保留你所做的任何项目特定修改。 ### 技能看到的内容 - 代码库统计数据(nSLOC、ERC、依赖项)。 - 依赖关系图(哪些合约交互)。 - 访问控制图(谁能调用什么,带置信度级别)。 - 状态变量清单(哪些是可变的,哪些是未使用的,谁读/写,以及任何存储槽冲突)。 - 外部调用面(信任级别、返回值检查、重入保护)。 - 任何先前生成的输出(概览、不变式、规范符合性结果)。 每层技能都建立在所有前序层之上。在工作流程中越晚调用技能,其上下文越丰富。 ## 仪表板页面 仪表板在本地 `http://localhost:3000` 运行,并在输出文件更改时自动刷新。侧边栏页脚的实时“更新于 N 前”指示器告诉你监视器已连接。 | 页面 | URL | 显示内容 | |------|-----|----------| | 主页 | `/` | 项目信息、AI 概览、关键统计数据 | | 进度 | `/progress` | 加权进度条(70% nSLOC 已审查,20% 审计步骤,10% 审计发现分类)、合约审查清单、审计步骤指标 | | 统计数据 | `/stats` | 按合约的指标、测试覆盖率、依赖项、ERC | | 系统图 | `/diagram` | 带缩放/平移功能的 Mermaid 架构图 | | 流程图 | `/flows` | 带缩放/平移功能的 Mermaid 流程图 | | 访问控制 | `/access` | 角色 → 函数矩阵,带“仅显示未保护”和“显示推断/未知修饰符”开关 | | 状态变量 | `/state` | 变量清单,带读写跟踪和存储冲突警告 | | 外部调用 | `/calls` | 调用面,带可筛选的信任级别列 | | 函数 | `/functions` | 聚合函数视图,带状态/调用交叉引用 | | 不变式 | `/invariants` | 已识别的不变式及文档/代码差异 | | 规范符合性 | `/conformance` | 代码与规范检查结果,偏差优先显示,带可点击的规范链接 | | AI 报告 | `/ai-reports` | 按工具的 AI 审计结果,带共识徽章 | | 报告 | `/report` | 已验证的审计发现,带一键复制(HackMD Markdown 格式) | | 所有审计发现 | `/all-findings` | 所有审计发现 + 跟踪数据的合并表格,带筛选器;展开一行查看 `match_signals` 和任何 GitHub 讨论线程 | ## 理解置信度级别 每个分析输出都包含置信度元数据,以便你知道可以信任它多少。 **高置信度** — 源自编译器工件或成熟的静态分析工具(solc AST、Slither 检测器、编译器存储布局)。视为基本事实。 **中等置信度** — 源自 AST 模式匹配或已知库检测(例如,识别 OpenZeppelin Ownable)。对于标准模式可靠,但可能遗漏自定义实现。 **低置信度** — 源自命名启发式(例如,从名为 `onlyKeeper` 的修饰符推断“守护者”角色)。作为起点使用,然后手动验证。 访问控制角色还带有一个 `kind` 字段(`access_control`、`state_check`、`guard` 或 `unknown`)和一个 `is_likely_access_control` 标志。`/access` 默认隐藏分类为 `unknown` 的角色,并提供一个“显示推断/未知修饰符”开关,这样 `onlyDuringPause` 就不会仅因其修饰符名称以 `only` 开头而冒充权限角色。 从编译器存储布局检测到的存储槽冲突和继承布局差异,在 `state-vars.json` 中标记为 `Critical` 严重性,并汇总到 `attack-surface.json`。 在仪表板上,置信度显示为彩色徽章。你可以按置信度级别筛选任何分析页面,以快速找到需要你关注的条目。 ## 输出目录结构 所有 Hex 输出都位于项目内的单个目录中(默认:`.hex/`,可在 `config.json` 中配置)。 ``` .hex/ ├── config.json # Audit scope, settings ├── overview.md # AI-generated protocol overview ├── stats.json # Codebase statistics and test coverage ├── deps.json # Contract dependency graph ├── access-control.json # Role → function mapping (with `kind`, `is_likely_access_control`) ├── state-vars.json # State variable inventory + storage_collisions ├── external-calls.json # External call surface ├── patterns.json # Security pattern flags (ORACLE, TEMPORAL, etc.) ├── constraints.json # Setter validation (AST-aware) and event analysis ├── attack-surface.json # Attack surface summary ├── invariants.md # Identified invariants ├── spec-conformance.json # Spec vs code conformance checks (with spec_location.url for ERCs) ├── spec-conformance.md # Rendered conformance report ├── diagrams/ # All Mermaid diagram files │ ├── diagram.mmd # System architecture diagram │ └── flow-*.mmd # Flow charts (one per flow) ├── progress.json # Audit progress tracking (contract review state) ├── findings.json # Canonical finding data ├── validations/ # Issue validation memos │ ├── A001_memo.md │ └── A003_memo.md ├── ai-results/ # AI audit tool outputs (per-tool subdirectories) │ ├── solidity-auditor/ │ │ ├── raw-output.md │ │ ├── findings.json │ │ └── metadata.json │ ├── sc-auditor/ │ │ ├── raw-output.md │ │ ├── findings.json │ │ └── metadata.json │ ├── plamen/ │ │ ├── raw-output.md │ │ ├── findings.json │ │ ├── metadata.json │ │ └── _scope.txt # Generated scope file for plamen │ ├── auditagent/ │ │ ├── raw-output.md │ │ ├── findings.json │ │ └── metadata.json # Includes scan_id │ └── / │ ├── raw-output.md │ ├── findings.json │ └── metadata.json ├── ai-status.json # AI tool run status tracker (used by `hex ai-status`) ├── comparison.json # Finding dedup results (with match_signals) └── tracking.json # Master tracking table ``` 你可以在运行初始化之前,在 `config.json` 中设置 `settings.output_dir` 来更改输出目录。 ## 范围与完整项目访问权限 当你初始化审计时,你指定哪些文件在范围内。这是你负责审计的合约集——所有分析工具都专注于这些文件。 但整个项目仍然可访问。Claude Code 可以读取范围外的合约,运行现有测试套件,编译所有内容,并在编写 PoC 时利用项目的测试基础设施。范围只是告诉工具将输出重点放在哪里。 ``` # 范围内:这些是你正在审计的内容 src/core/Vault.sol, src/core/Strategy.sol, src/libraries/Math.sol # 仍然可访问:tests, mocks, deploy scripts, dependencies, interfaces # Claude Code 可以读取所有内容,forge 可以编译并针对它们运行测试 ``` ## CLI 参考 你通常不会直接调用这些命令——`/init-audit` 和其他技能会调用。但它们是底层的确定性引擎,当你想重新运行单个分析、编写脚本或进行故障排除时很有用。 所有命令都在项目目录中运行(或使用 `--project /path/to/project`)。 | 命令 | 功能描述 | |------|----------| | `hex doctor` | 预检:node, forge, slither, solc, Claude Code, 输出目录可写性, 项目配置 | | `hex claude` | 将技能复制到 `.claude/skills/` 供 Claude Code 发现 | | `hex init` | 初始化审计配置——范围、提交哈希、区块链、文档 URL(由 `/init-audit` 调用) | | `hex analyze` | 并行运行所有分析命令(stats, deps, access, state, calls, patterns, constraints),然后运行 surface | | `hex stats` | 生成代码库统计和测试覆盖率 | | `hex deps` | 构建合约依赖关系图 | | `hex access` | 提取访问控制映射(角色 → 函数,包括继承的) | | `hex state` | 生成状态变量清单 + 存储冲突检测 | | `hex calls` | 映射外部调用面(基于 AST,Slither 可选) | | `hex patterns` | 检测安全相关模式(ORACLE, FLASH_LOAN, TEMPORAL 等) | | `hex constraints` | 提取设置器验证状态(AST 感知,跟踪辅助函数和修饰符) | | `hex surface` | 构建交叉引用所有分析的攻击面摘要 | | `hex context` | 从代码库组装优化的 AI 上下文 | | `hex context --target Vault` | 特定合约及其依赖项的上下文 | | `hex context --estimate` | 显示 token 数量而不生成上下文 | | `hex dashboard` | 启动本地仪表板并在浏览器中打开 | | `hex dashboard --port 8080` | 在自定义端口上启动仪表板 | | `hex update-skills` | 从包中重新复制技能文件(默认覆盖) | | `hex update-skills --keep-custom` | 跳过现有技能文件而不是覆盖 | | `hex ai-status` | 显示异步 AI 工具的最新状态(当前为 `auditagent`) | | `hex ai-status --watch` | 每 5 分钟轮询一次,直到所有待处理扫描完成(auditagent 通常需要 30-60 分钟) |
标签:AI代码助手, MITM代理, PoC生成, SOC Prime, Solidity, URL发现, 云安全监控, 代码分析, 凭证管理, 区块链安全, 发现报告, 合约分析, 安全检测, 对称加密, 工具包, 开发工具, 性能指标, 技术栈, 智能合约审计, 智能合约开发, 本地仪表板, 架构图, 自动化审计, 自动化攻击, 静态分析