# nationalsecurityagency/ghidra

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/nationalsecurityagency-ghidra).**

69,740 stars · 7,654 forks · Java · Apache-2.0

## Links

- GitHub: https://github.com/NationalSecurityAgency/ghidra
- Homepage: https://www.nsa.gov/ghidra
- awesome-repositories: https://awesome-repositories.com/repository/nationalsecurityagency-ghidra.md

## Topics

`disassembler` `reverse-engineering` `software-analysis`

## Description

Ghidra is a software reverse engineering suite designed to analyze compiled binaries and reconstruct program logic without access to original source code. It provides an interactive environment for disassembly and decompilation, utilizing a platform-independent intermediate representation to maintain consistency across diverse hardware architectures. The framework supports automated binary analysis through programmatic routines, enabling the investigation of complex code patterns and security indicators.

The platform distinguishes itself through a modular architecture that allows for extensive customization. Users can define new processor instruction sets using a dedicated specification language, ensuring support for unique hardware without requiring recompilation. Collaborative analysis is facilitated by a database-backed storage system, while a headless execution mode enables the processing of large binary sets via command-line scripts.

The suite includes tools for malware analysis and software vulnerability research, providing capabilities for visual navigation of control flow and the development of custom plugins. Developers can extend the core functionality by injecting specialized analysis routines or user interface components through a standardized discovery mechanism. The project provides comprehensive documentation and build tasks to support the configuration of development workspaces for those contributing to the underlying architecture.

## Tags

### Development Tools & Productivity

- [Binary Analysis Frameworks](https://awesome-repositories.com/f/development-tools-productivity/code-quality-analysis/advanced-code-inspection/reverse-engineering-tools/binary-analysis-frameworks.md) — Decodes compiled binaries into readable logic to facilitate deep inspection without needing the original source code.
- [Interactive Disassembly Environments](https://awesome-repositories.com/f/development-tools-productivity/code-quality-analysis/advanced-code-inspection/reverse-engineering-tools/interactive-disassembly-environments.md) — Offers an interactive interface for inspecting machine code and automatically reconstructing high-level source representations from executable files.
- [Software Reverse Engineering Suites](https://awesome-repositories.com/f/development-tools-productivity/code-quality-analysis/static-analysis-engines/static-analysis-tools/code-analysis-tools/software-reverse-engineering-suites.md) — Combines disassembly, decompilation, and visual analysis into a unified environment for uncovering hidden program logic.
- [Control Flow Analysis](https://awesome-repositories.com/f/development-tools-productivity/code-quality-analysis/static-analysis-engines/static-analysis-tools/control-flow-analysis.md) — Visualizes complex execution paths and internal code structures by mapping how compiled instructions flow during runtime.
- [Extensible Analysis Frameworks](https://awesome-repositories.com/f/development-tools-productivity/code-quality-analysis/quality-governance-systems/software-analysis-platforms/extensible-analysis-frameworks.md) — Supports custom scripts and modular plugins to automate complex inspection tasks and extend core analysis capabilities.
- [Batch Processing Engines](https://awesome-repositories.com/f/development-tools-productivity/build-tooling/build-orchestration-logic/build-orchestration-configuration/build-automation-systems/automation/batch-processing-engines.md) — Executes batch analysis tasks on large binary datasets via command-line interfaces, bypassing the need for manual interaction.

### Operating Systems & Systems Programming

- [Binary Disassembly](https://awesome-repositories.com/f/operating-systems-systems-programming/binary-analysis-capabilities/binary-disassembly.md) — Transforms raw machine code into human-readable assembly instructions to simplify the study of diverse hardware architectures. ([source](https://cdn.jsdelivr.net/gh/NationalSecurityAgency/ghidra@master/README.md))

### Programming Languages & Runtimes

- [Bytecode](https://awesome-repositories.com/f/programming-languages-runtimes/compiler-interpreter-internals/compiler-infrastructure/intermediate-representations/bytecode.md) — Normalizes disparate machine instructions into a platform-agnostic intermediate representation to enable consistent cross-architecture analysis.
- [Processor Specification Languages](https://awesome-repositories.com/f/programming-languages-runtimes/programming-language-varieties/domain-specific-languages/processor-specification-languages.md) — Utilizes a specialized language to define processor instruction sets and hardware semantics for architecture-independent analysis.

### Security & Cryptography

- [Automated Binary Analysis](https://awesome-repositories.com/f/security-cryptography/vulnerability-assessment-testing/security-testing-auditing/security-analysis-tools/automated-binary-analysis.md) — Automates the scanning of compiled binaries to detect security indicators, patterns, and potential logic vulnerabilities.
- [Malware Analysis Workflows](https://awesome-repositories.com/f/security-cryptography/vulnerability-assessment-testing/security-testing-auditing/security-analysis-tools/malware-analysis-workflows.md) — Investigates suspicious files to identify malicious behaviors and system interactions through deep binary inspection.

### Artificial Intelligence & ML

- [Vulnerability Research Tools](https://awesome-repositories.com/f/artificial-intelligence-ml/ai-security-and-governance/adversarial-security-research/vulnerability-research-tools.md) — Examines binary code to uncover security flaws and potential exploit vectors through comprehensive reverse engineering.

### Part of an Awesome List

- [Malware Analysis Sandboxes](https://awesome-repositories.com/f/awesome-lists/security/malware-analysis-sandboxes.md) — Comprehensive software reverse engineering framework.
- [Reverse Engineering](https://awesome-repositories.com/f/awesome-lists/security/reverse-engineering.md) — Comprehensive suite for software reverse engineering and analysis.
- [Reverse Engineering and Decompilation](https://awesome-repositories.com/f/awesome-lists/security/reverse-engineering-and-decompilation.md) — Comprehensive software reverse engineering and analysis framework.
- [Reverse Engineering Tools](https://awesome-repositories.com/f/awesome-lists/security/reverse-engineering-tools.md) — Comprehensive framework for software reverse engineering and binary analysis.
- [Security And Privacy](https://awesome-repositories.com/f/awesome-lists/security/security-and-privacy.md) — Framework for software reverse engineering.
- [Security Tools](https://awesome-repositories.com/f/awesome-lists/security/security-tools.md) — Software reverse engineering framework.

### Software Engineering & Architecture

- [Plugin Development Kits](https://awesome-repositories.com/f/software-engineering-architecture/application-frameworks/application-framework-extensions/plugin-development-kits.md) — Enables the creation of specialized scripts and plugins to tailor analysis workflows to unique project requirements. ([source](https://cdn.jsdelivr.net/gh/NationalSecurityAgency/ghidra@master/README.md))
- [Headless Content Management Systems](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/layering-presentation/application-layer-architectures/headless-content-management-systems.md) — Centralizes binary data and analysis metadata to allow distributed teams to collaborate on reverse engineering projects.
- [Plugin Architectures](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/extensibility/plugin-architectures.md) — Integrates custom analysis routines and interface components through a standardized modular framework.
