About headless-ghidra-baseline
A skill for the P1 phase of a headless Ghidra analysis pipeline, intended for reverse-engineering workflows that need a reproducible baseline and runtime record. It uses ghidra-agent-cli to import and analyze targets, then exports YAML metadata and runtime and hotpath records.
Key features
- 01Run Ghidra import and auto-analysis
- 02Export baseline YAML metadata
- 03Capture and validate runtime records
- 04Record and validate hotpath call chains
- 05Check the P1 phase gate
Use cases
- 01Produce baseline metadata for later phases
- 02Record runtime availability or unavailability
- 03Provide an initial hotpath call chain for later analysis
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ bytelandtechnology/ headless-ghidra --skill headless-ghidra-baselineAfter installing, type/headless-ghidra-baselinein Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
README.ja-JP.mdREADME.mdREADME.zh-CN.mdDetails
From the project READMEHeadless Ghidra Baseline+Runtime — P1
P1 runs the initial Ghidra import and auto-analysis, exports baseline YAML metadata, makes the target reproducibly runnable, and records runtime/hotpath YAML that later phases consume.
Required ghidra-agent-cli Commands
ghidra-agent-cli ghidra importghidra-agent-cli ghidra auto-analyzeghidra-agent-cli ghidra export-baselineghidra-agent-cli frida device-listghidra-agent-cli frida device-attachghidra-agent-cli frida io-captureghidra-agent-cli frida traceghidra-agent-cli runtime recordghidra-agent-cli runtime validateghidra-agent-cli hotpath addghidra-agent-cli hotpath validateghidra-agent-cli gate check --phase P1
The shell wrappers and Java Ghidra scripts remain the backend implementation for these commands. The workflow contract is the CLI surface plus the YAML outputs below.
Inputs
artifacts/<target-id>/pipeline-state.yamlartifacts/<target-id>/scope.yamltargets/<target-id>/ghidra-projects/
Outputs
artifacts/<target-id>/baseline/functions.yamlartifacts/<target-id>/baseline/callgraph.yamlartifacts/<target-id>/baseline/types.yamlartifacts/<target-id>/baseline/vtables.yamlartifacts/<target-id>/baseline/constants.yamlartifacts/<target-id>/baseline/strings.yamlartifacts/<target-id>/baseline/imports.yamlartifacts/<target-id>/runtime/run-manifest.yamlartifacts/<target-id>/runtime/run-records/*.yamlartifacts/<target-id>/runtime/fixtures/**artifacts/<target-id>/runtime/hotpaths/call-chain.yamlartifacts/<target-id>/runtime/project/**when a library harness is needed
Exit Expectations
- All required baseline YAML files exist and are readable.
- Runtime availability or unavailability is recorded with reproducible executable args or a C++/CMake library harness.
- The P1 hotpath call-chain is available as the initial P3/P4 priority source.
- No P4 decompilation artifacts are created in this phase.
Constraints
- Do not decompile function bodies in P1.
- Do not apply renames or signatures in P1.
- Do not modify
pipeline-state.yamlexcept through sanctioned state changes. - Do not bypass
ghidra-agent-clifor import, analysis, export, or supported gate checks. - Do not create or run a new Ghidra script if the CLI lacks a capability; pause and ask the user first.
Next Step
- P1 gate passes →
headless-ghidra-evidence