Ghidra is a powerful software reverse engineering (SRE) framework developed and maintained by the National Security Agency Research Directorate. This comprehensive framework is equipped with a suite of high-end software analysis tools that allow users to dissect compiled code on various platforms, including Windows, macOS, and Linux.
The capabilities of Ghidra are vast and include disassembly, assembly, decompilation, graphing, and scripting, among hundreds of other features. It supports a wide array of processor instruction sets and executable formats and can be run in both user-interactive and automated modes. Users can also develop their own Ghidra extension components and scripts using Java or Python.
Ghidra was built to address scaling and teaming issues on complex SRE efforts and to provide a customizable and extensible SRE research platform. It has been used to analyze malicious code and generate deep insights for SRE analysts, aiding in the identification of potential vulnerabilities in networks and systems.
To install an official pre-built multi-platform Ghidra release:
- Install JDK 17 64-bit
- Download a Ghidra release file
- Extract the Ghidra release file
- Launch Ghidra:
For additional information and troubleshooting tips about installing and running a Ghidra release, please refer to
docs/InstallationGuide.html which can be found in your extracted Ghidra release directory.
To create the latest development build for your platform from this source repository:
Install build tools:
- JDK 17 64-bit
- Gradle 7.3+
- make, gcc, and g++ (Linux/macOS-only)
- Microsoft Visual Studio 2017+ or Microsoft C++ Build Tools with the following components installed (Windows-only):
- Windows SDK
- C++ ATL
Download and extract the source:
unzip ghidra-master cd ghidra-master
NOTE: Instead of downloading the compressed source, you may instead want to clone the GitHub repository:
git clone https://github.com/NationalSecurityAgency/ghidra.git
Download additional build dependencies into source repository:
gradle -I gradle/support/fetchDependencies.gradle init
Create development build:
The compressed development build will be located at
For more detailed information on building Ghidra, please read the Developer Guide.
For issues building, please check the Known Issues section for possible solutions.
Use Case Scenarios:
- Malware Analysis: Ghidra’s extensive capabilities make it an excellent tool for analyzing malicious code. By disassembling and decompiling the code, analysts can gain a better understanding of its functionality, identify potential vulnerabilities, and develop strategies to mitigate threats.
- Software Debugging: Developers can use Ghidra to reverse engineer their own or third-party software. This can be particularly useful when trying to identify bugs in compiled code, understand how a piece of software works, or ensure compatibility with existing systems.