summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--nsploit/rev/r2.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/nsploit/rev/r2.py b/nsploit/rev/r2.py
index f4f2a5e..765d2a7 100644
--- a/nsploit/rev/r2.py
+++ b/nsploit/rev/r2.py
@@ -12,6 +12,10 @@ import re
def run_cmd(binary,cmd):
return run_cmd_cached(['r2','-q','-c',cmd,'-e','scr.color=false','-e','rop.len=10','-e','search.in=io.maps.x',binary])
+def __fixup_sym(name):
+ prefix = "imp."
+ return name[len(prefix):] if name.startswith(prefix) else name
+
def get_elf_symbols(elf):
ilog(f'Retrieving symbols of {elf} with r2...')
@@ -24,7 +28,7 @@ def get_elf_symbols(elf):
syms = [s for s in syms if s['type'] in ['OBJ', 'FUNC', 'NOTYPE']]
plt = [s for s in syms if s['is_imported']]
- plt = {sym['realname']:sym['vaddr'] for sym in plt}
+ plt = {__fixup_sym(sym['realname']):sym['vaddr'] for sym in plt}
plt = Symtbl(base=sect.get('.plt',0), **plt)
syms = [s for s in syms if not s['is_imported']]