summaryrefslogtreecommitdiffstats
path: root/sploit/rev/gadget.py
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--sploit/rev/gadget.py23
1 files changed, 6 insertions, 17 deletions
diff --git a/sploit/rev/gadget.py b/sploit/rev/gadget.py
index a2564c0..cc69723 100644
--- a/sploit/rev/gadget.py
+++ b/sploit/rev/gadget.py
@@ -1,35 +1,24 @@
from dataclasses import dataclass, field
+from sploit.types.index_entry import IndexEntry
@dataclass
-class Gadget:
+class Gadget(IndexEntry):
"""
Basic gadget description object
- offset (int): The location this gadget is found at. What `offset` is
- relative to depends on context.
+ base (int): The location this gadget is found at. What `base` is relative
+ to depends on context.
asm (list[re.Match]): A list of assembly instructions matched by the gadget
search query.
"""
- offset: int = 0
+ base: int = 0
asm: list = field(default_factory=list)
- def __index__(self):
- """Convert object to integer using offset value."""
- return self.offset
-
- def __add__(self, x):
- """Return new object with adjusted offset."""
- return Gadget(self.offset + x, self.asm)
-
- def __sub__(self, x):
- """Return new object with adjusted offset."""
- return self + (-x)
-
def __repr__(self):
"""Return human-readable Gadget."""
- s = hex(self.offset)
+ s = hex(self.base)
if len(self.asm) > 0:
asm = "; ".join([ m.string for m in self.asm ])
s += f", '{asm}'"