mcpField
H
headless-ghidra-batch-decompile

headless-ghidra-batch-decompile

github.com/bytelandtechnology开发5114 次安装25 周前更新
代码仓库

关于 headless-ghidra-batch-decompile

headless-ghidra-batch-decompile 规定了通过 ghidra-agent-cli 处理选定函数批次的 CLI 工作流,包括 Ghidra 反编译与替换产物记录。它面向执行 P4 阶段的用户,并限定批次范围及来源记录要求。

主要功能

  1. 01应用并验证重命名
  2. 02应用并验证函数签名
  3. 03使用 Ghidra 反编译
  4. 04记录函数级产物
  5. 05验证替换并检查 P4 门禁

适用场景

  1. 01反编译当前函数批次
  2. 02应用补充的函数元数据
  3. 03替换前记录测试夹具
  4. 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.md
README.md
README.zh-CN.md

详细介绍

无头 Ghidra 函数替换 — P4

P4 使用当前选定批次,应用补充后的元数据,运行已批准的 Ghidra 反编译流程,并记录每个函数的替换产物。

必需的 ghidra-agent-cli 命令

  • ghidra-agent-cli ghidra apply-renames
  • ghidra-agent-cli ghidra verify-renames
  • ghidra-agent-cli ghidra apply-signatures
  • ghidra-agent-cli ghidra verify-signatures
  • ghidra-agent-cli ghidra decompile
  • ghidra-agent-cli ghidra rebuild-project
  • ghidra-agent-cli substitute add
  • ghidra-agent-cli substitute validate
  • ghidra-agent-cli gate check --phase P4

CLI 在内部处理锁定和 Ghidra 调用。 面向用户的工作流接口是 CLI 和下方的 YAML 输出。 当 substitution/next-batch.yaml 就绪后,只处理具有明确 P3 名称和签名的函数。

输入

  • artifacts/<target-id>/baseline/*.yaml
  • artifacts/<target-id>/runtime/fixtures/
  • artifacts/<target-id>/runtime/hotpaths/call-chain.yaml
  • artifacts/<target-id>/third-party/identified.yaml
  • artifacts/<target-id>/third-party/pristine/<library>@<version>/
  • artifacts/<target-id>/third-party/compat/<library>@<version>/(如有需要)
  • artifacts/<target-id>/metadata/renames.yaml
  • artifacts/<target-id>/metadata/signatures.yaml
  • artifacts/<target-id>/substitution/next-batch.yaml

输出

  • artifacts/<target-id>/substitution/functions/<fn_id>/capture.yaml
  • artifacts/<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