diff options
Diffstat (limited to 'sploit/rev')
-rw-r--r-- | sploit/rev/elf.py | 12 | ||||
-rw-r--r-- | sploit/rev/ldd.py | 5 | ||||
-rw-r--r-- | sploit/rev/r2.py | 4 |
3 files changed, 6 insertions, 15 deletions
diff --git a/sploit/rev/elf.py b/sploit/rev/elf.py index d9edd40..1957c15 100644 --- a/sploit/rev/elf.py +++ b/sploit/rev/elf.py @@ -1,16 +1,6 @@ from sploit.rev import ldd, r2 -__ELF_CACHE__ = {} - -def ELF(path): - if path in __ELF_CACHE__: - return __ELF_CACHE__[path] - else: - elf = __ELF__(path) - __ELF_CACHE__[path] = elf - return elf - -class __ELF__: +class ELF: def __init__(self, path): self.path = path self.sym = r2.get_elf_symbols(self.path) diff --git a/sploit/rev/ldd.py b/sploit/rev/ldd.py index 60306f1..d162207 100644 --- a/sploit/rev/ldd.py +++ b/sploit/rev/ldd.py @@ -1,9 +1,10 @@ +from sploit.util import run_cmd_cached + import re -from subprocess import run from collections import namedtuple as nt def get_libraries(elf): - out = run(['ldd',elf],capture_output=True).stdout.decode('utf-8').split('\n')[:-1] + out = run_cmd_cached(['ldd',elf]) out = [re.split(r'\s+',lib)[1:] for lib in out] Lib = nt("Lib", "name path addr") out = {l[0]:Lib(l[0],l[0] if l[0][0]=='/' else l[2] if l[1]=='=>' else None,l[-1]) for l in out} diff --git a/sploit/rev/r2.py b/sploit/rev/r2.py index af0fe24..c7a8a65 100644 --- a/sploit/rev/r2.py +++ b/sploit/rev/r2.py @@ -1,12 +1,12 @@ from sploit.mem import Symtbl from sploit.arch import arch +from sploit.util import run_cmd_cached import re -from subprocess import run from collections import namedtuple as nt def run_cmd(binary,cmd): - return run(['r2','-q','-c',cmd,'-e','scr.color=false',binary],capture_output=True).stdout.decode('utf-8').split('\n')[:-1] + return run_cmd_cached(['r2','-q','-c',cmd,'-e','scr.color=false',binary]) def get_elf_symbols(elf): out = {} |