stegano 0.0.1

The ultimate steganography swiss knife army CLI tool.
docs.rs failed to build stegano-0.0.1
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: stegano-0.1.1

🕵️‍♂️ Stegano

Crates.io Crates.io Downloads Rust License

🚀 stegano: Stegano is a powerful and versatile steganography tool designed to empower you with a wide range of image manipulation and data encryption capabilities.

📖 Table of Contents

🚀 Installation

To install stegano, use the following Cargo command:

cargo install --locked stegano

🛠️ Usage

Use the stegano command to process and manipulate png images. Here are some examples:

  1. Read and process 10 chunks from the image:

    $ stegano -i image_file_name -m
    It is a valid PNG file. Let's process it!
    ---- Chunk #1 ----
    Chunk offset: 13
    Chunk size: 0
    Chunk crc: 3d008
    ---- Chunk #2 ----
    Chunk offset: 30
    Chunk size: 0
    Chunk crc: 52474200
    ---- Chunk #3 ----
    Chunk offset: 47
    Chunk size: 73
    Chunk crc: 333db36f
    ---- Chunk #4 ----
    Chunk offset: 137
    Chunk size: 91
    Chunk crc: 4000023e
    ---- Chunk #5 ----
    Chunk offset: 245
    Chunk size: 251
    Chunk crc: 21080
    ---- Chunk #6 ----
    Chunk offset: 513
    Chunk size: 108
    Chunk crc: 10021080
    ---- Chunk #7 ----
    Chunk offset: 638
    Chunk size: 2
    Chunk crc: 35025ded
    ---- Chunk #8 ----
    Chunk offset: 657
    Chunk size: 3
    Chunk crc: 25b3f696
    ---- Chunk #9 ----
    Chunk offset: 677
    Chunk size: 57
    Chunk crc: 80000420
    ---- Chunk #10 ----
    Chunk offset: 751
    Chunk size: 64
    Chunk crc: 91cf0867
    
  2. Process the image in silent mode:

    $ stegano -i image_file_name -m
    
  3. Read chunks at different positions:

    # Read 1 chunk starting from position 0
    $ stegano -i image_file_name -c 0 -u 10 -n 1 -m
    It is a valid PNG file. Let's process it!
    ---- Chunk #10000 ----
    Chunk offset: 13
    Chunk size: 0
    Chunk crc: 3d008
    
    # Read 3 chunks starting from position 10000
    $ stegano -i image_file_name -c 10000 -u 200000 -n 3 -m
    It is a valid PNG file. Let's process it!
    ---- Chunk #10000 ----
    Chunk offset: 13
    Chunk size: 0
    Chunk crc: 3d008
    ---- Chunk #10001 ----
    Chunk offset: 30
    Chunk size: 0
    Chunk crc: 52474200
    ---- Chunk #10002 ----
    Chunk offset: 47
    Chunk size: 73
    Chunk crc: 333db36f
    
  4. Encode an inject data in an image:

    # Encode and inject a payload in a new output image from a given input iamge. 
    $ stegano -i input_image_file_name -e -k 'pass' -p 'hello' -f 159028 -j -o output_image_file_name
    It is a valid PNG file. Let's process it!
    Image encoded and written successfully!
    
  5. Decode, extract secrets from an image and remove the secret from the image:

    $ stegano -i input_image_file_name -d -k 'pass' -j -f 159028 -o output_image_file_name -s
    Your decoded secret is: "hello"
    

🎨 Options

Option Description
-i or --input Sets the input image file.
-o or --output Sets the output file (default is "output.png").
-m or --meta Enables metadata extraction.
-n or --nb-chunks Read a specific number of chunks (default is 10).
-c or --start Sets the index of the start chunk to read from (default 1).
-u or --end Sets the index of the end chunk to stop reading at (default 11).
-s or --suppress Suppresses output messages.
-f or --offset Sets the offset (default is 10).
-j or --inject Enables injection.
-p or --payload Sets the payload (default is "hello").
-t or --type Sets the type (default is "PNG").
-e or --encode Enables encoding.
-d or --decode Enables decoding.
-k or --key Sets the key for payload encryption (default is "key").

🤝 Contributing

Contributions and feedback are welcome! If you'd like to contribute, report an issue, or suggest an enhancement, please engage with the project on GitHub. Your contributions help improve this crate for the community.

📄 License

This project is licensed under the MIT License.