diff options
author | Malfurious <m@lfurio.us> | 2022-03-15 23:04:16 -0400 |
---|---|---|
committer | Malfurious <m@lfurio.us> | 2022-03-17 03:48:43 -0400 |
commit | d7c7c96b4ff932078d0399b5ec6b4f8b8d87f43e (patch) | |
tree | 303a890a9ca7e397ef7494021841846e3cec3fa0 | |
parent | 3eafa76164fcbd9eafece7cf51fcaf61bffca1c3 (diff) | |
download | sploit-d7c7c96b4ff932078d0399b5ec6b4f8b8d87f43e.tar.gz sploit-d7c7c96b4ff932078d0399b5ec6b4f8b8d87f43e.zip |
sploit: Clean up use of __getattribute__
__getattribute__ is the low-level magic func and will intercept every
attribute lookup, whereas __getattr__ is high-level, and is only invoked
in specific conditions (such as __getattribute__'s failure).
As such, any overload of __getattribute__ which preferentially falls
back to object.__getattribute__() before serving a request, can more
simply be replaced by a __getattr__ overload without the fallback.
Signed-off-by: Malfurious <m@lfurio.us>
Signed-off-by: dusoleil <howcansocksbereal@gmail.com>
-rw-r--r-- | sploit/rev/elf.py | 5 | ||||
-rw-r--r-- | sploit/util.py | 8 |
2 files changed, 1 insertions, 12 deletions
diff --git a/sploit/rev/elf.py b/sploit/rev/elf.py index 7bfd31f..e099819 100644 --- a/sploit/rev/elf.py +++ b/sploit/rev/elf.py @@ -1,5 +1,4 @@ from sploit.rev import ldd, r2 -from sploit.util import __attr_filter__ class ELF: def __init__(self, path): @@ -38,9 +37,7 @@ class ELF: class __LOCALS__: def __init__(self, elf): self.elf = elf - def __getattribute__(self, sym): - if(sym in (['elf'] + __attr_filter__)): - return object.__getattribute__(self,sym) + def __getattr__(self, sym): return r2.get_locals(self.elf.path, getattr(self.elf.sym, sym)) def retaddr(self, caller, callee): diff --git a/sploit/util.py b/sploit/util.py index 8a259c4..c44ab78 100644 --- a/sploit/util.py +++ b/sploit/util.py @@ -12,11 +12,3 @@ def run_cmd_cached(cmd): result = run_cmd(cmd) __RUN_CACHE__[key] = result return result - -__attr_filter__ = ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', - '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', - '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', - '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', - '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', - '__weakref__'] - |