Enables plugins for Ghidra implemented in python.
Project description
PyGhidra Decaf
Java-free Python plugin loading for Ghidra
Enables pure Python Ghidra plugins to be implemented by handling the boilerplate JPype glue code to connect the Java and Python side plugin implementations.
Prerequisites
- Ghidra 11.0+ with PyGhidra installed (PyGhidra is included in the Ghidra distribution by default)
- Python 3.10+
Installation
- Activate (or create) the venv that will be used to run ghidra
- Install
pyghidra_decaf(pip install pyghidra_decaf) - Run ghidra
pyghidra --gui --install-dir /path/to/ghidra/install(for example ~/ghidra/ghidra_11_3_2_PUBLIC) - You'll be prompted to enable a new plugin, confirm that. If not, open File -> Install Extensions and enable "Pyghidra Decaf"
Installing Decaf plugins
- Activate the venv you previously set up with pyghidra_decaf
- Install the python module for the Decaf plugin (e.g.
pip install <your-decaf-plugin>) - Run ghidra
pyghidra --gui --install-dir /path/to/ghidra/install(for example ~/ghidra/ghidra_11_3_2_PUBLIC) - You'll be prompted to enable a new plugin, confirm that. If not, open File -> Install Extensions and enable "Pyghidra Decaf"
Troubleshooting
Plugin doesn't appear in Ghidra after installation
- Verify you're using Ghidra 11.0 or later. Older versions may not have PyGhidra bundled.
- Rerun
pyghidra --gui --install-dir /path/to/ghidra/installto trigger the bootstrap process. - Check that extension files were created:
ls -la ~/.config/ghidra/*/Extensions/
ImportError: jpype not found
- Ensure you're using the same Python virtual environment that Ghidra runs from. PyGhidra bundles JPype, but it must be loaded in the same venv context.
- Verify venv activation:
which pythonshould point to your plugin venv, not system Python.
Java class not found: myplugin.plugin.MyPlugin
- Verify the
decaf.loadentry point name matches your actual plugin class name. - The fully qualified name in the error message must match the first element of the tuple returned by your
decaf_load()function.
For more detailed help, see the Plugin Development Guide and Architecture Guide in the main repository.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyghidra_decaf-0.3.0.tar.gz.
File metadata
- Download URL: pyghidra_decaf-0.3.0.tar.gz
- Upload date:
- Size: 63.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee5056107ee474412b0fc0e012a27bfc6bed33fec2326c2fb179fa4b4f72e1cc
|
|
| MD5 |
60cf13b42a21161388a24e6caba2eea8
|
|
| BLAKE2b-256 |
83069c3c0c40ddfa596b73b15a767e4466d253b08948b4e9739a1347003e91f3
|
Provenance
The following attestation bundles were made for pyghidra_decaf-0.3.0.tar.gz:
Publisher:
release.yml on nightwing-us/pyghidra-decaf
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyghidra_decaf-0.3.0.tar.gz -
Subject digest:
ee5056107ee474412b0fc0e012a27bfc6bed33fec2326c2fb179fa4b4f72e1cc - Sigstore transparency entry: 1607377978
- Sigstore integration time:
-
Permalink:
nightwing-us/pyghidra-decaf@79453fb19db641302afa73e8f0e8a4cb5c636e4c -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/nightwing-us
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@79453fb19db641302afa73e8f0e8a4cb5c636e4c -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyghidra_decaf-0.3.0-py3-none-any.whl.
File metadata
- Download URL: pyghidra_decaf-0.3.0-py3-none-any.whl
- Upload date:
- Size: 38.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
da17270f986579ab212896cfad0de746d09e61887a06697bd48d1e79f6504b3e
|
|
| MD5 |
1aa0964383a33b7ffd00be5e27be6034
|
|
| BLAKE2b-256 |
99f63aaaabe1aff248f00b05ff984b4d1e1bba25b9c274e5002ac81ac494fa15
|
Provenance
The following attestation bundles were made for pyghidra_decaf-0.3.0-py3-none-any.whl:
Publisher:
release.yml on nightwing-us/pyghidra-decaf
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyghidra_decaf-0.3.0-py3-none-any.whl -
Subject digest:
da17270f986579ab212896cfad0de746d09e61887a06697bd48d1e79f6504b3e - Sigstore transparency entry: 1607378160
- Sigstore integration time:
-
Permalink:
nightwing-us/pyghidra-decaf@79453fb19db641302afa73e8f0e8a4cb5c636e4c -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/nightwing-us
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@79453fb19db641302afa73e8f0e8a4cb5c636e4c -
Trigger Event:
push
-
Statement type: