General Questions
What is Ghidra?
What is Ghidra?
- Disassembly
- Assembly
- Decompilation
- Graphing
- Scripting
- And hundreds of other features
What platforms does Ghidra support?
What platforms does Ghidra support?
- Windows
- macOS
- Linux
- x86/x64
- ARM/ARM64 (AARCH64)
- MIPS
- PowerPC
- And many other processor architectures
Is Ghidra free and open source?
Is Ghidra free and open source?
- Use it for any purpose (commercial or personal)
- Modify the source code
- Distribute it
- Contribute improvements back to the project
Can I use Ghidra for commercial purposes?
Can I use Ghidra for commercial purposes?
Installation and Setup
What are the system requirements for Ghidra?
What are the system requirements for Ghidra?
- JDK 21 64-bit
- 4 GB RAM (8 GB or more recommended)
- 1 GB free disk space for installation
- Additional space for projects and analysis databases
- Windows 10 or later
- macOS 10.14 or later
- Modern Linux distributions
How do I install Ghidra?
How do I install Ghidra?
- Install JDK 21 64-bit from Eclipse Temurin
- Download a Ghidra release from GitHub Releases
- Extract the release file (don’t extract on top of an existing installation)
- Launch Ghidra:
- Linux/macOS:
./ghidraRun - Windows:
ghidraRun.bat
- Linux/macOS:
Why does Ghidra require Java 21?
Why does Ghidra require Java 21?
Can I run multiple versions of Ghidra?
Can I run multiple versions of Ghidra?
- Projects created in newer versions may not be compatible with older versions
- Extensions may need to be reinstalled for each version
Development and Building
How do I build Ghidra from source?
How do I build Ghidra from source?
- Install build tools: JDK 21, Gradle 8.5+, Python 3.9-3.13
- Clone or download the source
- Run
gradle -I gradle/support/fetchDependencies.gradle - Run
gradle prepdev - Run
gradle buildGhidra
build/dist/.What IDE should I use for Ghidra development?
What IDE should I use for Ghidra development?
- Eclipse IDE is highly recommended (the development process is customized for Eclipse)
- GhidraDev Eclipse plugin
- Visual Studio Code (with Ghidra integration)
Can I use Gradle wrapper instead of installing Gradle?
Can I use Gradle wrapper instead of installing Gradle?
- Linux/macOS:
./gradlew <task> - Windows:
.\gradlew.bat <task>
How do I develop offline?
How do I develop offline?
dependencies/gradle directory) to your offline system. See the Building Ghidra guide for details.Scripting and Extensions
What scripting languages does Ghidra support?
What scripting languages does Ghidra support?
- Java - Full access to Ghidra API
- Python 3 - Via PyGhidra for modern Python scripting
- Jython 2.7 - Legacy Python support within Ghidra GUI
How do I create a custom script?
How do I create a custom script?
- Open Ghidra and launch the Script Manager (Window → Script Manager)
- Click the “Create New Script” button
- Choose your language (Java or Python)
- Write your script using the Ghidra API
- Save and run it from the Script Manager
What is PyGhidra?
What is PyGhidra?
- Use modern Python 3 features and libraries
- Run Ghidra in headless mode from Python
- Integrate Ghidra analysis into Python workflows
- Linux/macOS:
./support/pyGhidraRun - Windows:
support\pyGhidraRun.bat
How do I install extensions?
How do I install extensions?
- Download or build the extension (
.zipfile) - Open Ghidra
- Go to File → Install Extensions…
- Click the green ”+” button
- Select the extension
.zipfile - Click OK and restart Ghidra
Debugger
What debuggers does Ghidra support?
What debuggers does Ghidra support?
- GDB (GNU Debugger) - Linux, macOS, Windows
- LLDB - macOS, Linux, Windows
- WinDbg (via dbgeng.dll) - Windows
How does Ghidra's debugger work?
How does Ghidra's debugger work?
- The debugger back-end runs in a separate process
- It connects to Ghidra via a protobuf-based TCP connection
- Machine state is recorded in a Trace database
- The UI displays and allows interaction with the recorded state
Can I use QEMU with Ghidra?
Can I use QEMU with Ghidra?
- Launch QEMU with GDB remote debugging enabled
- Connect Ghidra to QEMU through the GDB connector
- Debug emulated systems and architectures
Can I develop my own debugger connector?
Can I develop my own debugger connector?
- Using existing connectors (GDB, dbgeng) as templates
- Implementing the Trace RMI client protocol
- Mapping the debugger’s model to Ghidra’s trace database
Multi-User and Collaboration
Does Ghidra support team collaboration?
Does Ghidra support team collaboration?
- Multiple users to work on the same project simultaneously
- Shared analysis databases
- Conflict resolution for concurrent edits
- Version control for project data
How do I set up Ghidra Server?
How do I set up Ghidra Server?
- Linux/macOS:
server/svrInstall - Windows:
server\svrInstall.bat
Security and Updates
Are there known security vulnerabilities in Ghidra?
Are there known security vulnerabilities in Ghidra?
- Read through Ghidra’s Security Advisories
- Keep your installation up to date
- Apply security updates promptly
How do I stay updated with new releases?
How do I stay updated with new releases?
- Watch the GitHub repository for releases
- Subscribe to release notifications
- Check the Releases page regularly
- Follow Ghidra on social media for announcements
Contributing
How can I contribute to Ghidra?
How can I contribute to Ghidra?
- Submit bug reports
- Propose new features
- Submit pull requests with fixes or improvements
- Review other pull requests
- Answer questions from other users
- Improve documentation
- Share your scripts and extensions
What should I know before submitting a pull request?
What should I know before submitting a pull request?
- Keep changes focused and minimal
- Ensure the code compiles and runs
- Avoid unnecessary refactoring or style changes
- Squash commits before submission
- Be prepared to answer reviewer questions
- Be patient - reviews may take time
Getting Help
Where can I get help with Ghidra?
Where can I get help with Ghidra?
- GitHub Issues: For bug reports and feature requests
- GitHub Discussions: For questions and community discussion
- Documentation: Included with Ghidra installation
- Source Code: Read the code for detailed implementation information
- Community: Connect with other users online
How do I report a bug?
How do I report a bug?
- Search existing issues to avoid duplicates
- Use the bug report template when creating a new issue
- Provide:
- Ghidra version
- Operating system
- Steps to reproduce
- Expected vs actual behavior
- Any relevant error messages or logs
