关于 headless-ghidra-batch-decompile
headless-ghidra-batch-decompile 规定了通过 ghidra-agent-cli 处理选定函数批次的 CLI 工作流,包括 Ghidra 反编译与替换产物记录。它面向执行 P4 阶段的用户,并限定批次范围及来源记录要求。
主要功能
- 01应用并验证重命名
- 02应用并验证函数签名
- 03使用 Ghidra 反编译
- 04记录函数级产物
- 05验证替换并检查 P4 门禁
适用场景
- 01反编译当前函数批次
- 02应用补充的函数元数据
- 03替换前记录测试夹具
- 04检查 P4 批次是否就绪
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ bytelandtechnology/ headless-ghidra --skill headless-ghidra-batch-decompile安装后在 Claude Code 中输入/headless-ghidra-batch-decompile确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.ja-JP.mdREADME.mdREADME.zh-CN.md详细介绍
无头 Ghidra 函数替换 — P4
P4 使用当前选定批次,应用补充后的元数据,运行已批准的 Ghidra 反编译流程,并记录每个函数的替换产物。
必需的 ghidra-agent-cli 命令
ghidra-agent-cli ghidra apply-renamesghidra-agent-cli ghidra verify-renamesghidra-agent-cli ghidra apply-signaturesghidra-agent-cli ghidra verify-signaturesghidra-agent-cli ghidra decompileghidra-agent-cli ghidra rebuild-projectghidra-agent-cli substitute addghidra-agent-cli substitute validateghidra-agent-cli gate check --phase P4
CLI 在内部处理锁定和 Ghidra 调用。
面向用户的工作流接口是 CLI 和下方的 YAML 输出。
当 substitution/next-batch.yaml 就绪后,只处理具有明确 P3 名称和签名的函数。
输入
artifacts/<target-id>/baseline/*.yamlartifacts/<target-id>/runtime/fixtures/artifacts/<target-id>/runtime/hotpaths/call-chain.yamlartifacts/<target-id>/third-party/identified.yamlartifacts/<target-id>/third-party/pristine/<library>@<version>/artifacts/<target-id>/third-party/compat/<library>@<version>/(如有需要)artifacts/<target-id>/metadata/renames.yamlartifacts/<target-id>/metadata/signatures.yamlartifacts/<target-id>/substitution/next-batch.yaml
输出
artifacts/<target-id>/substitution/functions/<fn_id>/capture.yamlartifacts/<target-id>/substitution/functions/<fn_id>/substitution.yaml- 工作流记录的其他逐函数 YAML,例如 blocked、injected 或 follow-up 记录
退出预期
- 在编写替代实现之前,先记录函数级 I/O 夹具和 capture YAML。
- 每个已替换函数都具有包含来源信息、夹具和状态的
substitution.yaml。 - P4 gate 材料可在
substitution/functions/<fn_id>/下找到。
约束
- 仅使用 Ghidra 作为反编译后端。
- 当后端要求时,在修改或读取共享 Ghidra 状态之前,先获取 Ghidra 队列/锁。
- 不要修改活动批次之外函数的产物。
- 对于受支持的应用/验证/反编译、替换、夹具或 gate 操作,不要绕过
ghidra-agent-cli。 - 不要修改 pristine 第三方源代码;将本地适配改动放在
third-party/compat/下。 - 如果 CLI 缺少某项功能,不要创建或运行新的 Ghidra 脚本;请暂停并先询问用户。
下一步
- 批次通过 P4 gate → 返回 P3 进行新一轮处理,或结束。
评论
支持 Markdown