You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+9-16Lines changed: 9 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,33 +13,26 @@ Follow normal Ghidra extension installation procedures. Copy the CodeCut and De
13
13
**NOTE:** After restarting and loading a CodeBrowser window, Ghidra will tell you it has found new plugins and ask if you want to configure them. Only CodeCut shows up in this window. This is because DeepCut is a "one-shot" analyzer (it is still installed).
Both CodeCut and DeepCut rely on native Python (outside of Ghidra) on your system. CodeCut uses native Python for guessing module names. DeepCut's model evaluation runs in native Python.
16
+
Both CodeCut and DeepCut rely on the native PyGhidra extension, and are not compatible with Jython. CodeCut uses native Python for guessing module names. DeepCut's model inference runs in native Python.
17
17
18
18
### Native Python Dependencies
19
+
19
20
CodeCut:
20
21
- nltk
21
22
22
23
DeepCut:
23
24
- torch
24
25
- torch-geometric
26
+
- networkx
27
+
- scipy
25
28
26
-
To install dependencies run:
27
-
28
-
```
29
-
pip3 install nltk
30
-
pip3 install torch torch-geometric
29
+
To install dependencies, run:
30
+
```bash
31
+
pip install nltk
32
+
pip install torch torch-geometric networkx scipy
31
33
```
34
+
using the Python installation linked to your PyGhidra.
32
35
33
-
(assuming that pip3 points to the version of Python you plan to use below)
34
-
35
-
### Configuring CodeCut Python Path
36
-

37
-
Configure the native Python path for CodeCut by choosing **Edit -> Tool Options** and selecting "Python Executable."
38
-
39
-
### Configuring DeepCut Python Path
40
-

41
-
42
-
Configure the native Python path for DeepCut by choosing **Analysis -> Analyze All Open...** and selecting **Deepcut (Prototype)**. After changing the path, click the **Apply** button.
43
36
44
37
## Running DeepCut Analysis
45
38
DeepCut is best run as a one-shot analyzer *after* initial auto-analysis. Select **Analysis -> One Shot -> Deepcut**. After DeepCut runs, you can view the results by looking at the **Namespace** field in the **Symbol Table** view.
Copy file name to clipboardExpand all lines: codecut-gui/README.md
+5-6Lines changed: 5 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,7 +3,7 @@
3
3
4
4
## Building and Installation
5
5
6
-
Requirements are the same as the Ghidra build requirements, currently JDK 17 (or newer) is required for Ghidra 10.2.
6
+
Requirements are the same as the Ghidra build requirements, currently JDK 21 (or newer) is required for Ghidra 11.
7
7
8
8
Ghidra's standard Gradle build system is used. Set the `GHIDRA_INSTALL_DIR` environment variable before building, or set it as a Gradle property (useful for building in an IDE).
The CodeCut GUI's Module Name Guessing tool requires Python 3. Before running the tool, you may need to modify the Python Path of the tool. To do this, **Edit -> Tool Options -> Python Executable**. Insert path to your Python 3 executable. Click apply and ok.
25
+
CodeCut GUIrequires the PyGhidra extension, and is not compatible with Jython.
26
26
27
-
### Install nltk
28
-
This module depends on the Python 3 dependency `nltk`. Run the following command to install:
29
-
```
27
+
The CodeCut GUI's Module Name Guessing tool requires the Python dependency [Natural Language ToolKit](https://www.nltk.org/). CodeCut attempts to automatically install the dependency when the tool is launched, but it can also be installed using the Python associated with PyGhidra by running:
Copy file name to clipboardExpand all lines: deepcut-ghidra/README.md
+10-31Lines changed: 10 additions & 31 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -30,39 +30,18 @@ used by your Ghidra installation. If you have multiple Java runtime
30
30
environments installed, select the correct JRE by setting the
31
31
`JAVA_HOME` environment variable before building.
32
32
33
-
### Native Python 3
34
-
The Deepcut graph based machine learning model needs Python 3 to
35
-
execute (outside of Ghidra). The analyzer calls an external Python
36
-
process to execute the model on a graph representation of the binary.
37
-
There are no GPU requirements since the model converge quickly even
38
-
running in CPU mode.
39
-
40
-
#### Python 3 Path
41
-
By default the analyzer use the command `/usr/local/bin/python3` to
42
-
execute the deepcut python script. This setting can be changed in the
43
-
Analysis Options menu **Analysis -> Analyze All Open...** To change the
44
-
setting you need to click the checkbox next to **Deepcut (Prototype)**
45
-
first.
46
-
47
-
#### Dependencies
48
-
Deepcut has the following Python 3 dependencies:
49
-
50
-
- torch 1.7.1
51
-
- torch-geometric 1.6.3
52
-
- torch-cluster 1.5.8
53
-
- torch-sparse 0.6.8
54
-
- torch-scatter 2.0.5
55
-
- torch-spline-conv 1.2.0
56
-
57
-
To install the dependencies:
58
-
33
+
#### ### PyGhidra and Dependencies
34
+
35
+
DeepCut requires the PyGhidra extension, and is not compatible with Jython. It uses [PyTorch Geometric](https://pytorch-geometric.readthedocs.io/) to perform machine learning on the function call graph. It has the following Python 3 dependencies:
36
+
- torch
37
+
- torch-geometric
38
+
- networkx
39
+
- scipy
40
+
DeepCut attempts to automatically install the dependencies when the tool is launched, but they can also be installed using the Python associated with PyGhidra by running:
0 commit comments