diff options
author | dusoleil <howcansocksbereal@gmail.com> | 2021-09-02 00:03:59 -0400 |
---|---|---|
committer | dusoleil <howcansocksbereal@gmail.com> | 2021-09-02 00:03:59 -0400 |
commit | 4cece8dbed674ab6d361cdb7a440981c90ed4de5 (patch) | |
tree | 5f9862c904faeed754827b203ab0ab07bd50ea91 | |
parent | 72646d6f197910c2a8c424fc2e769d03d0b5a332 (diff) | |
download | sploit-4cece8dbed674ab6d361cdb7a440981c90ed4de5.tar.gz sploit-4cece8dbed674ab6d361cdb7a440981c90ed4de5.zip |
Add arch config module
Add Arch class which specifies wordsize, endianness, alignment, and a
nop code for an architecture.
Add a couple predefined architectures for x86 and x86_64
Add a "configured" architecture which is set to x86_64 by default.
Added btoi and itob functions which will convert to and from bytes and
ints based on the current architecture config
Signed-off-by: dusoleil <howcansocksbereal@gmail.com>
Diffstat (limited to '')
-rw-r--r-- | sploit/__init__.py | 2 | ||||
-rw-r--r-- | sploit/arch.py | 28 |
2 files changed, 29 insertions, 1 deletions
diff --git a/sploit/__init__.py b/sploit/__init__.py index c90b980..d9ea6b0 100644 --- a/sploit/__init__.py +++ b/sploit/__init__.py @@ -1 +1 @@ -__all__ = ["log","comm","until"] +__all__ = ["log","comm","until","arch"] diff --git a/sploit/arch.py b/sploit/arch.py new file mode 100644 index 0000000..d75bbda --- /dev/null +++ b/sploit/arch.py @@ -0,0 +1,28 @@ +def btoi(b, signed=False): + return int.from_bytes(b, arch.endianness, signed=signed) + +def itob(i, signed=False): + return i.to_bytes(arch.wordsize, arch.endianness, signed=signed) + +class Arch: + def __init__(self, wordsize, endianness, alignment, nop): + self.wordsize = wordsize + self.endianness = endianness + self.alignment = alignment + self.nop = nop + +archx86 = Arch( + wordsize = 4, + endianness = "little", + alignment = 16, + nop = b'\x90' +) + +archx86_64 = Arch( + wordsize = 8, + endianness = "little", + alignment = 16, + nop = b'\x90' +) + +arch = archx86_64 |