Skip to content
 编辑

Ghidra Installation Guide

Ghidra Installation Guide

The installation information provided is effective as of Ghidra 11.2 and is subject to change with future releases.

Platforms Supported

Minimum Requirements

Installing Ghidra

Ghidra Installation Directory Layout

Building Native Components

Installing the Debuggers’ Python Dependencies

Running Ghidra

Extensions

Ghidra Development

Upgrade Instructions

Troubleshooting & Help

Known Issues

[]{#Platforms}Platforms Supported

NOTE: All 32-bit OS installations are now deprecated. Please contact the Ghidra team if you have a specific need.

[]{#Requirements}Minimum Requirements

Hardware

Software

Java 21 64-bit Runtime and Development Kit (JDK) (see Java Notes)

Free long term support (LTS) versions of JDK 21 are provided by:

Python3 (3.9 to 3.12; for Debugger support)

(Back to Top)

[]{#Install}Installing Ghidra

To install Ghidra, simply extract the Ghidra distribution file to the desired filesystem destination using any unzip program (built-in OS utilities, 7-Zip, WinZip, WinRAR, etc)

[]{#InstallationNotes}Installation Notes

[]{#JavaNotes}Java Notes

(Back to Top)

[]{#Layout}Ghidra Installation Directory Layout

When Ghidra is installed, the runnable software gets extracted to a new directory we will refer to as <GhidraInstallDir>. Below is a description of the top-level directories and files that can be found in <GhidraInstallDir> once extraction of the distribution file is complete.


Ghidra Base directory for Ghidra distribution.  Contains files needed to run Ghidra.

Extensions Optional components that can extend Ghidra’s functionality and integrate Ghidra with other tools.
See the Extensions section for more information.

GPL Standalone GPL support programs.

server Contains files related to Ghidra Server installation and administration.

support Contains files useful for debugging Ghidra, running Ghidra in advanced modes, and controlling how Ghidra launches.

docs Contains documentation for Ghidra, such as release notes, API files, tutorials, etc.

ghidraRun(.bat) Script used to launch Ghidra.

LICENSE.txt Ghidra license information.

licenses Contains licenses used by Ghidra.

bom.json Software Bill of Materials (SBOM) in CycloneDX JSON format.


(Back to Top)

[]{#Build}Building Native Components

Ghidra requires several native binaries to be present in order to successfully run. An official public Ghidra release includes native binaries for the following platforms.

NOTE: For some non-public Ghidra releases macOS natives may be omitted.

Ghidra supports running on the following additional platforms with user-built native binaries:

For supported systems where native binaries have not been supplied, or those that are supplied fail to run properly, it may be necessary to build the native Ghidra binaries. In order to build native binaries for your platform, you will need the following installed on your system:

A supported version of a Java Development Kit

Gradle 8.5+ (or supplied Gradle wrapper with Internet connection)

Software C/C++ build tools and library packages

To build the native binaries for your current platform, execute the following commands:

    cd <GhidraInstallDir>/support/gradle/
    gradle buildNatives
  

If you are connected to the Internet and do not have Gradle installed, execute:

    cd <GhidraInstallDir>/support/gradle/
    ./gradlew(.bat) buildNatives
  

When the commands successfully complete, Ghidra will contain newly built native binaries in the relevant modules’ build/os/<platform>/ subdirectories, which will override any existing pre-built native binaries in the os/<platform>/ subdirectories.

(Back to Top)

[]{#DebuggerPython}Installing the Debugger’s Python Dependencies

The Debugger now uses Python to connect to the host platform’s native debuggers. This requires Python3 (3.9 to 3.12) and some additional packages. These packages are included in the distribution, but you may still install them from PyPI if you prefer:

Different native debuggers have varying requirements, so you do not necessarily have to install all of the above packages. Each connector will inform you of its specific requirements and where they must be installed. In some cases, you may need to install packages on the target system.

[]{#Run}Running Ghidra

[]{#RunGUI}GUI Mode

  1. Navigate to <GhidraInstallDir>

  2. Run ghidraRun.bat (Windows) or ghidraRun (Linux or macOS)

    If Ghidra failed to launch, see the Troubleshooting section.

[]{#RunServer}Ghidra Server

Ghidra can support multiple users working together on a single project. Individual Ghidra users launch and work on their own local copies of a particular Ghidra project but check changes into a common repository containing all commits to that repository. For detailed information on installing/configuring the Ghidra Server see the <GhidraInstallDir>/server/svrREADME.html file.

[]{#RunHeadless}Headless (Batch) Mode

Ghidra is traditionally run in GUI mode. However, it is also capable of running in headless batch mode using the command line. For more information, see the <GhidraInstallDir>/support/analyzeHeadlessREADME.html file.

[]{#RunJar}Single Jar Mode

Normally, Ghidra is installed as an entire directory structure that allows modular inclusion or removal of feature sets and also provides many files that can be extended or configured. However, there are times when it would be useful to have all or some subset of Ghidra compressed into a single jar file at the expense of configuration options. This makes Ghidra easier to run from the command line for headless operation or to use as a library of reverse engineering capabilities for another Java application.

A single ghidra.jar file can be created using the <GhidraInstallDir>/support/buildGhidraJar script.

(Back to Top)

[]{#Extensions}Extensions

Extensions are optional components that can:

Ghidra comes with the following extensions available for use (and by default uninstalled), which can be found in the <GhidraInstallDir>/Extensions directory.

[]{#GhidraExtensionNotes}Ghidra Extension Notes

(Back to Top)

[]{#Development}Ghidra Development

Users can extend the functionality of Ghidra through the development of custom Ghidra scripts, plugins, analyzers, etc.

Ghidra supports development in Eclipse by providing a custom Eclipse plugin called GhidraDev, which can be found in the <GhidraInstallDir>/Extensions/Eclipse directory. For more information on installing and using the GhidraDev Eclipse plugin, see <GhidraInstallDir>/Extensions/Eclipse/GhidraDev/GhidraDev_README.html.

NOTE: Eclipse is not provided with Ghidra. The GhidraDev Eclipse plugin is designed to be installed in a pre-existing Eclipse installation.

Ghidra scripting API javadocs can be found at <GhidraInstallDir>/docs/GhidraAPI_javadoc.zip.

(Back to Top)

[]{#Upgrading}Upgrade Instructions

[]{#GeneralUpgrade}General Upgrade Instructions

!!!Important!!! BACKUP YOUR OLD PROJECTS FIRST!! !!!Important!!!

New installations of Ghidra will, by default, use the saved profile from a user’s most recent version of Ghidra. This allows any saved tool configurations to be automatically ported to new projects. However, this may also prevent new tool options and features from automatically being configured in some cases. To open new tools containing the latest configurations, users should, from the Project Manager Window, choose Tools → Default Tools…

When you open a program that was created using a previous version of Ghidra, you will be prompted to upgrade the program before it can be opened. The upgrade will not overwrite your old file until you save it. If you save it (to its original file), you will no longer be able to open it using an older version of Ghidra. You could, however, choose to perform a “Save As” instead, creating a new file and leaving the old version unchanged. Be very careful about upgrading shared program files since everyone accessing the file must also upgrade their Ghidra installation.

[]{#ServerUpgrade}Server Upgrade Instructions

(Back to Top)

[]{#Troubleshooting}Troubleshooting & Help

[]{#LaunchIssues}Launching Ghidra

When launching Ghidra with the provided scripts in <GhidraInstallDir> and <GhidraInstallDir>/support, you may encounter the following error messages:

[]{#GhidraHelp}Using Ghidra

There are several ways you can get help with using Ghidra:

(Back to Top)

[]{#KnownIssues}Known Issues for current release

[]{#CommonIssues}All Platforms

[]{#WindowsIssues}Windows

[]{#LinuxIssues}Linux

[]{#MacOSIssues}macOS (OS X)

(Back to Top)



\