Signed-off-by: devoalda <linuxes_mojoworld@aleeas.com> |
||
---|---|---|
lib/steganography | ||
upload | ||
views | ||
LICENSE | ||
README.MD | ||
lsb_rep.py | ||
requirements.txt |
README.MD
LSB Replacement with Python
This is an LSB Replacement project built with python and flask.
Installation
# Create a virtual environment
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
Usage
python lsb_rep.py
Supported File Types
Image
- PNG
- BMP
These are the only two image types that are tested and supported.
Audio-Visual
- WAV
- MP3
- MP4
WAV uses the wav_steg
module in lib/steganography
and MP3 and MP4 uses the general file_steg
module in lib/steganography
.
Document
Text Files
- TXT
- PY
- MD
- ETC.
These files are supported by the txt_steg
module in lib/
.
Others
- DOCX
- PPTX
- ETC.
These files are supported by the file_steg
module in lib/steganography
.
Modules
All modules are located in the lib/steganography
folder.
img_steg
This module is used to hide and extract data from images using the opencv and numpy libraries for bit manipulation.
Usage:
from lib.steganography import img_steg
encoded_data = img_steg("/path/to/image.png", bits_to_hide=[1,2,3]).encode("Hello World!")
decoded_data = img_steg("/path/to/encoded_image.png", bits_to_hide=[1,2,3]).decode()
wav_steg
This module is used to hide and extract data from WAV files using the wave library for wav file manipulation.
Usage:
from lib.steganography import wav_steg
encoded_data = wav_steg("/path/to/audio.wav", bits_to_hide=[1,2,3]).encode("Hello World!")
decoded_data = wav_steg("/path/to/encoded_audio.wav", bits_to_hide=[1,2,3]).decode()
txt_steg
This module is used to hide and extract data from text files with python's built in file reading and writing.
Usage:
from lib.steganography import txt_steg
encoded_data = txt_steg("/path/to/text.txt", bits_to_hide=[1,2,3]).encode("Hello World!")
decoded_data = txt_steg("/path/to/encoded_text.txt", bits_to_hide=[1,2,3]).decode()
file_steg
This module is used to hide and extract data from any file type with python's built in file reading and writing as bytes.
Usage:
from lib.steganography import file_steg
encoded_data = file_steg("/path/to/file.txt", bits_to_hide=[1,2,3]).encode("Hello World!")
decoded_data = file_steg("/path/to/encoded_file.txt", bits_to_hide=[1,2,3]).decode()
Web Interface
The web interface is built with flask and located at project root. The web interface is used as a front end to hide and extract data from files.
Views
Views (HTML) are located in the views
folder.
Routes
/ - Home page
/encode - Encode page
/decode - Decode page
Encode
The encode page is used to encode data into a file.
User is able to:
- Select a file to encode data into (Drag and drop supported)
- Select the bits to hide the data in
- Enter the data to hide
- Submit the form
- Download the encoded file
- View the encoded file
- View the original file
Decode
The decode page is used to decode data from a file.
User is able to:
- Select a file to decode data from
- Select the bits to decode the data from
- Submit the form
- View the decoded data
Sample files for testing
Sample files are in the upload
folder, these files are used for testing the web interface and the individual modules.