about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoey Jiao <joeyjiaojg@163.com>2021-01-14 21:47:00 +0800
committerJoey Jiao <joeyjiaojg@163.com>2021-01-20 15:46:41 +0800
commit6dc20fc298c28658ea988a74eb7d400115a3f78a (patch)
tree7da6adbcd21aeb138e26facd87197eb2b23d5b94
parent868ef6c10c8137e0085789452a84435cd6b72f2f (diff)
downloadafl++-6dc20fc298c28658ea988a74eb7d400115a3f78a.tar.gz
afl_frida: fix target lib
-rw-r--r--utils/afl_frida/afl-frida.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/utils/afl_frida/afl-frida.c b/utils/afl_frida/afl-frida.c
index 89a5b932..4a99d6ed 100644
--- a/utils/afl_frida/afl-frida.c
+++ b/utils/afl_frida/afl-frida.c
@@ -206,9 +206,17 @@ int main(int argc, char** argv) {
 
   GumStalker *stalker = gum_stalker_new();
 
-  GumAddress     base_address = gum_module_find_base_address(TARGET_LIBRARY);
+  GumAddress     base_address;
+  if (argc > 2)
+    base_address = gum_module_find_base_address(argv[1]);
+  else
+    base_address = gum_module_find_base_address(TARGET_LIBRARY);
   GumMemoryRange code_range;
-  gum_module_enumerate_ranges(TARGET_LIBRARY, GUM_PAGE_RX, enumerate_ranges,
+  if (argc > 2)
+    gum_module_enumerate_ranges(argv[1], GUM_PAGE_RX, enumerate_ranges,
+                              &code_range);
+  else
+    gum_module_enumerate_ranges(TARGET_LIBRARY, GUM_PAGE_RX, enumerate_ranges,
                               &code_range);
 
   guint64 code_start = code_range.base_address;
@@ -219,7 +227,11 @@ int main(int argc, char** argv) {
          base_address, code_start, code_end);
   if (!code_start || !code_end) {
 
-    fprintf(stderr, "Error: no valid memory address found for %s\n",
+    if (argc > 2)
+      fprintf(stderr, "Error: no valid memory address found for %s\n",
+            argv[1]);
+    else
+      fprintf(stderr, "Error: no valid memory address found for %s\n",
             TARGET_LIBRARY);
     exit(-1);