Skip to content

A small steganography app that provides certain attack and embed methods.

License

Notifications You must be signed in to change notification settings

v-gabriel/exstego

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Exstego

A small steganography app that provides certain attack and embed methods.


Features

Demonstrates the flow of some attacks and the process of extracting and destroying data.

Logs and results are saved in the folder relative to the app: ./RESULTS/...


LSB steganography

Params:

Color channels: ['red', 'green', 'blue']
Embed methods: ['Scatter', 'Sequential']
Percentage: [0,..., 1]
Method Description
Sequential Embed/ extract/ destroy starting from the first pixel
Scatter Start from beggining and skip pixels in order to cover the whole file

Percentage determens how much of the image will be altered, as well as the step of the scatter method.


METADATA steganography

Params:

Metadata key: {metadata_type}.{metadata_namespace}.{metadata_key}

All available tags can be found on the link: exiv2 tags list

Github: exiv2 github


BPCS steganography

Params:

Color channels: ['red', 'green', 'blue']
Bit planes: [0,..., 8]

Attacks

Analytical (need both stego and original file, used for detecting):

  • Compare bit planes of stego and original file
  • Compare histograms of stego and original file

Stego oriented (used extraction, detection or destruction):

  • Split bit planes
  • Overlap bit planes
  • Destroy data in LSBs
  • Destroy metadata information
  • Extract metadata

Embed methods

  • LSB steganography
  • METADATA steganography

Appendix

Useful demo links:


BPCS planes overlap function was inspired by a solved problem:


Demo

All the images, logs and extracted data is saved inside ./RESULTS/{identifer} folder.

Console logging can be disabled in code (./app/exstego.py):


LSB - embedding and extracting

The order of the colors input is important (embedding/ extraction will insert/ read bits from that order).

embed_lsb.mp4
extract_lsb.mp4

Embedding, extracting and destroying metadata

embed_metadata.mp4
extract_destroy_metadata.mp4

Overlapping and extracting bit planes

In this case the flag was hidden inside the first 3 bit planes of the red channel.

split_overlap_bit_planes.mp4

Comparing histograms

histogram_comparison.mp4

Tech

Environment: PyCharm

Languages: KivyMD, Python v3.10

PyCharm KivyMD Python v3.10

Authors