A small steganography app that provides certain attack and embed methods.
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
Useful demo links:
BPCS planes overlap function was inspired by a solved problem:
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
Environment: PyCharm
Languages: KivyMD, Python v3.10
PyCharm | KivyMD | Python v3.10 |
---|---|---|