Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

CleasbyCode/pdvrdt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Repository files navigation

pdvrdt

A steganography command-line tool used for embedding and extracting any file type via a PNG cover image.

Any issues with configuring pdvrdt, then please just ask: @cleasbycode.

There is also a Web App version, which you can try here as a convenient alternative to downloading and compiling the CLI source code. Web file uploads are limited to 20MB.

Demo Image
Image: "Wolf" / PIN: 1816136426548255229

Unlike the common steganography method of concealing data within the pixels of a cover image (LSB), pdvrdt hides files within various chunks of a PNG image, such as iCCP and IDAT. You can embed any file type up to 2GB, although compatible hosting sites (listed below) have their own much smaller size limits and *other requirements.

For increased storage capacity and better security, your embedded data file is compressed with Zlib (if not already a compressed file type) and encrypted using the Libsodium cryptographic library.

X_Twitter_CLI_PNG_TXT.mp4
Web_PNG_JPG.mp4

Image credit: "Red_Dragon / @ultra_arcane"

Compatible Platforms

Posting size limit measured by the combined size of the cover image + compressed data file:

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

X-Twitter image dimension size limits:

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

Usage (Linux)

user1@mx:~/Downloads/pdvrdt-main/src$ sudo apt-get install libsodium-dev
user1@mx:~/Downloads/pdvrdt-main/src$ chmod +x compile_pdvrdt.sh
user1@mx:~/Downloads/pdvrdt-main/src$ ./compile_pdvrdt.sh
user1@mx:~/Downloads/pdvrdt-main/src$ Compilation successful. Executable 'pdvrdt' created.
user1@mx:~/Downloads/pdvrdt-main/src$ sudo cp pdvrdt /usr/bin
user1@mx:~/Desktop$ pdvrdt 
Usage: pdvrdt conceal [-m|-r] <cover_image> <secret_file>
 pdvrdt recover <cover_image> 
 pdvrdt --info
user1@mx:~/Desktop$ pdvrdt conceal your_cover_image.png your_secret_file.doc
Platform compatibility for output image:-
 ✓ X-Twitter
 ✓ ImgPile
 ✓ PostImage
 ✓ ImgBB
 ✓ Flickr

Saved "file-embedded" PNG image: prdt_12462.png (143029 bytes).
Recovery PIN: [***2166776980318349924***]
Important: Keep your PIN safe, so that you can extract the hidden file.
Complete!

user1@mx:~/Desktop$ pdvrdt recover prdt_12462.png
PIN: *******************
Extracted hidden file: your_secret_file.doc (6165 bytes).
Complete! Please check your file.

pdvrdt mode arguments:

conceal - Compresses, encrypts and embeds your secret data file within a PNG cover image.
recover - Decrypts, uncompresses and extracts the concealed data file from a PNG cover image.

pdvrdt conceal mode platform options:

"-m" - To create compatible "file-embedded" PNG images for posting on the Mastodon platform, you must use the -m option with conceal mode.

$ pdvrdt conceal -m my_image.png hidden.doc

"-r" - To create compatible "file-embedded" PNG images for posting on the Reddit platform, you must use the -r option with conceal mode.

$ pdvrdt conceal -r my_image.png secret.mp3 

From the Reddit site, select "Create Post" followed by "Images & Video" tab, to attach and post your PNG image.

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

Third-Party Libraries

This project makes use of the following third-party libraries:

  • LodePNG by Lode Vandevenne
    • License: zlib/libpng (see LICENSE file)
    • Copyright (c) 2005-2024 Lode Vandevenne
  • libsodium for cryptographic functions.
  • zlib: General-purpose compression library
    • License: zlib/libpng license (see LICENSE file)
    • Copyright (C) 1995-2024 Jean-loup Gailly and Mark Adler

AltStyle によって変換されたページ (->オリジナル) /