GhidraDec 1.0 is the first major release since the old 0.4 baseline. The project has been substantially modernized around current Ghidra and IDA releases, with a new CMake build, packaged release artifacts, broader SDK compatibility, and a much more robust Ghidra decompiler bridge.
Highlights
- Updated the primary target to Ghidra 12.1.x and IDA SDK 9.3.
- Added manifest-driven build support for IDA SDKs from 6.8 through 9.3, plus a moving
latesttarget for the public Hex-Rays SDK branch. - Added CI/release packaging for IDA 9.3 by default.
- Added local release-backfill tooling so older IDA SDK builds can be generated from licensed local SDK archives and attached permanently to this GitHub Release.
- Reworked dependency handling so Ghidra decompiler sources, RetDec, and jsoncpp are fetched/extracted into build-local dependency trees.
- Updated RetDec to v5.0 and jsoncpp to v1.9.8.
- Added project logo/icon assets and an IDA plugin icon.
Decompiler Improvements
- Updated the Ghidra decompiler bridge for the current 12.1 protocol.
- Added handling for newer packed decompiler query elements and additional protocol commands.
- Improved mapped-symbol lookup so IDA names are preserved instead of falling back to synthetic
func_0x...names. - Improved parameter-identification handling and IDA database update behavior.
- Improved import handling so decompile-all runs survive imports gracefully.
- Improved switch/control-flow handling for newer Ghidra output.
- Expanded processor/language coverage across x86, ARM, AArch64, MIPS, PowerPC, RISC-V, Java, and Dalvik where IDA and Ghidra support overlap.
UI And Configuration
- Separated user-facing messages from verbose trace diagnostics.
- Enabled IDB backup by default for normal builds before decompilation.
- Reworked configuration into focused display and decompiler behavior panels.
- Exposed more Ghidra decompiler options, including jump-table limits, max instructions, alias blocking, datatype splitting, namespace display, brace formatting, NaN handling, and prototype evaluation defaults.
- Improved viewer coloring, navigation, symbol interaction, output prologue generation, and graph/non-graph navigation.
- Fixed several GUI crashes around decompiled-output navigation and main-thread callback failures.
Build, Packaging, And Testing
- Replaced legacy root-folder build output with CMake-first builds under
build/matrix/ida-<version>. - Added Linux and macOS compile/package support.
- Added package targets that produce versioned plugin ZIPs for release upload.
- Added unattended IDA regression tooling for selective decompilation, decompile-all, per-function decompile-all, saved database reuse, and dangerous-failure detection.
- Added public corpus tooling around
angr/binariesfor broad architecture coverage.
Known Limitations
- Public GitHub-hosted CI is compile/package-only because IDA execution requires a licensed local or self-hosted installation.
- IDA-backed regression automation is currently Windows-first.
- A few public corpus entries remain quality-investigation targets rather than release blockers, notably MIPS switch-heavy jump-table recovery and tiny RISC-V relocatable branch/jump cases.
- The structured C graph view remains experimental.