• Stars
    star
    51,088
  • Rank 222 (Top 0.01 %)
  • Language
    Java
  • License
    Apache License 2.0
  • Created over 5 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Ghidra is a software reverse engineering (SRE) framework

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 17 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.

For issues building, please check the Known Issues section for possible solutions.

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/ or at this link.

NOTE: The GhidraDev plugin for Eclipse only supports developing against fully built Ghidra installations which can be downloaded from the Releases page.

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.

More Repositories

1

SIMP

A system automation and configuration management stack targeted toward operational flexibility and policy compliance.
Ruby
1,333
star
2

lemongraph

Log-based transactional graph engine
Python
1,137
star
3

datawave

DataWave is an ingest/query framework that leverages Apache Accumulo to provide fast, secure data access.
Java
563
star
4

enigma-simulator

An educational demonstration of breaking the Enigma machine
Jupyter Notebook
463
star
5

skills-service

SkillTree is a micro-learning gamification platform supporting the rapid integration of a gamified tool training approach into new and existing applications.
Groovy
405
star
6

timely

Accumulo backed time series database
CSS
378
star
7

DCP

Digest, stat, and copy files from one location to another in the same read pass
C
329
star
8

lemongrenade

Data-driven automation platform
Java
302
star
9

qgis-latlontools-plugin

QGIS tools to capture and zoom to coordinates using decimal, DMS, WKT, GeoJSON, MGRS, UTM, UPS, GEOREF, ECEF, H3, and Plus Codes notation. Provides external map support, MGRS & Plus Codes conversion and point digitizing tools.
Python
302
star
10

nationalsecurityagency.github.io

Site for NSA's Open Source project listing
HTML
260
star
11

emissary

Distributed P2P Data-driven Workflow Framework
Java
247
star
12

ghidra-data

Supporting Data Archives for Ghidra
170
star
13

qgis-shapetools-plugin

Shape Tools creates geodesic shapes and includes a number of geodesic tools for QGIS including the XY to Line tool, geodesic densify tool, geodesic line break, geodesic measure tool, geodesic measurement layer, geodesic scale, rotate and translate tool, and digitize points at an azimuth & distance tools.
Python
157
star
14

fractalrabbit

Simulate realistic trajectory data seen through sporadic reporting
Java
145
star
15

qgis-d3datavis-plugin

QGIS D3 Date and Time Heatmap
Python
131
star
16

MADCert

Create root and intermediate Certificate Authorities, issue user and server certificates, etc. for testing purposes.
JavaScript
102
star
17

kmyth

C
89
star
18

skills-client

SkillTree client libraries facilitating the rapid integration of a gamified tool training approach in conjunction with skills-service. Provides out of the box support for Angular, React, Vue.js, and native Javascript.
JavaScript
83
star
19

qgis-searchlayers-plugin

Enhanced textual vector layer searching in QGIS.
Python
74
star
20

qgis-kmltools-plugin

Fast KML Import and Export Plugin for QGIS
Python
67
star
21

qonduit

A WebSocket library for use with Apache Accumulo
Java
60
star
22

skills-docs

SkillTree documentation, covering client integration, dashboard administration and deployment, and contribution guidelines.
JavaScript
47
star
23

qgis-bulk-nominatim

Provides bulk nominatim geocoding for QGIS
Python
37
star
24

qgis-earthsunmoon-plugin

QGIS plugin to show the location of the sun, moon, and planets at their zenith for a particular date and time.
QML
31
star
25

XORSATFilter

A library for building efficient set-membership filters and dictionaries based on the Satisfiability problem.
C
31
star
26

pelz

C
29
star
27

accumulo-python3

Build Python 3 applications that integrate with Apache Accumulo
Python
29
star
28

skills-client-examples

SkillTree skills-client-examples
Java
28
star
29

datawave-muchos

This project leverages Ansible to automate DataWave deployments on your cluster
Shell
26
star
30

call-stack-profiler

SkillTree
Groovy
25
star
31

qgis-datetimetools-plugin

QGIS conversion tools to display the local date, time, time zone, convert between UNIX time (Epoch), Julian dates, ISO8601, calculate the difference between two dates, select a location and time zone by clicking on the map and display the closet location and sun statistics.
Python
22
star
32

qgis-densityanalysis-plugin

QGIS plugin that automates the creation of density heatmaps with a heatmap explorer to examine the areas of greatest concentrations. It includes H3, geohash, and polygon density map algorithms along with several styling algorithms.
Python
22
star
33

skills-stress-test

SkillTree
Groovy
20
star
34

qgis-lockzoom-plugin

QGIS Lock Zoom to Tile Scale
Python
19
star
35

qgis-mgrs-plugin

QGIS Tools to capture and zoom to MGRS coordinates.
Python
19
star
36

ghidra-extensions

Python
16
star
37

datawave-dictionary-service

The Dictionary service provides access to the data dictionary and edge dictionary. These services provide metadata about fields that are stored in Accumulo.
Java
15
star
38

datawave-spring-boot-starter

Java
13
star
39

datawave-microservices-root

Shell
12
star
40

datawave-metadata-utils

Java
12
star
41

maat

Maat is a centralized software integrity measurement and attestation (M&A) service
C
10
star
42

datawave-in-memory-accumulo

Java
7
star
43

datawave-spring-boot-starter-audit

Java
6
star
44

datawave-authorization-service

Java
6
star
45

datawave-query-metric-service

Java
5
star
46

datawave-config-service

Java
5
star
47

datawave-ingest-services

Java
5
star
48

datawave-accumulo-utils

Java
5
star
49

datawave-base-rest-responses

Java
5
star
50

datawave-spring-boot-starter-cache

Java
5
star
51

datawave-audit-service

Java
5
star
52

datawave-utils

Java
4
star
53

datawave-type-utils

Java
4
star
54

datawave-parent

3
star
55

datawave-hazelcast-service

Java
3
star
56

qgis-h3library-plugin

QGIS plugin that installs the H3 library without having to 'pip install h3'.
C
3
star
57

datawave-accumulo-service

Java
3
star
58

datawave-spring-boot-starter-query-metric

Java
3
star
59

datawave-common-utils

Java
3
star
60

datawave-metrics-reporter

Java
3
star
61

datawave-service-parent

3
star
62

rank-based-linkage

Java
2
star
63

ghidra-volatility

Python
2
star
64

ghidra-frida

Python
2
star
65

datawave-spring-boot-starter-query

Java
2
star
66

datawave-spring-boot-starter-metadata

Java
2
star
67

datawave-query-service

Java
2
star
68

datawave-helm-charts

Mustache
2
star
69

datawave-stack-docker-images

Shell
2
star
70

datawave-mapreduce-query-service

Java
1
star
71

datawave-query-executor-service

Java
1
star
72

datawave-modification-service

Java
1
star
73

datawave-query-storage-service

1
star
74

datawave-spring-boot-starter-cached-results

Java
1
star
75

.github

1
star