Chameleon is both a framework and an application for steganography using the least significant bits.
Steganography is the practice of concealing a file, message, image, or video within another file, message, image, or video. (Wikipedia, Steganography)
Chameleon implements the LSB (least significant bits) technique to conceal a file in an image and also retrieve it.
This article explains how it works: Least Significant Bit algorithm for image steganography.
Chameleon works with configurable concealment configurations which allow users to play with channels, numbers of bits per colour and followed patterns. More details on configurations on this wiki page.
It allows developers to define their own patterns to create new ways of concealing files into images. The home of the developers guide is this wiki page.
There is also a graphical interface to use built-in features of Chameleon. The user guide is here.
Chameleon is split in five parts:
chameleon-core
: the core APIs of Chameleon and the implementation of the core algorithms.chameleon-patterns
: standard implementations of concealment patterns.chameleon-pictures
: standard implementations of pictures.chameleon-gui
: the graphical application.chameleon-integration
: stress tests and other tests which use all the other modules.
chameleon-patterns
and chameleon-pictures
are not mandatory for a developer use:
he may want to implement his own pictures and patterns.
- Java 8+
- JavaFX (
openjfx
or the Oracle JDK)
Check out and build:
git clone git@github.com:AntoineAube/Chameleon.git
cd Chameleon
./gradlew build
The artifacts may be found at chameleon-${artifact.name}/build/libs/chameleon-${artifact.name}-${chameleon.version}.jar
Build and run:
java -jar chameleon-gui/build/libs/chameleon-gui-1.0-SNAPSHOT.jar