A desktop Python app for hiding and extracting compressed and encrypted text inside Minecraft skin PNG files using LSB steganography.
Uploaded skins act as persistent, publicly accessible carrier and the embedded data remains intact until the skin is changed. Anyone with the username or UUID can retrieve the skin and extract the payload, making it a small but durable container for covert data within the limits of the image filesize.
- Loads skins from local PNG files or fetches by Minecraft username/UUID (Mojang API)
- Encodes hidden text into skin pixels (LSB steganography)
- Decodes hidden text from loaded skins
- Optional payload compression (
zlib) - Optional payload encryption (AES-CTR with password-derived key)
- Saves modified skins locally
- Optional Imgur upload support (requires your Imgur Client ID)
- Hidden payloads begin with a magic header (
CEVAPI) so the app can reliably detect embedded data.
- Python 3.9+
- Packages listed in
requirements.txt
- Load a skin with Fetch Skin or Browse Local PNG.
- Enter your message in the text box.
- To encrypt while encoding, enable Use Encryption and enter a password.
- (Optional) Enable Use Compression.
- Click Encode Message, then Save Locally or Upload to Imgur.
- To decrypt/decode, load the skin, click Decode Current, and enter the password if prompted.
- The app stores data in RGB least-significant bits, so capacity is limited by image dimensions.
- A 64x64 skin has
64 * 64 * 3 = 12,288storable bits (about1,536total bytes before metadata/processing overhead). - Embedded data includes a header and flags, plus optional compression/encryption overhead.
- The maximum text length is not fixed: it changes based on your exact text content and whether compression/encryption are enabled.
- If your message is too long, the app detects it before writing and shows exactly how many characters over the limit you are.
- Can fit this entire README 12 times in a single skin.
To enable uploads, replace YOUR_IMGUR_CLIENT_ID in MCST.py with your own Imgur API client ID.
- A proof of concept for covert data storage and retrieval using a widely accessible medium.
- Demonstrates a novel approach to asynchronous, public communication via game assets.
- Also works as a fun steganography-based easter egg system.
This project is licensed under the GNU General Public License v3.0. See LICENSE.
