Ghidra Extensions

Ghidra Extensions are Ghidra software modules that can be installed into a Ghidra distribution. This allows users to create and share new plugins and scripts. Ghidra ships with some pre-built extensions that not installed by default.

Ghidra Extensions can be installed and uninstalled at runtime, with the changes taking effect when Ghidra is restarted. The extension installation dialog can be opened by selecting the Install Extensions option on the project File menu.



Dialog Components

Extensions Table

The list of extensions is populated when the dialog is launched. To build the list, Ghidra looks in several locations:

The color red is used in the table to indicate that the extension version does not match the Ghidra version.

Note: Extensions that have been installed directly into the Ghidra installation directory cannot be uninstalled from this dialog. They must be manually removed from the filesystem.

Description Panel

Displays metadata about the extension selected in the Extensions List. The information displayed is extracted from the extensions.properties file associated with the extension.

The existence of this file is what tells Ghidra that the folder or zip file is a Ghidra Extension. It is a simple property file that can contain the following attributes:

Tools Panel

Building Extensions

An extension is simply a Ghidra module that contains an extension.properties file. Building an extension is very similar to building a ghidra module, which is done by using gradle.

Ghidra includes a Skeleton module in the distribution that is meant to be used as a template when creating extensions. This module can be found at

<GHIDRA_INSTALL_DIR>/Extensions/Ghidra

Copy and rename this directory to get started writing your own module. You can then use gradle to build the extension by running this command from within your extension directory:

gradle -PGHIDRA_INSTALL_DIR=/path/to/ghidra/ghidra_<version>/ buildExtension




Related Topics: