
关于
启用超细粒度的逐行代码分析,在漏洞或 Bug 发现之前构建深度架构上下文。
name: audit-context-building description: 启用超细粒度、逐行代码分析,在漏洞或 Bug 发现之前建立深度架构上下文。 risk: unknown source: community
深度上下文构建技能(超细粒度纯上下文模式)
1. 目的
此技能管控 Claude 在审计上下文构建阶段的思考方式。
激活后,Claude 将:
- 默认执行逐行/逐块代码分析。
- 在微观层面应用第一性原理、5 个为什么和5 个如何。
- 持续将洞察 → 函数 → 模块 → 整个系统进行关联。
- 维护一个稳定、显式的心智模型,随新证据演进。
- 识别不变量、假设、流程和推理风险。
此技能定义了结构化分析格式(见下方示例:函数微观分析),并在漏洞搜索阶段之前运行。
适用场景
适用于:
- 在 Bug 或漏洞发现之前需要深度理解。
- 你需要自底向上的理解而非高层猜测。
- 减少幻觉、矛盾和上下文丢失至关重要。
- 为安全审计、架构审查或威胁建模做准备。
不适用于:
- 漏洞发现
- 修复建议
- 利用推理
- 严重性/影响评级
2. 此技能的行为方式
激活后,Claude 将:
- 默认对每个块和行进行超细粒度分析。
- 应用微观层面的第一性原理、5 个为什么和 5 个如何。
- 构建并完善持久的全局心智模型。
- 当早期假设被推翻时更新("之前我认为 X;现在是 Y。")。
- 定期锚定摘要以维护稳定上下文。
- 避免推测;需要时明确表达不确定性。
目标:深度、准确的理解,而非结论。
合理化借口(不要跳过)
| 合理化借口 | 为什么是错的 | 要求的行动 | |-----------------|----------------|-----------------| | "我大概理解了" | 大概的理解会遗漏边界情况 | 需要逐行分析 | | "这个函数很简单" | 简单函数组合成复杂 Bug | 仍然应用 5 个为什么 | | "我会记住这个不变量" | 你不会。上下文会退化。 | 明确写下来 | | "外部调用可能没问题" | 外部 = 对抗性的,直到证明不是 | 跳入代码或建模为敌对 | | "我可以跳过这个辅助函数" | 辅助函数包含会传播的假设 | 追踪完整调用链 | | "这花太长时间了" | 仓促的上下文 = 之后幻觉出的漏洞 | 慢即是快 |
3. 阶段 1 — 初始定向(自底向上扫描)
在深度分析之前,Claude 执行最小映射:
- 识别主要模块/文件/合约。
- 记录明显的公共/外部入口点。
- 识别可能的参与者(用户、所有者、中继器、预言机、其他合约)。
- 识别重要的存储变量、字典、状态结构或单元。
- 构建初步结构,不假设行为。
这为详细分析建立锚点。
4. 阶段 2 — 超细粒度函数分析(默认模式)
每个非平凡函数都接受完整的微观分析。
5.1 每函数微观结构检查清单
对于每个函数:
-
目的
- 函数存在的原因及其在系统中的角色。
-
输入与假设
- 参数和隐式输入(状态、发送者、环境)。
- 前置条件和约束。
-
输出与效果
- 返回值。
- 状态/存储写入。
- 事件/消息。
- 外部交互。
-
逐块/逐行分析 对于每个逻辑块:
- 它做什么。
- 为什么出现在这里(排序逻辑)。
- 它依赖什么假设。
- 它建立或维护什么不变量。
- 后续逻辑依赖它什么。
对每个块应用:
- 第一性原理
- 5 个为什么
- 5 个如何
5.2 跨函数与外部流分析
遇到调用时,跨边界继续相同的微观优先分析。
内部调用
- 立即跳入被调用者。
- 对相关代码执行逐块分析。
- 追踪数据、假设和不变量的流动:调用者 → 被调用者 → 返回 → 调用者。
- 注意被调用者逻辑在此特定调用上下文中是否表现不同。
外部调用 — 两种情况
情况 A — 对代码库中存在代码的合约的外部调用 视为内部调用:
- 跳入目标合约/函数。
- 继续逐块微观分析。
- 无缝传播不变量和假设。
- 基于实际代码考虑边界情况,而非黑盒猜测。
情况 B — 没有可用代码的外部调用(真正的外部/黑盒) 作为对抗性分析:
- 描述发送的载荷/值/gas 或参数。
- 识别关于目标的假设。
- 考虑所有结果:回滚、不正确/奇怪的返回值、意外行为。
兼容工具
Claude CodeCursor
标签
AI与机器学习