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
CodeCut allows a user to assign functions to object files in Ghidra, and then interact with the binary at the object file level. Functions are assigned to object files by setting the `Namespace` field in the Ghidra database. DeepCut attempts to establish initial object file boundaries which the user can then adjust using the CodeCut Table window.
7
+
8
+
## Plugin Installation
9
+
Follow normal Ghidra extension installation procedures. Copy the CodeCut and DeepCut extension zip into `$GHIDRA_INSTALL_DIR/Extensions` then in the main Ghidra window selection **File -> Install Extensions** and select the CodeCut and DeepCut boxes. Ghidra will tell you it needs to restart.
10
+
11
+
**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.
(assuming that pip3 points to the version of Python you plan to use below)
36
+
37
+
### Configuring CodeCut Python Path
38
+

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

44
+
45
+
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.
46
+
47
+
## Running DeepCut Analysis
48
+
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.
49
+
50
+
## Using CodeCut
51
+

52
+
53
+
After DeepCut runs, you can interact at an object file level with the **CodeCut Table** view. Select **Window -> CodeCut Table** You can have CodeCut guess the module names (based on string references) by choosing **Analysis -> Guess Module Names** in the CodeCut Table window. You can split/combine object files by right clicking on an object and choosing "Split Namespace Here" / "Combine Namespaces." You can move functions between object files (changing the boundaries of the object files) by dragging and dropping them.
54
+
55
+
## Building
56
+
Specific build instructions are provided in the DeepCut and CodeCut subfolders.
Copy file name to clipboardExpand all lines: codecut-gui/README.md
+2-3Lines changed: 2 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,10 +1,9 @@
1
-
# CodeCut / DeepCut GUI Plugin
2
1
3
-
Ghidra Plugin for DeepCut / CodeCut GUI
2
+
# Ghidra Plugin for CodeCut GUI
4
3
5
4
## Building and Installation
6
5
7
-
JDK 11 (or newer) and Ghidra 9.1.0 (or newer) are required.
6
+
Requirements are the same as the Ghidra build requirements, currently JDK 17 (or newer) is required for Ghidra 10.2.
8
7
9
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).
0 commit comments