Skip to content

Latest commit

 

History

History
106 lines (62 loc) · 4.29 KB

README.md

File metadata and controls

106 lines (62 loc) · 4.29 KB

jdvrif

A simple command-line tool used to embed or extract any file type via a JPG image.

Post & share your file-embedded JPG image(s) on the following compatible sites.

  • Flickr (200MB), *ImgPile (100MB), ImgBB (32MB), PostImage (24MB),
  • *Reddit (20MB), *Imgur (20MB), Mastodon (16MB), Twitter (10KB).

jdvrif partly derives from the technique discovered by security researcher David Buchanan.

Demo Image
Image credit: @shikoba_86
{Image embedded with encrypted mp3 music file. Extract: jdvrif -x wolf.jpg}

Video Demos: Mastodon / Reddit / Twitter / Multiple files

Your data file is encrypted & inserted within multiple 65KB ICC Profile blocks in the JPG image file.

ICC

Using jdvrif, you can insert up to eight files at a time (outputs one image per file).
(jdvrif -i image.jpg file1.mp3 file2.doc file3.zip, etc.)

You can also extract files from up to eight images at a time.
(jdvrif -x jdv_img1.jpg jdv_img2.jpg jdv_img3.jpg, etc.)

When posting a jdvrif JPG image on Reddit, always select the "Image & Video" box.

POST

When saving a jdvrif JPG image from Reddit, click the image in the post to expand it, then save it.
You should see the file name with a .jpg extension in the address bar of your browser.

POST

When saving a jdvrif JPG image from Twitter, always click the image first to fully expand it, before saving.

Compile and run the program under Windows or Linux.

Usage Demo

user1@linuxbox:~/Desktop$ g++ jdvrif.cpp -O2 -s -o jdvrif
user1@linuxbox:~/Desktop$ ./jdvrif 

Usage: jdvrif -i <cover_image> <data_file>  
       jdvrif -x <embedded_image>  
       jdvrif --info

user1@linuxbox:~/Desktop$ ./jdvrif -i rabbit.jpg document.pdf
  
Insert mode selected.

Reading files. Please wait...

Encrypting data file.

Embedding data file within the ICC Profile of the JPG image.

Writing data-embedded JPG image out to disk.

Created data-embedded JPG image: "jdv_img1.jpg" Size: "1218285 Bytes".

Complete!

You can now post your data-embedded JPG image(s) on the relevant supported platforms.

user1@linuxbox:~/Desktop$ ./jdvrif -x jdv_img1.jpg

Extract mode selected.

Reading embedded JPG image file. Please wait...

Found jdvrif embedded data file.

Extracting encrypted data file from the JPG image.

Decrypting extracted data file.

Writing decrypted data file out to disk.

Saved file: "document.pdf" Size: "1016540 Bytes"

Complete! Please check your extracted file(s).

user1@linuxbox:~/Desktop$ 

Issues:

  • Reddit - Does not work with Reddit's mobile app. Desktop/browser only.
  • Imgur - Retains embedded data, but reduces the dimension size of images over 5MB.
  • ImgPile - You must sign in to an account before sharing your data-embedded JPG image on ImgPile.
    Sharing your image without logging in, your embedded data will not be preserved.

My other programs you may find useful:-