Skip to content

Hide files within a PNG cover image using this steganography-like privacy tool. Post images on X/Twitter, Mastodon, Reddit and other hosting sites.

License

Notifications You must be signed in to change notification settings

CleasbyCode/pdvrdt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

pdvrdt

CLI tools pdvin & pdvout, used to embed or extract any file type, up to ~2GB (cover image + data file).

*Compatible hosting sites, listed below, have their own much smaller image size limits:

  • Flickr (200MB), ImgBB (32MB), PostImage (32MB), Reddit (19MB / -r option),
  • *Mastodon (16MB / -m option), ImgPile (8MB), *X/Twitter (5MB + Dimension limits)

There are many other image hosting sites on the web that may also be compatible.

Demo Image
Image credit: @z3pio_

Demo Videos: X/Twitter / Mastodon / Reddit / Web Tool

To share "file-embedded" PNG images on Mastodon, use the -m option with pdvin.

To share "file-embedded" PNG images on Reddit, use the -r option with pdvin.
Select the "Images & Video" tab on Reddit to post your image.

*X/Twitter also has dimension size limits:-

PNG-32/24 (Truecolor) 900x900 Max. 68x68 Min.
PNG-8 (Indexed-color) 4096x4096 Max. 68x68 Min.

To correctly download images from X/Twitter or Reddit, click the image in the post to fully expand it, before saving.

To correctly download an image from Flickr, click the download arrow near the bottom right-hand corner of the site and select Original for the size of image to download.

You can try pdvrdt from this site if you don't want to download and compile the source code.

Usage (Linux - pdvin / pdvout)

user1@linuxbox:~/Downloads/pdvrdt-main/src/pdvin$ g++ main.cpp -O2 -lz -s -o pdvin
user1@linuxbox:~/Downloads/pdvrdt-main/src/pdvin$ sudo cp pdvin /usr/bin

user1@linuxbox:~/Desktop$ pdvin 

Usage: pdvin [-m|-r] <cover_image> <data_file>  
       pdvin --info

user1@linuxbox:~/Desktop$ pdvin rabbit.png document.pdf
  
Saved "file-embedded" PNG image: prdt_17627.png 1245285 Bytes.

Complete!

user1@linuxbox:~/Downloads/pdvrdt-main/src/pdvout$ g++ main.cpp -O2 -lz -s -o pdvout
user1@linuxbox:~/Downloads/pdvrdt-main/src/pdvout$ sudo cp pdvout /usr/bin

user1@linuxbox:~/Desktop$ pdvout

Usage: pdvout <file_embedded_image>
       pdvout --info
        
user1@linuxbox:~/Desktop$ pdvout prdt_17627.png

Extracted hidden file: document.pdf 1016540 Bytes.

Complete! Please check your file.

Demo Image2 Demo Image3

Issues:

  • ImgPile - You must sign in to an account before sharing your data-embedded PNG image on ImgPile.
    Sharing your image without logging in, your embedded data will not be preserved.

My other programs you may find useful:-