mrkeyoor.com_
Tue 01 Sept 17:43 UTC
Dev Toolsevaluationupdated 28 Aug 2026

ghidra review

Ghidra is a desktop and headless reverse-engineering toolkit for taking apart compiled programs. It combines disassembly, decompilation, graphing, scripting, and extension APIs so analysts can understand binaries without source code.

+1,034 / 3dstars / 7d
Verdict

Our Ghidra install step took 29 seconds, but both the 12-second build and 10-second test run stopped because the local Maven repository was missing. Use the official archive if you need the analyst tool; use the source tree when you are prepared to follow its separate dependency-fetch and development setup. Ghidra remains an easy recommendation for serious multi-architecture reverse engineering, but it is a poor choice for someone wanting a tiny disassembler or a casual source build.

We ran it

Lab card: what happened when we ran ghidraScreenshot of ghidra (www.nsa.gov/ghidra)
Install✓ · 29s
Build✗ · 12s
Tests✗ · 10sran, no count parsed
Repo18438 files~3,167,872 lines of source · 312.9 MB · 3 CI workflows

Answers from our run

Does ghidra build from source?

Dependencies installed in 29 seconds, and the build failed. We cloned commit 382b26c into a clean Debian container with 3 CPUs and no project-specific setup.

Do ghidra's tests pass?

The test command failed in our container, and its output did not report a pass or fail count.

Who should not use ghidra?

Developers seeking a quick source build from a plain JDK checkout: the README requires a separate dependency-fetch step, JDK 25, Gradle, Python, and native compilers, and our build stopped before compilation.

What are the alternatives to ghidra?

Cutter, radare2, RetDec. Our Ghidra install step took 29 seconds, but both the 12-second build and 10-second test run stopped because the local Maven repository was missing.

Setup2/5Official archive is simple; our source build missed the local repo
Docs4/5Clear release and source paths with separate developer guides
Community5/573,117 stars and issue activity through August 2026
Maturity5/5Current 12.1.3 release with desktop and headless workflows

Discussed on

  1. hnGhidra by NSA433 points
  2. hnNSA Ghidra software reverse engineering framework214 points
  3. hnDebugger Ghidra Class199 points
  4. hnGhidra 11.0 Released81 points
  5. hnGhidra source code officially released67 points

Who it’s for

Malware analysts who need an extensible workbench for inspecting unfamiliar executables.
Vulnerability researchers working across several processor families and file formats.
Reverse engineers who want both an interactive desktop and automated analysis.
Teams willing to learn Ghidra's project model and maintain Java or Python scripts.

Who it’s NOT for

Developers seeking a quick source build from a plain JDK checkout: the README requires a separate dependency-fetch step, JDK 25, Gradle, Python, and native compilers, and our build stopped before compilation.
Analysts who plan to open hostile files without checking the project's security advisories: the README explicitly warns that some Ghidra versions have known vulnerabilities.
Extension authors who refuse Eclipse or a fully built installation: the documented development path is customized around Eclipse, and both editor integrations require a built Ghidra release.
People who only need a small command-line disassembler: the checkout alone was 312.9 MB and contained 18,438 files in our measurement.

Setup reality

Our sandbox install step succeeded in 29 seconds, but the build failed with exit 1 after 12 seconds. The tests also failed with exit 1 after 10 seconds. Both logs said Ghidra could not find the local Maven repository and asked for a flatRepo directory or ghidra.repos.config file.

The README's source path requires JDK 25, Gradle 9.1.0 or the wrapper, Python 3.9 through 3.14, and platform compilers. It tells builders to run the dependency-fetching Gradle task before buildGhidra. No credentials or secrets were part of our run.

Users who want the packaged application get a shorter route: install 64-bit JDK 21, download the release archive rather than GitHub's source archive, extract it into a new directory, and launch it. Source development expects a completed build and is tailored to Eclipse.

Ghidra combines a desktop analyst tool with headless automation

Ghidra opens compiled programs and helps an analyst work backward toward their behavior. Its main tools cover disassembly, decompilation, assembly, graphs, and scripting. The same framework can run interactively or in automated mode, which matters when a team wants one analysis model for hands-on malware work and repeatable batch jobs. Extensions and scripts can be written in Java or Python, so the application is more adaptable than a fixed decompiler.

That breadth comes with weight. Our checkout at commit 382b26c contained 18,438 files, about 3,167,872 lines of source, and occupied 312.9 MB before a successful build. This is a long-lived application platform with many processors, formats, features, and development tools in one tree. A developer who needs to inspect one binary may be productive faster with a narrower command-line tool. A lab standardizing several reverse-engineering workflows has a better reason to absorb Ghidra's model.

The official archive avoids the source-build toolchain

The README gives ordinary users a short installation path. Install a 64-bit JDK 21, download the named Ghidra release archive, extract it into a fresh directory, and run ghidraRun. The warning about the asset matters: GitHub's automatically generated source archives are not the runnable package. PyGhidra has its own launcher in the support directory for analysts who want Python access around a packaged installation.

Building the repository is a different job. The current instructions call for JDK 25, Gradle 9.1.0 or its wrapper, Python 3.9 through 3.14, plus GCC or Clang and make on Linux and macOS. Windows needs Visual Studio or the Microsoft C++ Build Tools with the listed SDK and ATL components. Before buildGhidra, the builder must run a Gradle task that downloads additional dependencies into the source tree. That step is part of the documented build, not optional housekeeping.

What happened when we ran it

Our sandbox install step succeeded in 29 seconds. The build then exited with code 1 after 12 seconds. Its final message said it could not find the local Maven repository and instructed us to create the flatRepo directory or a ghidra.repos.config file. The log did not report a Java compilation error, native compiler error, or failing module, so the defensible conclusion is limited: this checkout did not reach a working build in our stated environment.

The test command failed the same way after 10 seconds, also with exit code 1 and the same missing-local-repository message. It did not produce a test count, and we will not treat a setup failure as a test result. The repository scan found 3 CI workflow files, no Dockerfile, and no top-level tests directory. Those signals describe the checked-out commit, while the failed commands show that the local dependency repository is a real prerequisite for contributors.

Our run used a fresh unprivileged container with 3 CPUs, 10 GB of RAM, JDK 21, and no secrets. Ghidra's README currently distinguishes that JDK 21 release runtime from the JDK 25 source-build requirement. Someone evaluating the application should start with the official release. Someone changing Ghidra itself should budget for the documented dependency-fetch step, platform compilers, and a substantially larger setup than extracting a zip.

Eclipse is the supported path for changing Ghidra itself

Script and extension work can begin from an existing built release. Ghidra ships an Eclipse plugin, and its Script Manager can create a Visual Studio Code module project. Both integrations depend on a fully built Ghidra installation, which closes off the appealing shortcut of cloning the repository and immediately writing an extension against loose sources.

Core development is even more opinionated. The project recommends Eclipse because its development process is customized for that IDE. Preparing the workspace involves Gradle tasks for development metadata, Eclipse projects, and native components, followed by importing nested projects. That is reasonable for a 3.1-million-line codebase, but it creates a clear boundary: Ghidra is friendly to analysts extending a release and much less casual for newcomers changing the platform.

Security advisories belong in the binary-analysis workflow

The README opens with an explicit warning that certain Ghidra versions contain known security vulnerabilities and directs users to the advisory list. That deserves operational weight because the product is used to inspect unknown or malicious files. Teams should select a current release, read advisories before deployment, and isolate analysis work according to their own threat model rather than assuming the desktop application is a harmless file viewer.

The August 18, 2026 release was Ghidra 12.1.3, and the repository was pushed again on August 25. GitHub showed 73,117 stars and 1,923 combined open issues and pull requests when fetched. Recent issue and pull-request updates continued through August 28, including headless scripting and decompiler work. The combined count is not a count of bugs, but the dated activity and recent release show a maintained project with a very large user and contributor surface.

Ghidra is worth learning when analysis spans formats and teams

The strongest reason to choose Ghidra is continuity. One analyst can inspect code in the GUI, another can automate the same framework, and a team can add scripts or extensions instead of moving every unusual job into a separate tool. Processor and executable-format breadth also reduces the chance that a new target forces an immediate platform switch.

The cost is visible before analysis begins. Our 312.9 MB checkout did not build or reach tests because the local dependency repository was absent, while the official release path asks only for JDK 21 and the correct archive. Start there unless modifying Ghidra is the actual assignment. For recurring malware research, vulnerability analysis, or mixed-architecture work, the learning curve buys a shared workbench. For occasional disassembly, Cutter or radare2 may demand less ceremony.

Alternatives

ProjectWhat it isPick it when
CutterA graphical reverse-engineering interface built on the Rizin framework.pick this instead when you want a smaller GUI centered on Rizin's command and analysis model.
radare2 gh↗A command-line-first reverse-engineering framework with scripting and visual modes.pick this instead when terminal workflows and composable commands matter more than Ghidra's desktop suite.
RetDecA retargetable machine-code decompiler designed for automated analysis pipelines.pick this instead when decompilation in a scripted pipeline is the main requirement and a full analyst desktop is excess.

What people are saying

  1. [github-trending] NationalSecurityAgency/ghidra

Sources

  1. Ghidra README
  2. Ghidra repository facts
  3. Ghidra 12.1.3 release
  4. Ghidra security advisories

More dev tools reviews

workmux · v2rayNG · SecLists · hashcat · eslint · fastfetch · the whole board →