diff options
Diffstat (limited to 'userspace/cuda/570.144/scripts/ghidra_analyze.sh')
| -rwxr-xr-x | userspace/cuda/570.144/scripts/ghidra_analyze.sh | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/userspace/cuda/570.144/scripts/ghidra_analyze.sh b/userspace/cuda/570.144/scripts/ghidra_analyze.sh new file mode 100755 index 0000000..b844300 --- /dev/null +++ b/userspace/cuda/570.144/scripts/ghidra_analyze.sh @@ -0,0 +1,37 @@ +#!/bin/bash +# SPDX-License-Identifier: BSD-3-Clause +# +# ghidra_analyze.sh - import a library into a Ghidra project and run the full +# auto-analysis once. The project is kept, so later decompilations are cheap: +# +# scripts/ghidra_decompile_project.sh <hex-vaddr> [outfile] +# +# Full analysis of a ~70 MB library can take a long time; run it in the +# background and log to run/ghidra-analyze.log. +# +# Usage: scripts/ghidra_analyze.sh <binary> +# env: GHIDRA_HOME (default /snap/ghidra/current/ghidra) +# PROJECT_DIR (default ../run/ghidra-proj) +# PROJECT_NAME (default cuda-analysis) +set -e + +HERE="$(cd "$(dirname "$0")" && pwd)" +ROOT="$(cd "$HERE/.." && pwd)" +RUN="$ROOT/run" +BIN="${1:?usage: $0 <binary>}" + +GHIDRA_HOME="${GHIDRA_HOME:-/snap/ghidra/current/ghidra}" +ANALYZE="$GHIDRA_HOME/support/analyzeHeadless" +PROJECT_DIR="${PROJECT_DIR:-$RUN/ghidra-proj}" +PROJECT_NAME="${PROJECT_NAME:-cuda-analysis}" + +[ -x "$ANALYZE" ] || { echo "analyzeHeadless not found at $ANALYZE"; exit 1; } +mkdir -p "$PROJECT_DIR" + +echo "[*] importing + analyzing $BIN (this can take a long time)" +"$ANALYZE" "$PROJECT_DIR" "$PROJECT_NAME" \ + -import "$BIN" \ + -overwrite \ + -scriptPath "$ROOT/ghidra" \ + -analysisTimeoutPerFile 0 +echo "[ok] analysis complete"
\ No newline at end of file |
