NationalSecurityAgency / Ghidra

Licence: apache-2.0
Ghidra is a software reverse engineering (SRE) framework

Programming Languages

java
68154 projects - #9 most used programming language
C++
36643 projects - #6 most used programming language
HTML
75241 projects
c
50402 projects - #5 most used programming language
python
139335 projects - #7 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to Ghidra

Miasm
Reverse engineering framework in Python
Stars: ✭ 2,649 (-91.28%)
Mutual labels:  disassembler, reverse-engineering
Vivisect
Stars: ✭ 672 (-97.79%)
Mutual labels:  disassembler, reverse-engineering
Fhex
A Full-Featured HexEditor compatible with Linux/Windows/MacOS
Stars: ✭ 225 (-99.26%)
Mutual labels:  disassembler, reverse-engineering
Die Engine
DIE engine
Stars: ✭ 648 (-97.87%)
Mutual labels:  disassembler, reverse-engineering
Beaengine
BeaEngine disasm project
Stars: ✭ 342 (-98.87%)
Mutual labels:  disassembler, reverse-engineering
Gtirb
Intermediate Representation for Binary analysis and transformation
Stars: ✭ 190 (-99.37%)
Mutual labels:  disassembler, reverse-engineering
gdt helper
Ghidra Data Type (GDT) Helper
Stars: ✭ 24 (-99.92%)
Mutual labels:  disassembler, software-analysis
Imhex
🔍 A Hex Editor for Reverse Engineers, Programmers and people who value their retinas when working at 3 AM.
Stars: ✭ 11,744 (-61.33%)
Mutual labels:  disassembler, reverse-engineering
Ddisasm
A fast and accurate disassembler
Stars: ✭ 325 (-98.93%)
Mutual labels:  disassembler, reverse-engineering
Plasma
Plasma is an interactive disassembler for x86/ARM/MIPS. It can generates indented pseudo-code with colored syntax.
Stars: ✭ 2,956 (-90.27%)
Mutual labels:  disassembler, reverse-engineering
Detect It Easy
Program for determining types of files for Windows, Linux and MacOS.
Stars: ✭ 2,982 (-90.18%)
Mutual labels:  disassembler, reverse-engineering
Scratchabit
Easily retargetable and hackable interactive disassembler with IDAPython-compatible plugin API
Stars: ✭ 369 (-98.79%)
Mutual labels:  disassembler, reverse-engineering
Xpeviewer
PE file viewer/editor for Windows, Linux and MacOS.
Stars: ✭ 144 (-99.53%)
Mutual labels:  disassembler, reverse-engineering
Replica
Ghidra Analysis Enhancer 🐉
Stars: ✭ 194 (-99.36%)
Mutual labels:  disassembler, reverse-engineering
Mgbdis
Game Boy ROM disassembler with RGBDS compatible output
Stars: ✭ 131 (-99.57%)
Mutual labels:  disassembler, reverse-engineering
Radare2
UNIX-like reverse engineering framework and command-line toolset
Stars: ✭ 15,412 (-49.25%)
Mutual labels:  disassembler, reverse-engineering
X64dbg
An open-source x64/x32 debugger for windows.
Stars: ✭ 37,825 (+24.54%)
Mutual labels:  disassembler, reverse-engineering
Bin2llvm
A binary to LLVM translator
Stars: ✭ 108 (-99.64%)
Mutual labels:  disassembler, reverse-engineering
B2r2
B2R2 is a collection of useful algorithms, functions, and tools for binary analysis.
Stars: ✭ 262 (-99.14%)
Mutual labels:  disassembler, reverse-engineering
Pwndbg
Exploit Development and Reverse Engineering with GDB Made Easy
Stars: ✭ 4,178 (-86.24%)
Mutual labels:  disassembler, reverse-engineering

Ghidra Software Reverse Engineering Framework

Ghidra is a software reverse engineering (SRE) framework created and maintained by the National Security Agency Research Directorate. This framework includes a suite of full-featured, high-end software analysis tools that enable users to analyze compiled code on a variety of platforms including Windows, macOS, and Linux. Capabilities include disassembly, assembly, decompilation, graphing, and scripting, along with hundreds of other features. Ghidra supports a wide variety of processor instruction sets and executable formats and can be run in both user-interactive and automated modes. Users may also develop their own Ghidra extension components and/or scripts using Java or Python.

In support of NSA's Cybersecurity mission, Ghidra was built to solve scaling and teaming problems on complex SRE efforts, and to provide a customizable and extensible SRE research platform. NSA has applied Ghidra SRE capabilities to a variety of problems that involve analyzing malicious code and generating deep insights for SRE analysts who seek a better understanding of potential vulnerabilities in networks and systems.

If you are a U.S. citizen interested in projects like this, to develop Ghidra and other cybersecurity tools for NSA to help protect our nation and its allies, consider applying for a career with us.

Security Warning

WARNING: There are known security vulnerabilities within certain versions of Ghidra. Before proceeding, please read through Ghidra's Security Advisories for a better understanding of how you might be impacted.

Install

To install an official pre-built multi-platform Ghidra release:

  • Install JDK 11 64-bit
  • Download a Ghidra release file
  • Extract the Ghidra release file
  • Launch Ghidra: ./ghidraRun (or ghidraRun.bat for Windows)

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.

Build

To create the latest development build for your platform from this source repository:

Install build tools:
Download and extract the source:

Download from GitHub

$ 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:
$ gradle buildGhidra

The compressed development build will be located at build/dist/.

For more detailed information on building Ghidra, please read the Developer Guide.

Develop

User Scripts and Extensions

Ghidra installations support users writing custom scripts and extensions via the GhidraDev plugin for Eclipse. The plugin and its corresponding instructions can be found within a Ghidra release at Extensions/Eclipse/GhidraDev/.

Advanced Development

To develop the Ghidra tool itself, it is highly recommended to use Eclipse, which the Ghidra development process has been highly customized for.

Install build and development tools:
Prepare the development environment:
$ gradle prepdev eclipse buildNatives
Import Ghidra projects into Eclipse:
  • File -> Import...
  • General | Existing Projects into Workspace
  • Select root directory to be your downloaded or cloned ghidra source repository
  • Check Search for nested projects
  • Click Finish

When Eclipse finishes building the projects, Ghidra can be launched and debugged with the provided Ghidra Eclipse run configuration.

For more detailed information on developing Ghidra, please read the Developer Guide.

Contribute

If you would like to contribute bug fixes, improvements, and new features back to Ghidra, please take a look at our Contributor Guide to see how you can participate in this open source project.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].