summaryrefslogtreecommitdiffstats
path: root/sploit/rev
diff options
context:
space:
mode:
Diffstat (limited to 'sploit/rev')
-rw-r--r--sploit/rev/elf.py12
-rw-r--r--sploit/rev/ldd.py5
-rw-r--r--sploit/rev/r2.py4
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 = {}