Skip to content

jugutier/steganography

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Steganography on WAV files

How to use

To compile, run

$ make

To clean, run

$ make clean

To run tests, run

$ make test

To embed

It supports hiding a plaintext file or a ciphertext file.

Plaintext file

The program receives the --embed / -e option and the following parameters:

  • file to hide with --in / -i
  • steganographic method with --steg / -s. Possible values: <LSB1|LSB4|LSBE>
  • carrier file with --p / -p
  • output wav file with --out / -o (this file will be the carrier that contains the file to hide)

For example:

$ ./stegowav --in samples/avatar.png --p samples/fun.wav --out samples/dup.wav --steg LSB4 --embed

or, what is the same:

$ ./stegowav -i samples/avatar.png -p samples/fun.wav -o samples/dup.wav -s LSB4 -e
Ciphertext file

The program receives the --embed / -e option and the following parameters:

  • file to hide with --in / -i
  • steganographic method with --steg / -s. Possible values: <LSB1|LSB4|LSBE>
  • carrier file with --p / -p
  • output wav file with --out / -o (this file will be the carrier that contains the file to hide)
  • encryption password with --pass
  • [OPTIONAL] encryption algorithm with -a. Possible values: <aes128|aes192|aes256|des> (default set to aes128)
  • [OPTIONAL] ecnryption cipher mode with -m. Possible values: <ecb|cfb|ofb|cbc> (default set to cbc)

For example:

$ ./stegowav  --in samples/avatar.png --p samples/fun.wav --out samples/dup.wav --steg LSB4 --embed -a "aes192" -m cfb --pass "thePassword"

Use of quotes are optional

To extract

Plaintext file

The program receives the --extract / -x option and the following parameters:

  • steganographic method with --steg / -s. Possible values: <LSB1|LSB4|LSBE>
  • carrier file with --p / -p
  • output file with --out / -o (No need for extension, it is added automatically)

For example:

$  ./stegowav --p samples/dup.wav --out out/output --steg LSB1 --extract

or, what is the same:

$  ./stegowav -p samples/dup.wav -o out/output -s LSB1 -x
Ciphertext file

The program receives the --extract / -x option and the following parameters:

  • steganographic method with --steg / -s. Possible values: <LSB1|LSB4|LSBE>
  • carrier file with --p / -p
  • output file with --out / -o (No need for extension, it is added automatically)
  • encryption password with --pass
  • encryption algorithm with -a. Possible values: <aes128|aes192|aes256|des>
  • ecnryption cipher mode with -m. Possible values: <ecb|cfb|ofb|cbc>
$ ./stegowav --p samples/dup.wav --out samples/output --steg LSB4 --extract -a "aes192" -m cfb --pass "thePassword"

Use of quotes are optional

Options

For more details, run:

$ ./stegowav --help

Important

  • In order to compile it, you'll need libssl-dev packages (on Ubuntu run apt-get install libssl-dev)
  • If you have problems running the test with some Linux distributions, add -fno-stack-protector flag on Makefile
  • To check if the input file that was embed and the output file that was extracted are equal, you can run:
cmp --silent file1 file2 || echo "files are different"

To check WAV format specification, go to Microsoft WAVE specs


Collaborators

  • Chervonagura, Ioji
  • Bond, Federico
  • Gutierrez, Julian
  • Itzcovich, Ivan

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 95.5%
  • Shell 2.8%
  • Makefile 1.7%