A set of functions useful in reverse engineering.
Project description
Info
ReverseBox is a Python package with a set of functions useful in software reverse engineering.
Why ReverseBox?
It's designed to help with:
- Decompressing / compressing data
- Decrypting / encrypting data
- Tedious reverse engineering tasks e.g. testing different checksum algorithms to find the one that was used in the software or file format
- Figuring out file formats
- Parsing data structures
- Wrapping functions for input/output operations
Who should use ReverseBox?
Mostly developers and reverse engineers (e.g. file format researchers
or software researchers).
List of functionalities
-
Checksum
- CRC8 (TODO) ❌
- CRC16 (ARC) ✔️
- CRC16 (Modbus) ✔️
- CRC16 (Sick) ✔️
- CRC16 (DNP) ✔️
- CRC16-CCITT (XModem) ✔️
- CRC16-CCITT (0xFFFF) ✔️
- CRC16-CCITT (0x1D0F) ✔️
- CRC16-CCITT (Kermit) ✔️
- CRC32 (ISO/HDLC) ✔️
- CRC32 (Asobo) (TODO) ❌
-
Compression
- Asobo (TODO) ❌
- BZE/BZZ (TODO) ❌
- BZIP2 (TODO) ❌
- GZIP (TODO) ❌
- JCALG1 (TODO) ❌
- LZMA (TODO) ❌
- LZO1X (TODO) ❌
- LZSS (TODO) ❌
- NitroSDK (TODO) ❌
- Oodle (TODO) ❌
- Refpack (EA) (TODO) ❌
- RNC (TODO) ❌
- ZLIB ✔️ (wrapper only)
-
Encryption
- AES (TODO) ❌
- DES (TODO) ❌
- Lucifer / DTD-1 (TODO) ❌
- XOR Cipher (Basic) ✔️
- (game-specific) XOR Cipher (Retro64 ECO) ✔️
- (game-specific) XOR Cipher (Giana’s Return ZDA) (TODO) ❌
-
Hash
- SHA-1 (TODO) ❌
- MD5 ✔️ (wrapper only)
- (game-specific) Hercules (TODO) ❌
- (game-specific) E-racer (TODO) ❌
-
Image
- PS2 Swizzling/Twiddling (TODO) ❌
- PSP Swizzling/Twiddling (TODO) ❌
-
IO
- File Reader ✔️
- File Writer ✔️
- File extension checking ✔️
Checksum calculation - example
// CRC16 (Kermit) calculation
from reversebox.checksum import checksum_crc16_kermit
from reversebox.common import common
test_data = b'123456789'
crc16_handler = checksum_crc16_kermit.CRC16KermitHandler()
crc16 = crc16_handler.calculate_crc16_kermit(test_data)
print("CRC16_INT: ", crc16)
print("CRC16_STR: ", common.convert_int_to_hex_string(crc16))
// CRC16 (Kermit) output
CRC16_INT: 35105
CRC16_STR: 0x8921
XOR encryption - example
// XOR Cipher (Basic)
from reversebox.encryption.encryption_xor_basic import xor_cipher_basic
test_data = b'abcd'
test_key = b'\x3D'
xor_result = xor_cipher_basic(test_data, test_key)
print(xor_result)
// XOR Cipher output
b'\\_^Y'
File Reader - example
// File Reader Usage
from reversebox.io_files.file_reader import FileReader
file_path = os.path.join(os.path.dirname(__file__), "data\\file.bin")
file_reader = FileReader(file_path, "rb")
file_reader.open()
value = file_reader.read_str(4, "utf8")
print(value)
// File Reader Output
ABCD
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
ReverseBox-0.3.0.tar.gz
(20.1 kB
view hashes)