Ghidra

Ghidra — Free Download. Software Reverse Engineering

Ghidra is a Software Reverse Engineering (SRE) framework developed by the National Security Agency's Research Directorate. The tool makes it easier to analyze compiled code across multiple platforms and executable formats, integrating disassembly, decompilation, and graphing capabilities.

★★★★★
4.3(3 ratings)

Download Ghidra (Official links)
File size: 543 MB
The latest version of Ghidra is: 12.2
Operating system: Windows
Languages: English
Price: $0.00 USD

  • Disassembler. Transforms machine code or bytecode into readable assembly language. Displays the low-level instruction representation of the target processor architecture, allowing detailed examination of the execution flow.
  • Decompiler. Generates high-level pseudo-C code from assembly code. Recovers control structures and program logic, simplifying the understanding of complex functions without relying solely on assembly.
  • Code Browser. The main interface for inspecting and navigating the analyzed program. Presents synchronized views of the disassembly, decompilation, symbols, and references, organizing the information into configurable panels.
  • Project Manager. Organizes analysis work into containers that group binary files and metadata. Supports collaboration through shared repositories and keeps a change history for project items.
  • Analysis Engine. Automatically runs a series of analyzers that identify functions, text strings, cross-references, and data structures. Applies techniques to recover semantic information from the binary without debug symbols.
  • Graph Tool. Visualizes control flow diagrams and function call graphs. Represents the relationships between code blocks and modules, helping to identify routines and execution patterns.
  • Scripting System. Allows tasks to be automated with Python or Java scripts. Offers an extensive API for interacting with project elements, developing custom analyses, and integrating external tools.
  • Debugger. Runs and controls processes for dynamic analysis. Sets breakpoints, examines registers and memory, and traces instruction execution in real time, complementing static analysis.
  • Program Comparator. Performs binary diffing to detect differences between two versions of the same executable. Highlights changes in code, functions, and data, useful for patch analysis or malware variant research.
  • Patch Editor. Directly modifies the code of the analyzed binary. Applies patches to assembly instructions or data, allowing vulnerabilities to be fixed or program behavior to be altered.
  • Data Type Manager. Defines and manages data structures, unions, and enumerations. Assigns these types to memory locations, improving the readability of decompiled code and the accuracy of the analysis.
  • Pattern Finder. Scans the binary for specific byte or instruction sequences. Identifies code signatures, known vulnerabilities, or implementations of cryptographic algorithms.

The creation of Ghidra was initiated by the United States National Security Agency. Its internal development began around the early 2000s as a project to meet the agency's specific software analysis needs. The framework was first made public in March 2019 at the RSA Conference, and its source code was released shortly afterward. The application is written mainly in Java, which gives it portability across operating systems. Development and maintenance continue under the direction of the NSA, with additional contributions from the information security community since its release as an open-source project.


Alternatives to Ghidra:

For Ghidra there are 11 alternative programs. Free: 11, paid: 0.

Spicetify — Free Download. Spotify client customization tool

Spicetify

Spicetify CLI is a command-line utility that modifies the appearance and functionality of the Spotify desktop client.
Price: Free   Size: 7.24 MB   Version: 2.42.14   OS: Windows, Linux, MacOS
CLion — Free Download. C and C++ IDE

CLion

CLion is an integrated development environment (IDE) designed for C and C++ programming.
Price: Free   Size: 1300 MB   Version: 2025.1.2   OS: Windows, Linux, MacOS
MemRE — Free Download. MemRE Memory Editor

MemRE

MemRE is an injectable memory editor designed for reverse engineering, with specialized support for Unreal Engine.
Price: Free   Size: 0.399 MB   Version: 1.2.1   OS: Windows
Gaphor — Free Download. UML Modeling Tool

Gaphor

Gaphor is a modeling tool that supports UML, SysML, and RAAML.
Price: Free   Size: 44.5 MB   Version: 3.3.2   OS: Windows, Linux, MacOS
Gisto — Free Download. Code Snippet Manager

Gisto

Gisto is an application designed to store, organize, and share code snippets.
Price: Free   Size: 7.05 MB   Version: 2.15.0   OS: Windows, Linux, Mac OS
Binary Ninja — Free Download. Advanced Binary Analysis

Binary Ninja

Binary Ninja is a binary analysis platform designed for reverse engineering and vulnerability research.
Price: Free   Size: 422 MB   Version: 5.0   OS: Windows, Linux, Mac
radare2 — Free Download. Binary Analysis and Reversing

radare2

Radare2 is a complete framework for binary analysis and reverse engineering.
Price: Free   Size: 11.7 MB   Version: 5.9.8   OS: Windows, Linux, Mac, Android, iOS, Free BSD
Cutter — Free Download. Binary Analysis Platform

Cutter

Cutter is a reverse engineering platform developed for analyzing binary files.
Price: Free   Size: 134 MB   Version: 2.5.0   OS: Windows, Linux, MacOS
IDA — Free Download. Disassembly and Debugging

IDA

IDA Free is a free version of the professional IDA Pro disassembler, designed for binary code analysis.
Price: Free   Size: 314 MB   Version: 9.1   OS: Windows, Linux, Mac
x64dbg — Free Download. Windows x64/x32 Debugger

x64dbg

x64dbg is an open-source debugger for 64-bit and 32-bit Windows platforms.
Price: Free   Size: 30.1 MB   Version: 2026.05.27   OS: Windows
OllyDbg — Free Download. x86 Code Debugger

OllyDbg

OllyDbg is an assembler-level debugger for Windows systems.
Price: Free   Size: 0.945 MB   Version: 1.10   OS: Windows

Changelog

Version: 12.2
  1. Ghidra 12.2 requires at least JDK 25 to run, and using the Debugger or doing a full source distribution build needs Python 3 (versions 3.9 to 3.14). It is fully backward compatible with project data from previous releases, but programs and data type archives created or modified in 12.2 may not be usable by earlier versions.
  2. Security: server authentication is now enforced for all TLS/SSL client/server connections, including those over localhost (it can be disabled with the ghidra.disable.loopback.server.authentication property). A CA-signed certificate is strongly encouraged, and the new server/certTool command helps generate the keystore.
  3. Ghidra Server: without a configured keystore, the server auto-generates a temporary self-signed certificate and only listens for loopback connections on localhost; a proper keystore must be specified to accept remote connections. Clients support both the operating system certificate stores and the ones shipped with Java.
  4. BSim PostgreSQL Server: clients now authenticate the server, and new deployments should specify a keystore when initialized; without one, or with the trust authentication mode, the server listens on localhost only.
  5. New client-side Server Allow List that restricts connections to unknown servers and clicks on http/https links in listing comment annotations; it is managed with the new support/updateServerAllowList command.
  6. The bsim_ctl script has been overhauled: new init and configure commands to initialize and reconfigure a deployment, start, stop and restart to control its state, install-service and uninstall-service to install it as a Linux service, and listusers for user management. Password authentication is now the default mode instead of trust.
  7. With JDK 25, script and extension developers can use the Foreign Function and Memory API, unnamed variables and patterns, Markdown documentation comments, the Class-File API, Stream Gatherers, Scoped Values and flexible constructor bodies.
  8. New processor modules and improvements: CIP-51 support for 8051, Hexagon (up to V79, with Sleigh crossbuild support), a CPU32 variant of M68000, PowerPC 3.0B/3.0C instructions, RH850G3 in V850, ARM v8-M instructions, missing standard, GFNI and AVX instructions in x86, and many fixes for AArch64, ARM/Thumb/NEON, AVR32, HCS12, MCS-96, MIPS, NDS32, PIC-18, RISC-V, SPARC V9, SuperH, TriCore and x86. Some opened programs may be upgraded and re-disassembled.
  9. Data types: support for the C99 standard integer types (int8_t, uint8_t, int16_t, uint16_t, int64_t, uint64_t, intptr_t and uintptr_t), which CParser, PDB and DWARF now use for better portability across target architectures.
  10. New interactive Structure/Union/Enum merger that shows two datatypes side by side and lets you pick each element to build a combined datatype.
  11. Beta support for timeless (time-travel) debugging: a native tool based on Intel PIN captures execution traces in a TENET-based format, with a matching importer, plus a breakpoint timeline, a dynamic call tree and a variable viewer. These components are enabled from File → Configure in the Experimental category, and they also work with live debugger targets, with some caveats.
  12. Accessibility: better focus and navigation in the New Project Wizard, the help viewer, plugin configuration dialogs and the action chooser, improved screen reader support for the Listing and Byte Viewers, and a new Ctrl-E shortcut to toggle focus between the options tree and the active editor panel.
  13. This release brings new features, performance improvements, quite a few bug fixes and many pull-request contributions from the community.

New programs