Hide information into BMP images

This is a beautiful program that lets you put information (any kind of it) into BMP images. More, you hide information inside the image, with a (little or big) loss of data (you can decide it).

This program runs under Windows 95 (or higher) in a MS-DOS Prompt window (maybe, I'll develop a GUI for it, but its duty is so easy that it's not worth to).

Usage

The same program encodes and decodes data into the image.

Encoding

StegoBMP InBMP OutBMP datafile BitsXColor

Parameter meaning
InBMP The bitmap (any color depth) where you want to put data.
If you use an image where StegoBMP has already put data into, BitsXColor is ignored.
OutBMP Bitmap (24 bit) created by StegoBMP to store data
datafile Information you want to put into the BMP. Size varies according to BitsXColor
BitsXColor The number of bits (1 to 8) of each color that will be used to store data, starting form LSB

Decoding

StegoBMP InBMP datafile

Parameter meaning
InBMP The bitmap where you previously stored data
datafile Where to save extracted data

Information

StegoBMP will print out how much information is sored into the bitmap.

StegoBMP InBMP

Parameter meaning
InBMP A bitmap where you previously stored data

How it works

StegoBMP takes each bit of your datafile and puts it into color values of the Bitmap. According to BitsXColor it puts more or less bits into each color-byte (there are 3 color-bytes for each pixel) starting from LSB.

StegoBMP tries to compress data before encoding into the image, using the ZLib library.

Encoding rate

BitsXColor Pixels X Byte rate max variation per color
1 2.66 12.5% +/- 1
2 1.33 25.0% +/- 3
3 0.88 37.5% +/- 7
4 0.66 50.0% +/- 15
5 0.53 62.5% +/- 31
6 0.44 75.0% +/- 63
7 0.38 87.5% +/- 127
8 (Image is lost!) 0.33 100.0% +/- 255

You should try with different values for BitsXColor for each image and data couple.

Linux version

There exists now a version for Linux which is quite different, and it is not compatible with Win9x images.

Stego can work with many image formats, but it needs that the image is stored without loss of data in a 24 bit format (true colors). So the best format is PNG.

It doesn't ask you for BitsXColor because it uses subsequent bits until it reachs the end of input datafile. Try it without parameters for an explanation.

Download  
EXE and Source for Win9x (Delphi 6) StegoBMP.zip (87 kB)
Source for Linux stego.tar.gz (3 kB)

You can find a lot of interesting information about steganography at OutGuess.