Releases: totekuh/ghidra-decomp
Releases · totekuh/ghidra-decomp
v0.2.0 — Raw binary support
New flags
--language— force Ghidra language ID (e.g.x86:LE:32:default,ARM:LE:32:v7) for raw or unknown binaries--compiler— force compiler spec (requires--language)--list-languages— enumerate all available language IDs and their compiler specs; pipe togrepto filter--entry— mark an address as the program entry, disassemble from it, create anentryfunction before analysis runs
Behavior changes
- Analysis pipeline reordered to
open → rebase → mark entry → analyze → export. Previously--base-addrapplied after Ghidra's auto-analysis, so function boundaries, xrefs, and switch-table recovery were inferred at the wrong addresses. Auto-analysis is now triggered manually after the image base and entry point are set.
Error handling
- Clean error messages on load failure instead of JPype tracebacks. Specifically detects Ghidra's
No load spec foundand hints at--language/--list-languages.
Example — raw x86 firmware
ghidra-decomp ./firmware.mod \
--language x86:LE:32:default \
--compiler gcc \
--base-addr 0x00031000 \
--entry 0x00031000v0.1.0
Initial release
Added
- One
.cfile per function with metadata header comments (name, address, size, calling convention, params) - Combined
all_functions.cfor full-text search - JSON indexes: types, functions, callgraph, strings, imports, exports, symbols, sections, metadata
--base-addroption to rebase the binary before export--timeoutoption for per-function decompilation timeout (default 60s)- Automatic retry with escalated timeout for failed functions
- Assembly listing fallback for permanently failed functions
- Ghidra project cache cleanup after each run for atomic, reproducible results
- User-friendly error messages when Ghidra/pyghidra is not installed