@@ -49,6 +49,20 @@ if [ -z "$GHIDRA_INSTALL_DIR" ] ; then
49
49
fi
50
50
51
51
ProgName=$( basename $0 )
52
+
53
+ # Generate a unique temporary directory and project name
54
+ TEMP_DIR=$( mktemp -d)
55
+ TEMP_PROJ=" KaijuHeadlessProj_$$ _$( date +%s) "
56
+
57
+ # Cleanup function to remove temporary directory
58
+ cleanup () {
59
+ if [ -d " $TEMP_DIR " ]; then
60
+ rm -rf " $TEMP_DIR "
61
+ fi
62
+ }
63
+
64
+ # Set trap to cleanup on exit
65
+ trap cleanup EXIT
52
66
53
67
sub_help (){
54
68
echo " Usage: $ProgName <subcommand> [options]"
@@ -64,7 +78,7 @@ sub_help(){
64
78
}
65
79
66
80
sub_version (){
67
- $GHIDRA_INSTALL_DIR /support/analyzeHeadless /tmp tmpKaijuHeadlessProj -okToDelete -deleteProject -postScript KaijuVersionPrinterHeadless.java
81
+ $GHIDRA_INSTALL_DIR /support/analyzeHeadless $TEMP_DIR $TEMP_PROJ -okToDelete -deleteProject -postScript KaijuVersionPrinterHeadless.java
68
82
}
69
83
70
84
sub_fn2hash (){
@@ -89,7 +103,7 @@ sub_fn2hash(){
89
103
* )
90
104
echo " Running 'fn2hash' subcommand."
91
105
echo " First arg is '$1 '."
92
- $GHIDRA_INSTALL_DIR /support/analyzeHeadless /tmp tmpKaijuHeadlessProj -okToDelete -deleteProject -import $1 -preScript KaijuSetupScript.java -postScript KaijuExportCSVHeadless.java $1 .FnHashes.csv
106
+ $GHIDRA_INSTALL_DIR /support/analyzeHeadless $TEMP_DIR $TEMP_PROJ -okToDelete -deleteProject -import $1 -preScript KaijuSetupScript.java -postScript KaijuExportCSVHeadless.java $1 .FnHashes.csv
93
107
;;
94
108
esac
95
109
}
@@ -116,7 +130,7 @@ sub_fn2yara(){
116
130
* )
117
131
echo " Running 'fn2yara' subcommand."
118
132
echo " First arg is '$1 '."
119
- $GHIDRA_INSTALL_DIR /support/analyzeHeadless /tmp tmpKaijuHeadlessProj -okToDelete -deleteProject -import $1 -preScript KaijuSetupScript.java -postScript KaijuExportYaraHeadless.java $1 .yara
133
+ $GHIDRA_INSTALL_DIR /support/analyzeHeadless $TEMP_DIR $TEMP_PROJ -okToDelete -deleteProject -import $1 -preScript KaijuSetupScript.java -postScript KaijuExportYaraHeadless.java $1 .yara
120
134
;;
121
135
esac
122
136
}
@@ -143,7 +157,7 @@ sub_xrefs(){
143
157
* )
144
158
echo " Running 'xrefs' subcommand."
145
159
echo " First arg is '$1 '."
146
- $GHIDRA_INSTALL_DIR /support/analyzeHeadless /tmp tmpKaijuHeadlessProj -okToDelete -deleteProject -import $1 -preScript KaijuSetupScript.java -postScript KaijuExportXrefsToCSVHeadless.java $1 .Xref.csv
160
+ $GHIDRA_INSTALL_DIR /support/analyzeHeadless $TEMP_DIR $TEMP_PROJ -okToDelete -deleteProject -import $1 -preScript KaijuSetupScript.java -postScript KaijuExportXrefsToCSVHeadless.java $1 .Xref.csv
147
161
;;
148
162
esac
149
163
}
@@ -170,7 +184,7 @@ sub_ghihorn(){
170
184
* )
171
185
echo " Running 'ghihorn' subcommand."
172
186
echo " First arg is '$1 '."
173
- $GHIDRA_INSTALL_DIR /support/analyzeHeadless /tmp tmpKaijuHeadlessProj -okToDelete -deleteProject -import $1 -preScript KaijuSetupScript.java -postScript GhiHornHeadlessTool.java
187
+ $GHIDRA_INSTALL_DIR /support/analyzeHeadless $TEMP_DIR $TEMP_PROJ -okToDelete -deleteProject -import $1 -preScript KaijuSetupScript.java -postScript GhiHornHeadlessTool.java
174
188
;;
175
189
esac
176
190
}
0 commit comments