bitsneak 
[Source Code]
Hide and extract binary data in randomly generated bitmap images using a key. Uses the rustic_bitmap image library.


A randomly generated image with a hidden file, which can be extracted using its corresponding randomly generated key.
Step-by-step data hiding process:
- Read the binary data to be hidden.
- Calculate the required dimensions (width and height) for a bitmap that can store this data.
- Generate a random key consisting of unique points—one point for each byte of data. Each point contains two unsigned 32-bit integers representing coordinates in the bitmap.
- Create a randomly generated bitmap image.
- Embed the binary data into the bitmap using the key sequence. Instead of modifying entire pixels, each byte is stored in a single color channel (red, green, or blue) of the target pixel, cycling through the channels in order (the first byte is stored in the red component of the first key point, the second byte is stored in the green component of the second key point, the third byte is stored in the blue component of the third key point, and repeat).
- Save the modified bitmap image to a file.
- Save the randomly generated key to a file.
To extract the hidden data, we need both the image and the key file.