Skip to main content

A steganography tool for embedding and extracting data in images

Project description

EZ-Steg: Easy-to-use Steganography Tool

A user-friendly steganography tool for embedding and extracting data in images. Includes support for both secure (encrypted) and low-overhead (unencrypted) modes.

Also includes a tool to create carrier .png files for testing and exfiltration purposes.

Installation

# Clone the repository
git clone https://github.com/a-bissell/ez-steg.git

# Move to folder
cd ez-steg

# Install requirements
pip install -r .\requirements.txt

# OPTIONAL: Install the package (only needed for automated tests/developers)
pip install -e .

## Usage

### Running the Tool
```bash
python -m src.ez_steg_interactive

```Powershell
python .\src\ez_steg_interactive.py

Features

Two Operating Modes

  • Production Mode: Full security with encryption for sensitive data
  • Lite Mode: Fast and simple operations without encryption

Core Functionality

  • Embed data (files or entire folders) into PNG images
  • Extract hidden data from steganographic images
  • Create carrier images sized for your data
  • Interactive command-line interface with rich formatting

Advanced Features

  • Automatic image format conversion to RGB
  • Folder compression with customizable exclusion patterns
  • Progress indicators and operation summaries
  • Capacity checking before operations
  • Secure password handling
  • Human-readable size formatting
  • More tests than you can shake a stick at

Main Menu Options

  1. Embed Data: Hide files or folders in an image
  2. Extract Data: Retrieve hidden data from an image
  3. Create Carrier Image: Generate a new carrier image
  4. Switch Mode: Toggle between Production and Lite modes
  5. Exit: Close the application

Example Operations

Creating a Carrier Image

  1. Select "Create carrier image" from the menu
  2. Choose naming method (default timestamp or custom)
  3. Select data source (file or folder)
  4. Set margin factor (e.g., 1.2 for 20% extra space)
  5. Choose output directory

Embedding Data

  1. Select "Embed data" from the menu
  2. Provide carrier image path
  3. Select data to embed (file or folder)
  4. Enter password (Production mode only)
  5. Confirm operation details

Extracting Data

  1. Select "Extract data" from the menu
  2. Provide embedded image path
  3. Enter password (Production mode only)
  4. Specify output location
  5. Confirm extraction

Development

Running Tests

# Run all tests
pytest tests/

# Run with coverage
pytest tests/ --cov=src

# Run specific test file
pytest tests/test_ez_steg_interactive.py

Test Coverage

The project includes comprehensive tests for:

  • Basic functionality and initialization
  • Mode switching and configuration
  • File and path handling
  • Data embedding and extraction
  • Image operations and validation
  • Error handling and edge cases

Project Structure

ez-steg/
├── src/
│   ├── ez_steg_interactive.py  # Main interactive interface
│   ├── ez_steg_core.py       # Core implementation with encryption
│   └── ez_steg_lite.py       # Lite implementation without encryption
├── tests/
│   ├── test_ez_steg_interactive.py
│   ├── test_ez_steg_core.py
│   └── test_ez_steg_lite.py
├── docs/
│   └── INTERACTIVE.md        # Detailed usage documentation
├── requirements.txt          # Production dependencies
└── setup.py                 # Package configuration

Security Considerations

  • Production mode uses strong encryption for data security
  • Passwords must be at least 12 characters
  • Temporary files are securely cleaned up
  • Input validation prevents some common security issues
  • No sensitive data is logged or exposed

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests for new functionality
  5. Submit a pull request

License

MIT

Acknowledgments

  • Built with Python and various open-source libraries
  • Uses Rich for terminal formatting

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ez_steg-0.1.0.tar.gz (58.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ez_steg-0.1.0-py3-none-any.whl (15.2 kB view details)

Uploaded Python 3

File details

Details for the file ez_steg-0.1.0.tar.gz.

File metadata

  • Download URL: ez_steg-0.1.0.tar.gz
  • Upload date:
  • Size: 58.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.6

File hashes

Hashes for ez_steg-0.1.0.tar.gz
Algorithm Hash digest
SHA256 3763da711bae2a614c5038edbd8cb81926972861e89a3d1ff88377f8ce4e5133
MD5 23eba434c99189fb94475e5e0a3e325c
BLAKE2b-256 a803c6d7ef0e754fbc6ccbb87f34f6cfbd4e113b31e8496f049524c3baef7c68

See more details on using hashes here.

File details

Details for the file ez_steg-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: ez_steg-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 15.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.6

File hashes

Hashes for ez_steg-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2a45d8d9d9a17ca4763da148ae86277e3146d7b6be8db2c712fa3035a5160dd5
MD5 eb99fcda53a9a3e3ff3361409a6d941d
BLAKE2b-256 ba5e1673ab72180d382248ad332179fd7cf074f0ec04da41a5af18e0fbc586dc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page