Jpeginsert

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
(Created page with "{{FormatInfo |formattype=electronic |subcat=Encryption |subcat2=Data Hiding/Embedding |released=2000 }} '''Jpeginsert''' by Karel 'Clock' Kulhavý is a Linux/Unix C program ...")
 
 
Line 3: Line 3:
 
|subcat=Encryption
 
|subcat=Encryption
 
|subcat2=Data Hiding/Embedding
 
|subcat2=Data Hiding/Embedding
|released=2000
+
|released=2022
 
}}
 
}}
  

Latest revision as of 19:12, 2 September 2023

File Format
Name Jpeginsert
Ontology
Released 2022

Jpeginsert by Karel 'Clock' Kulhavý is a Linux/Unix C program that hides unlimited data in JPEG files without using the EXIF headers, modifying the pixels or by appending.

The original JPEG standard from 1992 prescribes quantization tables which have to be in every image, otherwise it cannot be displayed. There are 4 tables, slots 0-3. These quantization tables can be defined in blocks of several quantization tables and each of these tables in the block can go into a slot 0-3. The standard allows to redefine a slot over and over. So we redefine these tables over and over with nonsensical data which are the data we want to carry. At the end, we insert the original quantization tables, which will overwrite the nonsensical data and the JPEG will work as normally.

The coefficients are prohibited from being 0 so out of the 256 combinations 0-255 we have only 255 available: 1-255. So we need to do some heavy arithmetic using the GMP library to recalculate base 256 information into base 255 information.

Some softwares (and smartphones) sometimes strip EXIF metadata, but they cannot blindly strip quantization tables, otherwise the JPEG couldn't be viewed at all. These softwares will not destroy the data.

However other software like Facebook decodes the JPEG, changes size, compression quality and reencodes. This will delete the information (e. g. video file, audio file) embedded inside. This process will make the JPEG small again.

[edit] Links

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox