@@ -49,6 +49,20 @@ if [ -z "$GHIDRA_INSTALL_DIR" ] ; then
4949fi
5050
5151ProgName=$( 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
5266
5367sub_help (){
5468 echo " Usage: $ProgName <subcommand> [options]"
@@ -64,7 +78,7 @@ sub_help(){
6478}
6579
6680sub_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
6882}
6983
7084sub_fn2hash (){
@@ -89,7 +103,7 @@ sub_fn2hash(){
89103 * )
90104 echo " Running 'fn2hash' subcommand."
91105 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
93107 ;;
94108 esac
95109}
@@ -116,7 +130,7 @@ sub_fn2yara(){
116130 * )
117131 echo " Running 'fn2yara' subcommand."
118132 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
120134 ;;
121135 esac
122136}
@@ -143,7 +157,7 @@ sub_xrefs(){
143157 * )
144158 echo " Running 'xrefs' subcommand."
145159 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
147161 ;;
148162 esac
149163}
@@ -170,7 +184,7 @@ sub_ghihorn(){
170184 * )
171185 echo " Running 'ghihorn' subcommand."
172186 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
174188 ;;
175189 esac
176190}
0 commit comments