Skip to content
GH

Ghidra

Category: Mobile
License: Apache License 2.0 (open source)
Suphi Cankurt
Suphi Cankurt
AppSec Enthusiast
Updated February 12, 2026
4 min read
0 Comments

Ghidra is the National Security Agency’s flagship software reverse engineering framework, publicly released in March 2019 at the RSA Conference. With over 64,300 GitHub stars, it has rapidly become one of the most popular reverse engineering tools worldwide. The framework offers enterprise-grade capabilities completely free and open source under the Apache License 2.0.

The NSA developed Ghidra over decades for internal use before making it available to the public. This government pedigree shows in its sophisticated analysis algorithms, comprehensive architecture support, and robust collaborative features. Version 11.3, released in 2025, introduced kernel-level debugging, JIT p-code emulation, Visual Studio Code integration, and enhanced function graph layouts.

What is Ghidra?

Ghidra is a software reverse engineering suite that disassembles and decompiles compiled binaries into human-readable representations. The tool supports analyzing executables across platforms including Windows, macOS, Linux, Android, iOS, and embedded systems. Its multi-architecture support covers x86, x86-64, ARM, ARM64, MIPS, PowerPC, and dozens of other processor families.

The framework’s decompiler converts assembly code into C-like pseudocode that is often remarkably readable and accurate. This decompilation capability accelerates reverse engineering tasks that would take significantly longer working with raw assembly. The intermediate representation (p-code) enables sophisticated analysis and cross-architecture code understanding.

Ghidra’s collaborative features allow multiple analysts to work on the same project simultaneously, sharing annotations, function names, and analysis results in real-time. This makes it invaluable for team-based security research and large-scale reverse engineering projects.

Powerful Decompiler
Converts assembly to readable C-like pseudocode across multiple architectures
Multi-Architecture
Supports x86, ARM, MIPS, PowerPC, SPARC, and 50+ processor families
Interactive Debugger
Integrated debugging with GDB, LLDB, and WinDbg for dynamic analysis
Collaborative Analysis
Real-time multi-user projects with shared annotations and findings
Extensible Platform
Python and Java scripting API plus plugin architecture for custom tools
Version Tracking
Compare binaries across versions to identify patches and changes

Key features

Disassembly and Decompilation

Ghidra’s disassembler produces accurate assembly listings with automatic function identification, call graph construction, and cross-reference generation. The auto-analysis phase applies hundreds of analyzers to identify code patterns, resolve indirect calls, and reconstruct high-level structures.

The decompiler output quality rivals commercial alternatives, producing C pseudocode that often compiles or serves as the basis for vulnerability research. Variable type inference, structure recovery, and control flow reconstruction make complex binaries understandable.

Mobile Binary Analysis

For mobile security testing, Ghidra is essential for analyzing native code components. Android apps often include native libraries (.so files) for performance-critical operations or to protect sensitive logic. Jadx handles the Java/Kotlin code, while Ghidra reverse engineers these compiled libraries.

On iOS, all app code is compiled to native ARM64 binaries. Ghidra can load Mach-O executables directly, enabling comprehensive analysis of iOS apps without jailbreak. Combined with Frida for runtime instrumentation, you can validate your static analysis findings dynamically.

Debugging and Dynamic Analysis

Ghidra 11.3 introduced a powerful integrated debugger that connects to GDB, LLDB, and WinDbg. This allows you to step through code execution, set breakpoints, examine memory, and observe runtime behavior without leaving the Ghidra interface. The unified view of static and dynamic analysis accelerates understanding.

For mobile testing, you can debug Android native libraries using GDB on a rooted device, or debug iOS binaries via LLDB on a jailbroken device. The debugger synchronizes with your static analysis annotations, providing context as you trace execution.

Scripting and Automation

Ghidra’s scripting capabilities enable automation of repetitive analysis tasks. The Python and Java APIs provide programmatic access to virtually all framework functionality. You can write scripts to find specific code patterns, extract cryptographic constants, or generate custom reports.

The plugin architecture allows extending Ghidra with completely new analysis capabilities. Community plugins add features like binary diffing enhancements, custom decompiler outputs, and integrations with other security tools.

Collaborative Reverse Engineering

Ghidra Server enables teams to share projects in a central repository with version control. Multiple analysts can work on different parts of a binary simultaneously, with changes synchronized in real-time. This collaborative approach is particularly valuable for large mobile apps or complex malware analysis.

When to use Ghidra

Strengths:

  • Completely free and open source with no licensing costs
  • Government-grade capabilities and active NSA development
  • Excellent decompilation quality for modern binaries
  • Comprehensive architecture support including mobile processors
  • Collaborative features unmatched by commercial alternatives
  • Extensible via Python/Java scripting and plugins
  • Strong community with extensive documentation and tutorials
  • Cross-platform (runs on Windows, macOS, Linux)

Limitations:

  • Steeper learning curve than specialized mobile-only tools
  • GUI can be overwhelming for beginners with many panels and options
  • Large binaries may require significant RAM and processing time
  • Some third-party plugins are less mature than IDA Pro equivalents
  • Auto-analysis can take time on complex executables
Best for
Ghidra is ideal for reverse engineering native mobile app components, analyzing malware, vulnerability research, and any scenario requiring deep binary analysis across multiple architectures. Essential for security professionals who need comprehensive static analysis capabilities without licensing costs.

Getting started

1
Download and install — Get Ghidra from the official GitHub releases page or ghidra-sre.org. Requires Java 17 or later. Extract the archive and run ghidraRun (Linux/macOS) or ghidraRun.bat (Windows).
2
Create a project and import a binary — Start a new project, then import your target binary (APK native library, iOS Mach-O executable, or any supported format). Run auto-analysis when prompted.
3
Explore the decompiler — Once analysis completes, navigate the function list, use the decompiler view for C-like pseudocode, and follow cross-references to understand code structure.
4
Identify security-relevant code — Look for functions handling crypto, authentication, network communication, and data storage. Use the search and scripting features to find specific patterns.
5
Validate findings with dynamic tools — Use Frida to hook interesting functions at runtime and confirm your static analysis findings.

Combine Ghidra with Hopper for macOS/iOS-specific analysis, Jadx for decompiling Android apps, and Objection for rapid mobile pentesting.

Frequently Asked Questions

What is Ghidra?
Ghidra is a free and open source software reverse engineering framework developed by the NSA. It provides disassembly, decompilation, debugging, and analysis capabilities for compiled binaries across multiple processor architectures, making it invaluable for mobile security analysis, malware research, and vulnerability discovery.
How does Ghidra compare to IDA Pro?
Ghidra is a free, open source alternative to IDA Pro that offers comparable decompilation quality and supports many of the same architectures. While IDA Pro has more mature third-party plugins and slightly better performance on some tasks, Ghidra’s collaborative features, active development, and zero cost make it increasingly popular. Many professionals use both tools.
Can Ghidra analyze mobile app binaries?
Yes, Ghidra excels at analyzing native mobile binaries. For Android, it can reverse engineer native libraries (.so files) compiled for ARM, ARM64, x86, and MIPS. For iOS, it handles Mach-O binaries including those compiled for ARM64. Combined with tools like Jadx for Java/Kotlin code, Ghidra provides comprehensive mobile app analysis.
Is Ghidra difficult to learn?
Ghidra has a learning curve, especially for those new to reverse engineering. However, it provides extensive documentation, an intuitive GUI, and a helpful community. Starting with guided tutorials and focusing on specific tasks (like analyzing a single function) helps build proficiency incrementally.

Complement with DAST

Pair mobile security with dynamic testing for broader coverage.

See all DAST tools

Comments

Powered by Giscus — comments are stored in GitHub Discussions.