gsxstegTop

Is a small commandline program which provides steganography for BMP and PNG files.

Steganography hides information in containers (medium). It does not encrypt the information. This algorithm modifies the least significant bit (LSB) of pixels in Bitmaps.

LicenseTop

This Program is distributed under the terms of the GNU General Public License Version 2 (the “GPL”), see the license.txt file for further informations.

DownloadTop

CompatibilityTop

OS
Windows, Linux
Compiler
Free Pascal, Delphi

Requirements/InstallationTop

This program does not have any requirements and installation is not needed. Just copy it to some folder and run it from there.

CommandlineTop

Usage: gsxsteg [-batch] -<action> [-<argument> <value>]

batch
Batch mode, everything must be given with commandline arguments

action can be:Top

hide
Hide data inside a medium
extract
Extract data from a medium

argument can be:Top

medium
The medium file
dest
The destination file
msg
Filename with message to hide
pass
Password

Example:Top

gsxsteg -batch -extract -medium mymedium.png -dest thedata.txt -pass "my secret pass"

GUITop

There is a GUI for Windows and Linux gsxsgui:

gsxsgui on Windows

gsxsgui on Linux

RGB Histogram

CompilingTop

DelphiTop

Open gsxsteg.dproj and click Compile. The GUI must be compiled with Lazarus, see bellow.

LazarusTop

BackgroundTop

How does it work?

  1. Make an array with possible coordinates.
  2. Seed a pseudo random number generator (ISAAC) with the SHA-512 hash of the password.
  3. Make a random key with this random numbers.
  4. Seed a random generator with this random key.
  5. Randomize the array with coordinates with the random number generator seeded with the key.
  6. Use the coordinates in this array to store the data.
  7. Store the data in the least significant bit of each color of the pixel.

So depending on the password you use you may get different data. If the wrong password is used, you’ll get most likely just random data. But it does not say you there is no data. This is useful if the data is additionally encrypted.

Another advantage of this method is that it chooses the pixel to store the data randomly, so the data is spread all over the image.