explaingit

nationalsecurityagency/ghidra

📈 Trending68,618JavaAudience · developerComplexity · 4/5ActiveLicenseSetup · moderate

TLDR

Free, open-source tool for analyzing compiled programs to understand what they do without source code. Used by security researchers and malware analysts to reverse-engineer binaries.

Mindmap

mindmap
  root((Ghidra))
    What it does
      Decompile binaries
      View assembly code
      Analyze control flow
      Search patterns
    Key features
      Graphical interface
      Batch automation
      Custom scripts
      Multi-architecture
    Use cases
      Malware analysis
      Vulnerability research
      CTF competitions
      Closed-source study
    Tech stack
      Java runtime
      Python scripting
      Multiple architectures
      Cross-platform

Things people build with this

USE CASE 1

Analyze malware samples to understand their behavior and capabilities without running them.

USE CASE 2

Search for security vulnerabilities in closed-source software by examining the compiled binary.

USE CASE 3

Participate in capture-the-flag competitions by reverse-engineering challenge binaries.

USE CASE 4

Study how a compiled program works at the assembly and logic level for educational purposes.

Tech stack

JavaPythonAssemblyx86ARMMIPS

Getting it running

Difficulty · moderate Time to first run · 30min

Requires Java runtime and potentially native dependencies for binary analysis; initial UI/CLI setup takes time.

Free to use for any purpose, including commercial and government use, with source code available under the Apache 2.0 license.

In plain English

Ghidra is a free, open-source software reverse engineering framework created and maintained by the US National Security Agency. Reverse engineering in this context means taking a compiled program, a binary file that a computer can run, and analyzing it to understand what it does, even without access to the original source code. This is a common need in cybersecurity work: malware analysts examining suspicious programs, security researchers looking for vulnerabilities, and developers trying to understand how a piece of proprietary software behaves. The tool provides a graphical desktop application where you can load a compiled binary and see it broken down into human-readable assembly language (a low-level representation of machine instructions) and even partially reconstructed higher-level code through its decompiler feature. The decompiler tries to infer what the original code logic might have looked like, making it much faster to understand a program than reading raw assembly alone. Ghidra also supports graphing the control flow of a program (showing how different parts of the code connect and branch), searching for patterns, and writing custom analysis scripts in Java or Python to automate tedious tasks. It supports a wide range of processor architectures and executable file formats across Windows, macOS, and Linux. You can use it interactively through its graphical interface or run it in automated mode for batch analysis. You would reach for Ghidra when analyzing malware, doing security vulnerability research on closed-source software, participating in capture-the-flag security competitions, or studying how a compiled program works at a deep technical level. It competes with commercial tools like IDA Pro, offering similar capabilities at no cost. The project is written in Java and requires Java 21 to run. Extensions and scripts can be written in Java or Python.

Copy-paste prompts

Prompt 1
I have a suspicious .exe file. How do I load it into Ghidra and use the decompiler to see what functions it contains?
Prompt 2
Show me how to write a Python script in Ghidra to automatically find all string references in a binary and export them to a file.
Prompt 3
I want to analyze a Linux ARM binary in Ghidra. What are the steps to load it and view the control flow graph?
Prompt 4
How do I use Ghidra's search functionality to find patterns like specific function prologues or hardcoded strings across a large binary?
Prompt 5
Can I run Ghidra in headless mode to batch-analyze multiple binaries and generate reports without opening the GUI?
Open on GitHub → Explain another repo

Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.