Ghidra Installation Guide
Ghidra Installation Guide
• Platforms Supported
• Minimum Requirements
• Installing Ghidra
◦ Installation Notes
◦ Java Notes
• Ghidra Installation Directory Layout
• Running Ghidra
◦ GUI Mode
◦ Ghidra Server
◦ Headless (Batch) Mode
◦ Single Jar Mode
• Extensions
◦ Ghidra Extension Notes
• Ghidra Development
• Upgrade Instructions
◦ General Upgrade Instructions
◦ Server Upgrade Instructions
• Troubleshooting & Help
◦ Launching Ghidra
◦ Using Ghidra
• Known Issues
◦ All Platforms
◦ Windows
◦ Linux
1 de 10 02/10/2021 02:26
Ghidra Installation Guide https://htmlpreview.github.io/?https://github.com/NationalSecurityAge...
◦ macOS (OS X)
Platforms Supported
• Microsoft Windows 7 or 10 (64-bit)
• Linux (64-bit, CentOS 7 is preferred)
• macOS (OS X) 10.8.3+ (Mountain Lion or later)
NOTE: All 32-bit OS installations are now deprecated. Please contact the
Ghidra team if you have a specific need.
Minimum Requirements
Hardware
• 4 GB RAM
• 1 GB storage (for installed Ghidra binaries)
• Dual monitors strongly suggested
Software
• Java 11 64-bit Runtime and Development Kit (JDK) (see Java Notes)
◦ Free long term support (LTS) versions of JDK 11 are provided by:
▪ Adoptium Temurin
▪ Amazon Corretto
(Back to Top)
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)
Installation Notes
• Ghidra does not use a traditional installer program. Instead, the Ghidra distribution
file is simply extracted in-place on the filesystem. This approach has advantages and
disadvantages. On the up side, administrative privilege is not required to install
Ghidra for personal use. Also, because installing Ghidra does not update any OS
2 de 10 02/10/2021 02:26
Ghidra Installation Guide https://htmlpreview.github.io/?https://github.com/NationalSecurityAge...
Java Notes
• Ghidra requires a supported version of a Java Runtime and Development Kit on the
PATH to run. However, if there is a version of Java on the PATH that Ghidra does not
support, it will use that version of Java (if 1.7 or later) to assist in locating a
supported version on your system. If one cannot be automatically located, the user
will be prompted to enter a path to the Java home directory to use (the Java home
directory is the parent directory of Java's bin directory). This minimizes the impact
Ghidra has on pre-existing configurations of Java that other software may rely on.
• If Ghidra failed to run because no versions of Java were on the PATH, a supported
JDK should be manually installed and added to the PATH. The following steps
outline how to add a JDK distribution to the operating system's PATH.
◦ Windows: Extract the JDK distribution (.zip file) to your desired location and
add the JDK's bin directory to your PATH:
3 de 10 02/10/2021 02:26
Ghidra Installation Guide https://htmlpreview.github.io/?https://github.com/NationalSecurityAge...
◦ Linux and macOS (OS X): Extract the JDK distribution (.tar.gz file) to your
desired location, and add the JDK's bin directory to your PATH:
vi ~/.bashrc
3. At the very end of the file, add the JDK bin directory to the PATH variable:
4. Save file
5. Restart any open terminal windows for changes to take effect
• In some cases, you may want Ghidra to launch with a specific version of Java instead
of the version that Ghidra automatically locates. To force Ghidra to launch with a
specific version of Java, set the JAVA_HOME_OVERRIDE property in the
support/launch.properties file. If this property is set to an incompatible version of
Java, Ghidra will revert to automatically locating a compatible version. Note that
some Java must still be on the PATH in order for Ghidra to use the
JAVA_HOME_OVERRIDE property. This limitation will be addressed in a future
version of Ghidra.
(Back to Top)
4 de 10 02/10/2021 02:26
Ghidra Installation Guide https://htmlpreview.github.io/?https://github.com/NationalSecurityAge...
(Back to Top)
Running Ghidra
GUI Mode
1. Navigate to <GhidraInstallDir>
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.
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.
5 de 10 02/10/2021 02:26
Ghidra Installation Guide https://htmlpreview.github.io/?https://github.com/NationalSecurityAge...
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.
(Back to Top)
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.
• Eclipse: The GhidraDev Eclipse plugin for a pre-existing Eclipse installation. For
information on installing and using the GhidraDev Eclipse plugin, see
<GhidraInstallDir>/Extensions/Eclipse/GhidraDev/GhidraDev_README.html.
• Ghidra: Ghidra extensions (formerly known as contribs). See Ghidra Extension
Notes for more information.
• IDAPro: IDAPro plugins/loaders for transferring items with Ghidra.
• Ghidra extensions are designed to be installed and uninstalled from the Ghidra front-
end GUI:
6 de 10 02/10/2021 02:26
Ghidra Installation Guide https://htmlpreview.github.io/?https://github.com/NationalSecurityAge...
To install an extension in these cases, simply extract the desired Ghidra extension
archive file(s) to the <GhidraInstallDir>/Ghidra/Extensions directory. For example,
on Linux or macOS:
cd <GhidraInstallDir>/Ghidra/Extensions
unzip ../../Extensions/Ghidra/<extension>.zip
(Back to Top)
Ghidra Development
Users can extend the functionality of Ghidra through the development of custom Ghidra
scripts, plugins, analyzers, etc.
NOTE: Eclipse is not provided with Ghidra. The GhidraDev Eclipse plugin is designed to
be installed in a pre-existing Eclipse installation.
(Back to Top)
7 de 10 02/10/2021 02:26
Ghidra Installation Guide https://htmlpreview.github.io/?https://github.com/NationalSecurityAge...
Upgrade Instructions
General Upgrade Instructions
(Back to Top)
8 de 10 02/10/2021 02:26
Ghidra Installation Guide https://htmlpreview.github.io/?https://github.com/NationalSecurityAge...
◦ Solution: The Ghidra launch script uses the Java runtime on the system PATH
to find a supported version of a Java Development Kit (JDK) that Ghidra needs
to complete its launch. Please see the Requirements section for what version of
JDK must be pre-installed for Ghidra to launch.
• Problem: Exited with error. Run in foreground (fg) mode for more details.
◦ Solution: Ghidra failed to launch in the background and the error message
describing the cause of the failure is being suppressed. Rerun Ghidra in the
foreground by setting the LAUNCH_MODE variable in the launch script you
ran to fg. Alternatively, you can use the <GhidraInstallDir>/support
/ghidraDebug script to run Ghidra in debug mode, which will also allow you to
see the error message as well as additional debug output. NOTE: By default,
running Ghidra in debug mode listens on 127.0.0.1:18001.
Using Ghidra
There are several ways you can get help with using Ghidra:
(Back to Top)
• Displaying the correct processor manual page for an instruction requires the
installation of Adobe Reader 8.0.x or later. Adobe broke the goto page in Reader
version 7.x. If a newer version of Reader is not installed, then the manual for the
processor will display at the top of the manual. Using an Adobe Reader version later
than 8.0.x works for most platforms, but some platforms and version of the reader
still have issues.
• Some actions may block the GUI update thread if they are long running.
• Project archives only store private and checked out files within the archive. Project
archives do not support server-based repositories.
• When using a Ghidra server, all clients and the server must have a valid Domain
Name Server (DNS) defined which has been properly configured on the network for
9 de 10 02/10/2021 02:26
Ghidra Installation Guide https://htmlpreview.github.io/?https://github.com/NationalSecurityAge...
Windows
• Older versions of 7-Zip may not be able to unpack the Ghidra distribution file if it
contains any files with a 0-byte length. Upgrade to a newer version of 7-Zip to fix
this problem.
• Ghidra will fail to launch when its path contains a "^" character.
Linux
• Ghidra may not display correctly when run from a Linux remote desktop session that
uses 32-bit color depth. Setting the remote desktop application's color depth to 24-bit
has been known to improve this issue.
• Some users have reported Ghidra GUI rendering issues on multi-monitor thin client
setups. These problems are attributed to reported bugs in Java, which will hopefully
be fixed in the future. Disabling the 2nd or 3rd monitor may be necessary to work
around the issue.
macOS (OS X)
• Building new Ghidra module extensions on macOS (OS X) using a network drive
(including a network-mapped home directory) throws a Java exception. This issue is
known to the Java/macOS community but a fix has not yet been released. See
<GhidraInstallDir>/Extensions/Eclipse/GhidraDev/GhidraDev_README.html for
more information on building Ghidra module extensions from Eclipse.
(Back to Top)
10 de 10 02/10/2021 02:26