ReverseBox
ReverseBox is a Python package with a set of functions useful in reverse engineering.
Install / Use
/learn @bartlomiejduda/ReverseBoxREADME
Info
ReverseBox is a Python package with a set of functions useful in software reverse engineering.
Why ReverseBox? <br> 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
- Searching for raw images
Who should use ReverseBox? <br> Mostly developers and reverse engineers (e.g. file format researchers or software researchers).
List of functionalities
-
Checksum
- Adler32 ✔️
- Cocos2d PVR ✔️
- Fletcher16 ✔️
- Fletcher32 ✔️
- Internet Checksum / IPv4 header checksum ✔️
- Sum8 ✔️
- Sum8 2s Complement ✔️
- Unix Sum BSD16 ✔️
- Unix Sum SYSV ✔️
- Xor8 ✔️
-
CRC
- CRC-8 ✔️
- CRC-8/CDMA2000 ✔️
- CRC-8/DARC ✔️ <span style="color:yellow">(wrapper only)</span>
- CRC-16 (ARC) ✔️
- CRC-16 (Modbus) ✔️
- CRC-16 (Sick) ✔️
- CRC-16 (DNP) ✔️
- CRC-16 (EA CRCF) ✔️
- CRC-16-CCITT (XModem) ✔️
- CRC-16-CCITT (0xFFFF) ✔️
- CRC-16-CCITT (0x1D0F) ✔️
- CRC-16-CCITT (Kermit) ✔️
- CRC-32/CKSUM (Unix cksum) ✔️
- CRC-32 (ISO/HDLC) ✔️
- CRC-32 (Asobo) ✔️
- CRC-64 (Asobo) ✔️
- CRC-64/GO-ISO ✔️ <span style="color:yellow">(wrapper only)</span>
-
Compression
- Asobo (TODO) ❌
- BZE/BZZ (TODO) ❌
- BZIP2 ✔️ <span style="color:yellow">(wrapper only)</span>
- GZIP (TODO) ❌
- JCALG1 (TODO) ❌
- LZ4 ✔️ <span style="color:yellow">(wrapper only)</span>
- LZMA ✔️ <span style="color:yellow">(wrapper only)</span>
- LZO / LZO1X ✔️ <span style="color:yellow">(wrapper only)</span>
- LZSS (TODO) ❌
- MIO0 ✔️
- NitroSDK (TODO) ❌
- Oodle (TODO) ❌
- Refpack (EA Games) ✔️ <span style="color:yellow">(wrapper only)</span>
- RNC (TODO) ❌
- ZLIB ✔️ <span style="color:yellow">(wrapper only)</span>
- PS2 GS Texture Compression ✔️
- RLE TGA ✔️
- RLE TGA (reversed condition) ✔️
- PackBits (Macintosh RLE) ✔️
- (game-specific) Re:Tiyoruga DAT compression ✔️
- (game-specific) Intelligent Games Custom Huffman ✔️
- (game-specific) Executioners RLE ✔️
- (game-specific) Emergency RLE ✔️
- (game-specific) Neversoft RLE ✔️
- (game-specific) Tzar RLE ✔️
- (game-specific) Leapster RLE ✔️
-
Encryption
- AES (TODO) ❌
- DES (TODO) ❌
- Lucifer / DTD-1 (TODO) ❌
- ROT13 ✔️
- XOR Cipher (Basic) ✔️
- XOR Cipher (Basic) Guesser ✔️
- Hatch Engine Encryption ✔️
- (game-specific) XOR Cipher (Retro64 ECO) ✔️
- (game-specific) XOR Cipher (Giana’s Return ZDA) ✔️
-
Hash
- Additive Hash ✔️
- AP ✔️
- DJB2 ✔️
- RX3 ✔️
- FNV0-32 ✔️
- FNV0-64 ✔️
- FNV1-32 ✔️
- FNV1-64 ✔️
- FNV1A-32 ✔️
- FNV1A-64 ✔️
- Jenkins one-at-a-time ✔️
- SDBM ✔️
- SHA-1 ✔️ <span style="color:yellow">(wrapper only)</span>
- SHA-2 (256 bits) ✔️ <span style="color:yellow">(wrapper only)</span>
- MD2 ✔️ <span style="color:yellow">(wrapper only)</span>
- MD5 ✔️ <span style="color:yellow">(wrapper only)</span>
- Murmur3 ✔️ <span style="color:yellow">(wrapper only)</span>
- (game-specific) Hercules (TODO) ❌
- (game-specific) E-racer (TODO) ❌
- (game-specific) Pivotal Games DAT Hash ✔️
-
Image
- 3DS Swizzling/Twiddling ✔️
- CMPR Swizzling/Twiddling ✔️
- PS2 Swizzling/Twiddling ✔️
- PS2 Palette Swizzling/Twiddling ✔️
- PS4 Swizzling/Twiddling ✔️
- PS5 Swizzling/Twiddling ✔️
- PSP Swizzling/Twiddling ✔️
- PS Vita Swizzling/Twiddling ✔️
- XBOX 360 Swizzling/Twiddling ✔️
- GameCube/WII Swizzling/Twiddling ✔️
- Switch Swizzling/Twiddling ✔️
- WII U Swizzling/Twiddling ✔️
- XBOX/PS3 Swizzling/Twiddling (Morton Order) ✔️
- Dreamcast Swizzling/Twiddling (Morton Order) ✔️
- BC Swizzling/Twiddling ✔️
- PS2 GS Texture Swizzling/Twiddling ✔️
- Generating mipmaps ✔️
- Decoding and encoding images with pixel formats <br>mentioned in the following table:
| Pixel Format | Decode support | Encode support | |------------------------|---------------------|---------------------| | RGB121 | <center>✔️</center> | <center>❌</center> | | ALPHA4 | <center>✔️</center> | <center>❌</center> | | ALPHA4_17X | <center>✔️</center> | <center>✔️</center> | | RGB121_BYTE | <center>✔️</center> | <center>❌</center> | | RGBA2222 | <center>✔️</center> | <center>❌</center> | | RGBX2222 | <center>✔️</center> | <center>❌</center> | | GRAY8 | <center>✔️</center> | <center>❌</center> | | ALPHA8 | <center>✔️</center> | <center>❌</center> | | ALPHA8_17X | <center>✔️</center> | <center>❌</center> | | LA44 | <center>✔️</center> | <center>❌</center> | | RGBX332 (RGB8) | <center>✔️</center> | <center>❌</center> | | BGRX332 (BGR8) | <center>✔️</center> | <center>❌</center> | | RGB565 | <center>✔️</center> | <center>✔️</center> | | BGR565 | <center>✔️</center> | <center>✔️</center> | | RGBX5551 | <center>✔️</center> | <center>✔️</center> | | RGBT5551 | <center>✔️</center> | <center>✔️</center> | | BGRT5551 | <center>✔️</center> | <center>❌</center> | | RGBA5551 | <center>✔️</center> | <center>✔️</center> | | BGRA5551 | <center>✔️</center> | <center>✔️</center> | | BGRA5551_TZAR | <center>✔️</center> | <center>❌</center> | | BGRX5551 | <center>✔️</center> | <center>❌</center> | | RGBX6666 | <center>✔️</center> | <center>❌</center> | | RGBA6666 | <center>✔️</center> | <center>❌</center> | | RGB888 (RGB24) | <center>✔️</center> | <center>✔️</center> | | BGR888 (BGR24) | <center>✔️</center> | <center>✔️</center> | | ARGB4444 | <center>✔️</center> | <center>❌</center> | | RGBA4444 | <center>✔️</center> | <center>❌</center> | | ABGR4444 | <center>✔️</center> | <center>✔️</center> | | XBGR4444 | <center>✔️</center> | <center>❌</center> | | RGBX4444 | <center>✔️</center> | <center>✔️</center> | | BGRA4444 | <center>✔️</center> | <center>✔️</center> | | BGRA4444_LEAPSTER | <center>✔️</center> | <center>❌</center> | | BGRX4444 | <center>✔️</center> | <center>❌</center> | | XRGB1555 | <center>✔️</center> | <center>❌</center> | | ARGB1555 | <center>✔️</center> | <center>❌</center> | | ABGR1555 | <center>✔️</center> | <center>❌</center> | | XBGR1555 | <center>✔️</center> | <center>❌</center> | | ARGB8888 | <center>✔️</center> | <center>✔️</center> | | ABGR8888 | <center>✔️</center> | <center>❌</center> | | RGBA8888 | <center>✔️</center> | <center>✔️</center> | | BGRA8888 | <center>✔️</center> | <center>✔️</center> | | XRGB8888 | <center>✔️</center> | <center>❌</center> | | RGBX8888 | <center>✔️</center> | <center>❌</center> | | XBGR8888 | <center>✔️</center> | <center>❌</center> | | BGRX8888 | <center>✔️</center> | <center>❌</center> | | BGRT8888 | <center>✔️</center> | <center>❌</center> | | BGRA8888_TZAR | <center>✔️</center> | <center>❌</center> | | RGB48 | <center>✔️</center> | <center>❌</center> | | BGR48 | <center>✔️</center> | <center>❌</center> | | PAL4 | <center>✔️</center> | <center>✔️</center> | | PAL8 | <center>✔️</center> | <center>✔️</center> | | PAL8_TZAR | <center>✔️</center> | <center>❌</center> | | PAL16 | <center>✔️</center> | <center>❌</center> | | PAL32 | <center>✔️</center> | <center>❌</center> | | PAL_I8A8 | <center>✔️</center> | <center>❌</center> | | N64_RGB5A3 | <center>✔️</center> | <center>❌</center> | | N64_BGR5A3 | <center>✔️</center> | <center>✔️</center> | | N64_I4 / GRAY4 | <center>✔️</center> | <center>✔️</center> | | N64_I8 / GRAY8 | <center>✔️</center> | <center>✔️</center> | | N64_IA4 | <center>✔️</center> | <center>✔️</center> | | N64_IA8 | <center>✔️</center> | <center>✔️</center> | | N64_RGBA32 | <center>✔️</center> | <center>❌</center> | | N64_CMPR | <center>✔️</center> | <center>✔️</center> | | BC1/DXT1 | <center>✔️</center> | <center>✔️</center> | | PSP_DXT1 | <center>✔️</center> | <center>❌</center> | | DXT2 | <center>✔️</center> | <center>❌</center> | | BC2/DXT3 | <center>✔️</center> | <center>✔️</center> | | PSP_DXT3 | <center>✔️</center> | <center>❌</center> | | DXT4 | <center>✔️</center> | <center>✔️</center> | | BC3/DXT5 | <center>✔️</center> | <center>✔️</center> | | PSP_DXT5 | <center>✔️</center> | <center>❌</center> | | BC4 | <center>✔️</center> | <center>✔️</center> | | BC5 | <center>✔️</center> | <center>✔️</center> | | BC6 | <center>✔️</center> | <center>✔️</center> | | BC7 | <center>✔️</center> | <center>✔️</center> | | PVRTCI_2bpp_RGB | <center>✔️</center> | <center>✔️</center> | | PVRTCI_2bpp_RGBA | <center>✔️</center> | <center>✔️</center> | | PVRTCI_4bpp_RGB | <center>✔️</center> | <center>✔️</center> | | PVRTCI_4bpp_RGBA | <center>✔️</center> | <center>✔️</center> | | PVRTCII_2bpp | <center>✔️</center> | <center>✔️</center> | | PVRTCII_4bpp | <center>✔️</center> | <center>✔️</center> | | ETC1 | <center>✔️</center> | <center>✔️</center> | | BW1bpp | <center>✔️</center>
Related Skills
node-connect
337.4kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
claude-opus-4-5-migration
83.2kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
frontend-design
83.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
model-usage
337.4kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
