Skip to content

Commit

Permalink
fixup README
Browse files Browse the repository at this point in the history
  • Loading branch information
mike-hunhoff committed Jan 27, 2024
1 parent 4bf99b7 commit 36569d4
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 20 deletions.
21 changes: 1 addition & 20 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Ghidrathon

[![License](https://img.shields.io/badge/license-Apache--2.0-green.svg)](LICENSE.txt)
[![CI](https://github.com/mandiant/ghidrathon/actions/workflows/tests.yml/badge.svg)](https://github.com/mandiant/ghidrathon/actions/workflows/tests.yml)

Ghidrathon is a Ghidra extension that adds Python 3 scripting capabilities to Ghidra. Why? Ghidra natively supports scripting in Java and Jython. Unfortunately, many open-source analysis tools, like [capa](https://github.com/mandiant/capa), [Unicorn Engine](https://github.com/unicorn-engine/unicorn), [angr](https://github.com/angr/angr), etc., are written in Python 3 making it difficult, and in some cases, impossible to use these tools in Ghidra. More so the security community has released several great plugins for other SRE frameworks like IDA Pro and Binary Ninja, but again, because many of these plugins use Python 3 it is difficult to port them to Ghidra. Ghidrathon helps you use existing and develop new Python 3 tooling in Ghidra and script Ghidra using modern Python in a way that tightly integrates with Ghidra's UI.

Expand Down Expand Up @@ -113,26 +114,6 @@ You can switch Ghidrathon to use a different Python interpreter by running `ghid

Ghidrathon supports Python virtual environments. To use a Python virtual environment, complete steps `1` and `2` using the Python interpreter that is configured for your environment. Do the same when running `ghidrathon_configure.py` to switch the Ghidrathon to use a different interpreter.

## Building Ghidrathon

### Requirements

Tool | Version |Source |
|---|---|---|
| Ghidrathon | `>= 4.0.0` | https://github.com/mandiant/Ghidrathon/releases |
| Ghidra | `>= 10.3.2` | https://github.com/NationalSecurityAgency/ghidra/releases |
| Java | `>= 17.0.0` | https://adoptium.net/temurin/releases/ |
| Gradle | `>= 7.3` | https://gradle.org/releases |

Use the following steps to build Ghidrathon:
1. Download the [supported Jep JAR release](https://github.com/ninia/jep/releases/download/v4.2.0/jep-4.2.0.jar) to `<absolute_path_to_ghidrathon_source_dir>\lib`
2. Execute gradle from `<absolute_path_to_ghidrathon_source_dir>`:
```
$ gradle -PGHIDRA_INSTALL_DIR=<absolute_path_to_Ghidra_install_dir>
```

The extension is stored in `<absolute_path_to_ghidrathon_source_dir>\dist`.

## Considerations

Ghidrathon uses the open-source library [Jep](https://github.com/ninia/jep) which uses the Java Native Interface (JNI) to embed Python in the JVM. The Ghidra developers advise against JNI in Ghidra for reasons discussed [here](https://github.com/NationalSecurityAgency/ghidra/issues/175).
21 changes: 21 additions & 0 deletions doc/building.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Building Ghidrathon

## Building Ghidrathon

### Requirements

Tool | Version |Source |
|---|---|---|
| Ghidrathon | `>= 4.0.0` | https://github.com/mandiant/Ghidrathon/releases |
| Ghidra | `>= 10.3.2` | https://github.com/NationalSecurityAgency/ghidra/releases |
| Java | `>= 17.0.0` | https://adoptium.net/temurin/releases/ |
| Gradle | `>= 7.3` | https://gradle.org/releases |

Use the following steps to build Ghidrathon:
1. Download the [supported Jep JAR release](https://github.com/ninia/jep/releases/download/v4.2.0/jep-4.2.0.jar) to `<absolute_path_to_ghidrathon_source_dir>\lib`
2. Execute gradle from `<absolute_path_to_ghidrathon_source_dir>`:
```
$ gradle -PGHIDRA_INSTALL_DIR=<absolute_path_to_Ghidra_install_dir>
```

The extension is stored in `<absolute_path_to_ghidrathon_source_dir>\dist`.

0 comments on commit 36569d4

Please sign in to comment.