Conceal or reveal secrets in images, audio, video, PDFs and QR codes – now with integrated detection, metadata scrubbing and bulk‑analysis.
| Area | Enhancement |
|---|---|
| Algorithms | OutGuess (F5), Steghide (Blowfish/AES), QR‑stego |
| Media Types | Full audio (WAV) & video (MP4) embedding via FFmpeg |
| Detection | StegExpose, Zsteg, StegSeek, Aletheia & STEG‑Detector |
| Metadata | EXIF / IPTC inject / wipe with ExifTool |
| Forensics | Binwalk & pdf‑parser one‑click payload carving |
| Automation | Plugin runner with auto tool detection, async CLI, REST /api/v4/* |
| Plugins | Adapters for OutGuess, StegHide, Zsteg, StegExpose, Aletheia, STEG‑Detector & DeepSteg |
| Watermarking | AES‑GCM watermark embed/check |
| Network | HTTP header & DNS covert channels |
| GUI | Advanced tab + detection pane, progress bars |
| CI / DevOps | GitHub Actions, Docker, coverage badge |
| Install | ./install-apt.sh or ./install-brew.sh – one line |
# 1. Install deps (Debian/Ubuntu/Kali)
sudo ./install-apt.sh # ↔ ./install-brew.sh on macOS
# Optional: automatically install external tools
./download_tools.sh
# 2. Launch the GUI
python -m steganography_tool.gui
# 3. Hide a secret with OutGuess (or StegHide)
stego.py plugin --tool outguess \
--action embed \
-i carrier.jpg -p secret.txt -o secret.jpg
# Example detection with Zsteg
stego.py plugin --tool zsteg \
--action detect \
-i suspicious.png -o result.txt
# 4. Run the REST API
python api.py
# 5. Detect hidden content in bulk
stego.py detect --in ./suspicious_samples --tool stegxpose --report report.csv
The GUI now includes an **advanced detection pane** with real-time progress bars to
visualize analysis of images, audio and videos.
# 🔒 Steganography Tool v2.0 (GUI)
<div align="center">

[](https://www.python.org/)
[](LICENSE)
[](https://github.com/elithaxxor/Steganography-Tool)
[](https://github.com/elithaxxor/Steganography-Tool)
**Conceal secrets in plain sight with advanced steganography techniques**
</div>
<p align="center">
This powerful steganography suite enables you to hide sensitive information within innocent-looking image files. Whether you're concerned about privacy, engaged in secure communications, or simply fascinated by cryptographic science, this tool provides the perfect balance of security and usability.
</p>
---
## 📋 Table of Contents
- [✨ Features](#-features)
- [🖼️ Screenshots](#-screenshots)
- [🎯 Why Use Steganography?](#-why-use-steganography)
- [🧩 Requirements](#-requirements)
- [⚙️ Installation](#️-installation)
- [🚀 Quick Start](#-quick-start)
- [🧠 DeepSteg Model](#-deepsteg-model)
- [📱 Usage Guide](#-usage-guide)
- [🔒 Security Details](#-security-details)
- [🔧 Supported Formats](#-supported-formats)
- [🔍 How It Works](#-how-it-works)
- [🛠️ Troubleshooting](#️-troubleshooting)
- [🤝 Contributing](#-contributing)
- [📜 License](#-license)
- [👤 Author](#-author)
---
## ✨ Features
<div align="center">
```mermaid
mindmap
root((Steganography Tool))
Data Concealment
🖼️ Image-based hiding
📝 Text embedding
🔐 Password protection
Security Layers
🔑 AES encryption
🧩 LSB technique
🔄 Distribution patterns
Experience
🖱️ Simple interface
📊 Capacity calculator
🔍 Preview capabilities
Compatibility
🖥️ Cross-platform
🗃️ Multiple formats
🔌 Extensible design- 🔍 Multiple Hiding Techniques: LSB (Least Significant Bit), DCT (Discrete Cosine Transform)
- 🔐 Strong Encryption: AES-256 encryption to protect your hidden data
- 🖼️ Format Support: Works with PNG, BMP, and JPEG images
- 📊 Capacity Analysis: Calculate how much data can be hidden in an image
- 📂 File Embedding: Hide any file type within compatible images
- 🔄 Batch Processing: Process multiple files simultaneously
- 🖥️ Cross-Platform: Compatible with Windows, macOS, and Linux
- 📱 Intuitive Interface: User-friendly design for all experience levels
- 🔍 Minimal Footprint: Changes to carrier images are virtually undetectable
- 🔒 Data Protection: Multi-layered security for your sensitive information
- 🧩 Dynamic Plugin Discovery: Drop-in plugins loaded via
STEGO_PLUGIN_PATH - 📈 HTML/JSON Reporting: Generate forensic dashboards from detection runs
- 🌐 Web Interface: Control tools remotely through a lightweight Flask app
Steganography offers unique security advantages that complement traditional encryption:
| 🔒 Encryption Alone | 🔐 Steganography + Encryption |
|---|---|
| Makes data unreadable | Makes data invisible AND unreadable |
| Signals the presence of secrets | Provides plausible deniability |
| Single layer of protection | Multiple security layers |
| Vulnerable to forced disclosure | Hidden data can't be forced to disclose if unknown |
💡 "The best security is when nobody knows you have something to hide in the first place."
By hiding information within ordinary files, steganography provides an additional layer of security that can be essential for:
- ✅ Protecting intellectual property
- ✅ Secure communications
- ✅ Privacy preservation
- ✅ Digital watermarking
- ✅ Confidential data storage
- Python 3.6+
- Operating System: Windows 7/10/11, macOS 10.13+, or Linux
- Disk Space: ~150MB (including dependencies)
- Python Libraries:
- PIL/Pillow (for image processing)
- NumPy (for numerical operations)
- Cryptography (for encryption/decryption)
- TKinter (for GUI version)
# Clone the repository
git clone https://github.com/elithaxxor/Steganography-Tool.git
# Navigate to the directory
cd Steganography-Tool
# Install dependencies
pip install -r requirements.txt
# Or run the helper script to create a virtual environment
bash setup.sh
# Offline install (no internet)
bash offline_install.sh- Visit https://github.com/elithaxxor/Steganography-Tool
- Click the "Code" button and select "Download ZIP"
- Extract the ZIP file to your preferred location
- Open a terminal/command prompt in the extracted directory
- Run
pip install -r requirements.txt - Offline install (no internet):
bash offline_install.sh
📋 View dependencies (requirements.txt)
pillow>=8.2.0
numpy>=1.19.5
cryptography>=3.4.7
tqdm>=4.61.1
pypng>=0.0.20
# Command Line Version
python stego.py embed -i original_image.png -o steganographic_image.png -m "Your secret message" -p "YourPassword"
# Or use the GUI version
python stego_gui.pyExtract Hidden Data
# Command Line Version
python stego.py extract -i steganographic_image.png -p "YourPassword"
# Or use the GUI version and select "Extract" mode
python stego_gui.pyThe neural detection plugin DeepSteg expects its model file
stego_plugins/deepsteg_model.pt. If the file is missing, the plugin
will automatically download it from the public release URL on first use.
No manual steps are required—simply invoke the plugin and the model will
be retrieved and saved alongside the other plugins.
You can extend the tool by loading external plugins from custom directories.
Set the STEGO_PLUGIN_PATH environment variable to point to one or more
locations that contain your plugin modules (use : to separate paths on
Linux/macOS or ; on Windows).
# Example: load plugins from two directories
export STEGO_PLUGIN_PATH="/opt/stego_plugins:$HOME/my_plugins"
stego.py plugin --tool myplugin \
--action embed -i cover.png -p secret.txt -o hidden.png┌─────────────────────────────────┐
│ Steganography Tool │
├─────────────────────────────────┤
│ ┌─────────┐ ┌─────────┐ │
│ │ Embed │ │ Extract │ │
│ └─────────┘ └─────────┘ │
│ │
│ ┌─────────────────────────────┐ │
│ │ Select Image: ▼ │ │
│ └─────────────────────────────┘ │
│ │
│ ┌─────────────────────────────┐ │
│ │ Message: │ │
│ │ [ ] │ │
│ └─────────────────────────────┘ │
│ │
│ ┌─────────────────────────────┐ │
│ │ Password: │ │
│ │ [ ] │ │
│ └─────────────────────────────┘ │
│ │
│ ┌─────────────────────────────┐ │
│ │ Process Data │ │
│ └─────────────────────────────┘ │
└─────────────────────────────────┘
- Select either "Embed" or "Extract" mode
- Choose your carrier image (or stego image for extraction)
- Enter your secret message or select a file to hide
- Set a strong password (essential for security)
- Click "Process Data" to begin
🔍 View complete command line options
Usage: stego.py [embed|extract] [options]
Embed Mode:
-i, --input FILE Input carrier image
-o, --output FILE Output steganographic image
-m, --message TEXT Message to hide
-f, --file FILE File to hide (alternative to message)
-p, --password TEXT Encryption password
-b, --bits N Bits per byte to use [1-4], default: 2
-d, --distribution Bit distribution pattern [sequential|random]
Extract Mode:
-i, --input FILE Input steganographic image
-o, --output FILE Output file for extracted data (optional)
-p, --password TEXT Decryption password
General Options:
-v, --verbose Show detailed output
-h, --help Show this help message
graph TD
A[Original Data] --> B{Encryption Needed?}
B -->|Yes| C[AES-256 Encryption]
B -->|No| D[Raw Data]
C --> E[Steganography Engine]
D --> E
E --> F[Carrier Image Analysis]
F --> G[Bit Manipulation]
G --> H[Steganographic Image]
style A fill:#3498db,stroke:#333,stroke-width:2px,color:white
style C fill:#e74c3c,stroke:#333,stroke-width:2px,color:white
style E fill:#2ecc71,stroke:#333,stroke-width:2px,color:white
style H fill:#f39c12,stroke:#333,stroke-width:2px,color:white
This tool employs several layers of security to protect your data:
- 🔑 AES-256: Military-grade encryption algorithm
- 🧂 Password Salting: Protects against rainbow table attacks
- 🔄 Iteration Stretching: PBKDF2 with thousands of iterations to slow brute-force attacks
- 🔍 LSB (Least Significant Bit) Technique: Modifies the least significant bits of pixel data to store information
- 📊 Statistical Attack Protection: Optional random distribution of hidden data
- 🧩 Signature Removal: Eliminates common steganographic signatures that detection tools look for
- ✅ Use strong, unique passwords (12+ characters with mixed case, numbers, and symbols)
- ✅ Prefer PNG or BMP formats for more reliable data hiding
- ✅ Use lower bit depths (1-2 bits) for less detectable changes
- ✅ Avoid sharing original carrier images that could be used for comparison
- ✅ Use secure channels to share steganographic images
| Format | Support Level | Notes |
|---|---|---|
| PNG | ★★★★★ | Best option with lossless compression |
| BMP | ★★★★★ | Excellent choice with no compression |
| TIFF | ★★★☆☆ | Good for larger capacity needs |
| JPG | ★★☆☆☆ | Limited reliability due to lossy compression |
| GIF | ★☆☆☆☆ | Very limited capacity |
- ✅ Plain text (UTF-8 encoded)
- ✅ Binary files (any file type)
- ✅ Compressed data (automatically compressed when beneficial)
LSB steganography works by replacing the least significant bits of the image pixel values with bits from the secret data:
Original pixel: 00101101 11010100 10101011
↓ ↓ ↓
Secret bits: 1 0 1
↓ ↓ ↓
Modified pixel: 00101101 11010100 10101011
↑ ↑ ↑
Changed Unchanged Changed
These changes are virtually imperceptible to the human eye but can be extracted with the right software and password.
-
Data Preparation:
- Text conversion or file reading
- Optional compression
- Encryption with user's password
-
Carrier Analysis:
- Calculate maximum embedding capacity
- Verify carrier can hold the data
- Generate embedding map (sequential or random)
-
Data Embedding:
- Distribute encrypted data bits throughout the image
- Modify least significant bits of pixels
- Save resulting steganographic image
-
Data Extraction:
- Read modified bits from steganographic image
- Reconstruct hidden data
- Decrypt with user's password
- Present recovered information
❓ Common Issues and Solutions
Issue: ModuleNotFoundError when running the script
Solution: Ensure all dependencies are installed:
pip install -r requirements.txtIssue: Permission errors during installation Solution: Try installing with elevated privileges or use a virtual environment:
# On Windows (as Administrator)
pip install -r requirements.txt
# On macOS/Linux
sudo pip install -r requirements.txt
# OR
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txtIssue: "Carrier capacity exceeded" error Solution: Either:
- Use a larger image
- Compress your secret data
- Reduce the amount of data you're trying to hide
Issue: Cannot extract data correctly Solution:
- Ensure you're using the exact same password used during embedding
- Verify the steganographic image hasn't been modified or compressed
- Check if you're using the correct extraction mode
Issue: Poor image quality after embedding Solution:
- Use PNG or BMP formats instead of JPG
- Reduce bits per byte setting (use
-b 1parameter) - Choose a more suitable carrier image with more complex patterns
Contributions are welcome! Help make this tool even better:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature
- Commit your changes:
git commit -m 'Add some amazing feature' - Push to your branch:
git push origin feature/amazing-feature
- Open a Pull Request
- 🌟 Support for audio steganography
- 🌟 Video steganography capabilities
- 🌟 Web-based interface
- 🌟 Improved resistance to steganalysis
- 🌟 Additional encryption options
- 🌟 Mobile application version
This project is licensed under the MIT License - see the LICENSE file for details.
Documentation | Report Bug | Request Feature
This tool is intended for security professionals to perform authorized security assessments only. Unauthorized scanning of networks may violate local, state, and federal laws. The author is not responsible for misuse or damage caused by this tool.
@copyleft my mistakes yours. feel free to incorporate it into your work. however, I'm not responsible for your actions. do not be unethical. do not harm others. do the right thing.