about summary refs log tree commit diff
diff options
context:
space:
mode:
authorYour <you@example.com>2023-08-30 17:17:55 +0100
committerYour Name <you@example.com>2023-08-30 17:17:55 +0100
commite4b408932d50c278f3dcd1612a44647512218a6f (patch)
treebdc52ef01f7c7d05931054118cef48e97161783b
parent1fe27eb9cd7dc108b5c66bec0ac14c541973b55b (diff)
downloadafl++-e4b408932d50c278f3dcd1612a44647512218a6f.tar.gz
Fix detection of DSO
-rwxr-xr-xfrida_mode/util/frida_get_symbol_addr.sh3
1 files changed, 2 insertions, 1 deletions
diff --git a/frida_mode/util/frida_get_symbol_addr.sh b/frida_mode/util/frida_get_symbol_addr.sh
index fb0002b7..2e682255 100755
--- a/frida_mode/util/frida_get_symbol_addr.sh
+++ b/frida_mode/util/frida_get_symbol_addr.sh
@@ -31,12 +31,13 @@ file=$(file $target|sed 's/.*: //')
 arch=$(echo $file|awk -F, '{print$2}'|tr -d ' ')
 bits=$(echo $file|sed 's/-bit .*//'|sed 's/.* //')
 pie=$(echo $file|grep -wqi pie && echo pie)
+dso=$(echo $file|grep -wqi "shared object" && echo dso)
 
 test $(uname -s) = "Darwin" && symbol=_"$symbol"
 tmp_addr=$(nm "$target" | grep -i "T $symbol" | awk '{print$1}' | tr a-f A-F)
 
 test -z "$tmp_addr" && { echo Error: function $symbol not found 1>&2; exit 1; }
-test -z "$pie" && { echo 0x$tmp_addr; exit 0; }
+test -z "$pie" && test -z "$dso" && { echo 0x$tmp_addr; exit 0; }
 
 test -z "$base" && {
   test "$bits" = 32 -o "$bits" = 64 || { echo "Error: could not identify arch (bits=$bits)" 1>&2 ; exit 1; }