Library for implementing decompiled code.
Project description
Gravitum
Gravitum is a library for implementing decompiled code with Python.
Requirements
- Python 3.6+
Installation
$ pip install gravitum
Usage
Gravitum defines some interger types with fixed size. You can use shorthand functions (int8
, int16
, int32
, int64
, uint8
, uint16
, uint32
, uint64
) to create them.
from gravitum import uint8
v = uint8(0x53)
Pointer operations are common in the decompiled code.
unsigned __int8 data[8] = {71, 114, 97, 118, 105, 116, 117, 109};
unsigned __int8 *p = data;
unsigned __int8 v = p[4];
*((unsigned __int32 *)p + 1) = v;
So Gravitum provides vptr
.
from gravitum import vptr
data = bytearray([71, 114, 97, 118, 105, 116, 117, 109])
p = vptr(data, 'uint8')
v = p.add(4).read()
p.cast('uint32').add(1).write(v)
In some cases, decompilers may use their built-in functions in the output. Gravitum implements some of them. You can look up from gravitum.decompiler_builtins
.
from gravitum import uint32
from gravitum.decompiler_builtins.ida import ror4
v = uint32(0x53683477)
v = ror4(v, 2)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
gravitum-0.2.1.tar.gz
(9.9 kB
view details)
Built Distribution
gravitum-0.2.1-py3-none-any.whl
(10.6 kB
view details)
File details
Details for the file gravitum-0.2.1.tar.gz
.
File metadata
- Download URL: gravitum-0.2.1.tar.gz
- Upload date:
- Size: 9.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4ea7d318229dd4dab7ed335ddca919b7912175e47902ea83d7cafa72f6a3f70b |
|
MD5 | 06d7070d473f330e2b6eaec5bb9ed4ff |
|
BLAKE2b-256 | dab7ee680589095a279a536465ffcaccd51b3ded82e5427679a9daf328b47558 |
File details
Details for the file gravitum-0.2.1-py3-none-any.whl
.
File metadata
- Download URL: gravitum-0.2.1-py3-none-any.whl
- Upload date:
- Size: 10.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6267050aec00cc8cd4bff0803990c619c88995bca370b9f095fd30980a3dd52d |
|
MD5 | d010bb24ef5f87d1f90abe6c6fff684e |
|
BLAKE2b-256 | 577834f87c054aadd06cc7550c16d9a845a9512aaf57730eee4084f80db8170d |