Skip to content

Releases: totekuh/ghidra-decomp

v0.2.0 — Raw binary support

22 Apr 21:06

Choose a tag to compare

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 to grep to filter
  • --entry — mark an address as the program entry, disassemble from it, create an entry function before analysis runs

Behavior changes

  • Analysis pipeline reordered to open → rebase → mark entry → analyze → export. Previously --base-addr applied 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 found and hints at --language / --list-languages.

Example — raw x86 firmware

ghidra-decomp ./firmware.mod \
  --language x86:LE:32:default \
  --compiler gcc \
  --base-addr 0x00031000 \
  --entry   0x00031000

v0.1.0

15 Mar 16:42

Choose a tag to compare

Initial release

Added

  • One .c file per function with metadata header comments (name, address, size, calling convention, params)
  • Combined all_functions.c for full-text search
  • JSON indexes: types, functions, callgraph, strings, imports, exports, symbols, sections, metadata
  • --base-addr option to rebase the binary before export
  • --timeout option 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