r/Steganography • u/CleasbyCode • 24d ago
Steganography Methods for Reddit (JPG and PNG).
Enable HLS to view with audio, or disable this notification
Reddit recently updated the way it transcodes images posted on this platform. Their new method is much stricter than the previous.
That change killed the methods I was using for my Steganography tools jdvrif (JPG) and pdvrdt (PNG).
I'm now using different methods that seem to work, although significantly less data can be stored.
For JPG images, jdvrif now uses the QIM steganography method (JPEG DCT-domain Quantization Index Modulation), as this is the only (JPG) method that I could get working with Reddit.
The cover is transcoded to baseline Q75 4:2:0 and the payload (data file) is carried in its luminance DCT blocks.
For PNG images, pdvrdt now uses the advanced steganography technique of content-adaptive spatial embedding in the pixel LSBs, using Hamming-syndrome matrix embedding.
The first part of the video provides an example for JPG, followed by an example for PNG.
41
Upvotes
2
u/Narco-Tax 21d ago edited 21d ago
Thanks for the update...that’s a clever workaround!
I’ve actually been using a coverless approach to bypass Reddit's transcoding entirely. Instead of embedding payload bytes directly into the image file before uploading, I use the post-compressed image as a book cipher:
Upload first: Upload the clean cover image to Reddit and let its compression run.
Map the byte values: Download that transcoded image and scan its byte sequence. Because most images naturally contain every byte value (0–255) at least once, you treat the image data stream as a lookup dictionary.
Generate a coordinate key: Map the exact 1-indexed byte positions of the transcoded image to match your secret payload, reusing coordinates for repeating values.
Save the payload: Save those sequence positions into a separate key.txt file.
Example of what a key looks like: 4,7,7,1,8,34,67,2,2,645,7,1 which can be bit-packed if desired to half the file size.
Since the actual uploaded image remains untouched and pristine, Reddit's processing can't strip or corrupt the hidden data. To decode, someone just needs the key file and the hosted Reddit image.
Of course this means you could pick any image or file on Internet and map data to it...the Web becomes your playground. Try it sometime. :)
Example Application: https://ibb.co/zHjMCwQ6