Author: Rolan (RNR)
Email: rolanlobo901@gmail.com
Version: 1.0.0
Last Updated: October 2025
Hey there! I'm Rolan, and this is InVisioVault - my advanced steganography project that I've been developing to make file hiding both powerful and accessible. This guide contains everything you need to know about installing, using, and understanding the system.
Since I'm the solo developer on this project, I've written this guide in a straightforward, personal way. Think of it as me sitting next to you and explaining how everything works.
- 🚀 Getting Started - Installation and first steps
- 💡 What is InVisioVault? - Core concepts and features
- 📦 Installation - Step-by-step setup
- 🎯 Basic Usage - Hide and extract files
- ⚡ Advanced Features - Power user capabilities
- 🏗️ Technical Architecture - How it works
- 🛡️ Security - Protection and best practices
- 🐛 Troubleshooting - Common issues and solutions
- 💻 For Developers - API and development guide
- 📞 Support - Getting help
Minimum Requirements:
- Windows 10+, macOS 12+, or Ubuntu 20.04+
- Python 3.8 or higher
- 4GB RAM (6GB+ recommended for multimedia files)
- 200MB free storage
For Video/Audio Steganography:
- FFmpeg installed on your system
- Additional 6GB+ RAM recommended
# 1. Clone the repository
git clone https://github.com/Mrtracker-new/InVisioVault_R.git
cd InVisioVault_R
# 2. Install (modern method - recommended)
pip install -e .
# 3. Launch the app
python main.pyThat's it! The app should open and you're ready to hide files.
InVisioVault is a steganography tool that lets you hide files inside images, videos, and audio files. Unlike simple password protection or encryption alone, steganography makes your hidden files invisible - nobody can tell there's anything hidden at all.
I wanted to create a tool that combines:
- Military-grade encryption (AES-256)
- Revolutionary speed (10-100x faster than traditional methods)
- Advanced anti-detection (evades analysis tools)
- Plausible deniability (decoy files for extra security)
- Multimedia support (images, videos, and audio)
- Hide any file type inside images (PNG, BMP, TIFF)
- Video steganography (MP4, AVI, MKV, MOV)
- Audio steganography (MP3, WAV, FLAC, AAC)
- Password protection with AES-256 encryption
- Two-factor authentication using keyfiles
- Automatic decoy mode - Every operation includes innocent-looking decoy files
- Multi-layer hiding - Hide multiple datasets with different passwords
- Anti-detection measures - Statistical masking to evade analysis tools
- Secure memory management - Sensitive data automatically cleared
- Revolutionary extraction speed - 10-100x faster than traditional methods
- Smart capacity detection - Automatic image analysis
- Batch processing - Handle multiple files efficiently
- Memory optimized - Efficient algorithms for large files
This is the method I recommend because it handles all dependencies automatically:
# Clone the repository
git clone https://github.com/Mrtracker-new/InVisioVault_R.git
cd InVisioVault_R
# Install in development mode
pip install -e .
# Launch
python main.pyBenefits:
- ✅ Automatic dependency resolution
- ✅ Easy updates with
git pull - ✅ Entry point support (run from anywhere)
- ✅ Future-proof packaging standards
- Download ZIP from the GitHub repository
- Extract to your desired location
- Open terminal in the extracted folder
- Run:
pip install -e . - Launch:
python main.py
If you're going to modify the code or want isolated dependencies:
# Create virtual environment
python -m venv invisiovault-env
# Activate it
# Windows:
invisiovault-env\Scripts\activate
# macOS/Linux:
source invisiovault-env/bin/activate
# Install
pip install -e .
# Launch
python main.pyWindows (using Chocolatey):
choco install ffmpegmacOS:
brew install ffmpegUbuntu/Debian:
sudo apt update
sudo apt install ffmpegCentOS/RHEL:
sudo yum install epel-release
sudo yum install ffmpeg# Test the import
python -c "import invisiovault; print('✅ Installation successful!')"
# Launch the GUI
python main.pyHere's the basic workflow I designed for hiding files:
- Launch the app: Run
python main.py - Click "Hide Files" in the main window
- Choose a cover image: Select a PNG, BMP, or TIFF image
- Tip: Larger images hold more data
- Select files to hide: Choose any files you want to hide
- The app shows how much capacity you have
- Set a password: Use a strong password (8+ characters)
- Click "Hide": The app creates a new image with your files hidden inside
That's it! Your files are now hidden with military-grade encryption and invisible to detection tools.
To get your files back:
- Click "Extract Files"
- Choose the image with hidden data
- Enter your password (must be exact)
- Choose output folder where files will be saved
- Click "Extract": Your files are recovered!
- Passwords are case-sensitive - "Password" ≠ "password"
- No password recovery - If you forget it, the files are unrecoverable
- Don't modify images - Editing or converting the image destroys hidden data
- Use lossless formats - JPEG compression will destroy your hidden files
| Format | Recommended | Why |
|---|---|---|
| 🟢 PNG | ✅ Excellent | Lossless, great capacity |
| 🟢 BMP | ✅ Excellent | Uncompressed, maximum quality |
| 🟢 TIFF | ✅ Excellent | Professional, lossless |
| 🔴 JPEG | ❌ Avoid | Lossy compression destroys data |
| 🔴 WEBP | ❌ Avoid | Compression artifacts |
Approximate hiding capacity by image size:
| Image Resolution | Approximate Capacity |
|---|---|
| 800x600 (480K pixels) | ~60KB files |
| 1920x1080 (2M pixels) | ~250KB files |
| 3840x2160 (8M pixels) | ~1MB files |
| 7680x4320 (33M pixels) | ~4MB files |
This is one of my favorite features - every time you hide files, the system automatically creates TWO layers:
- Decoy Layer (outer): Contains innocent-looking files (READMEs, configs, etc.)
- Real Layer (inner): Contains your actual files
How It Works:
- Your password accesses your real files
- The decoy layer uses a derived password
- If discovered, you can reveal the decoy files instead
- This gives you plausible deniability
Security Benefits:
- ✅ Zero extra steps required
- ✅ Works automatically on every operation
- ✅ Each layer independently encrypted
- ✅ Backward compatible with old images
For extra security, I've implemented keyfile-based 2FA:
- Generate a keyfile: Security → Generate Keyfile
- Creates a 256KB-1MB random file
- Hide with 2FA: Enable keyfile option when hiding
- Requires both password AND keyfile
- Extract with 2FA: Provide both password and keyfile
Important:
- Store keyfiles separately from images
- Create multiple backups
- Both password AND keyfile required to extract
I've added support for hiding files in videos and audio:
- Supported formats: MP4, AVI, MKV, MOV
- How it works: Hides data across video frames using LSB
- Quality: Preserves video quality (80%+ threshold)
- Capacity: Much larger than images
- Supported formats: MP3, WAV, FLAC, AAC
- Multiple techniques:
- LSB embedding (simple, high capacity)
- Spread spectrum (robust, lower capacity)
- Phase coding (high fidelity, medium capacity)
For power users who need more control:
- Access Multi-Decoy Dialog: Advanced → Multi-Decoy
- Create multiple datasets: Each with its own password
- Set priority levels: 1 (outer) to 5 (inner)
- Configure types: Innocent, Personal, Business
- Hide all layers: System hides everything at once
Use Cases:
- Different passwords for different people
- Graduated access levels
- Complex decoy scenarios
I designed InVisioVault with a layered architecture:
┌─────────────────────────────────────┐
│ UI Layer (PySide6) │ ← User Interface
├─────────────────────────────────────┤
│ Operations Layer │ ← Workflow Logic
├─────────────────────────────────────┤
│ Core Engines │ ← Algorithms
├─────────────────────────────────────┤
│ Utilities │ ← Helpers & Config
└─────────────────────────────────────┘
- LSB technique: Hides data in least significant bits
- Revolutionary optimization: 10-100x faster extraction
- Smart positioning: Password-seeded randomization
- Anti-detection: Statistical masking
- AES-256-CBC: Military-grade encryption
- PBKDF2 key derivation: 100K-1M+ iterations
- Secure memory: Automatic clearing of sensitive data
- Metadata support: Embedded file information
- Layered hiding: Multiple independent datasets
- Priority system: 5 security levels
- Universal extraction: Works with any password
- Automatic mode: Transparent dual-layer protection
- Video Engine: Frame-based LSB with OpenCV/FFmpeg
- Audio Engine: Multiple techniques (LSB, spread spectrum, phase)
- Analyzer: Capacity and quality assessment
InVisioVault/
├── main.py # Application entry point
├── requirements.txt # Dependencies
├── setup.py # Installation config
│
├── core/ # Core algorithms
│ ├── steganography_engine.py
│ ├── encryption_engine.py
│ ├── multi_decoy_engine.py
│ ├── video_steganography_engine.py
│ └── audio_steganography_engine.py
│
├── ui/ # User interface
│ ├── main_window.py
│ ├── dialogs/ # Dialog windows
│ ├── components/ # Reusable widgets
│ └── themes/ # Dark theme
│
├── operations/ # High-level operations
│ ├── hide_operation.py
│ ├── extract_operation.py
│ └── analysis_operation.py
│
├── utils/ # Utilities
│ ├── config_manager.py
│ ├── logger.py
│ └── file_utils.py
│
├── tests/ # Test suite
└── docs/ # Documentation (this file!)
The original steganography methods were SLOW because they had to:
- Try thousands of possible positions
- Check each candidate pixel
- Reconstruct and validate repeatedly
My optimization:
- Direct size reading eliminates guesswork
- Pre-computed positions using password seed
- Single-pass extraction
- Result: 10-100x faster (30+ seconds → 1-5 seconds)
I designed InVisioVault with defense-in-depth:
- Cryptographic Layer: AES-256 encryption
- Steganographic Layer: Randomized LSB hiding
- Access Control: Password + optional keyfile
- Operational Security: Secure logging and memory management
- Plausible Deniability: Automatic decoy protection
Strong Password Guidelines:
✅ Do:
- Use 12+ characters
- Mix uppercase, lowercase, numbers, symbols
- Use unique passphrases
- Avoid personal information
❌ Don't:
- Use dictionary words
- Use personal info (names, dates)
- Reuse passwords
- Use short passwords (<8 characters)
Password Strength Indicator:
- 🔴 Very Weak: <8 characters
- 🟠 Weak: 8-10 characters
- 🟡 Moderate: 10-12 characters
- 🟢 Strong: 12+ characters
- 🔵 Very Strong: 15+ characters
| Level | Iterations | Use Case | Speed |
|---|---|---|---|
| Standard | 100,000 | General use | Fast |
| High | 500,000 | Sensitive data | Medium |
| Maximum | 1,000,000+ | Highly sensitive | Slower |
File Management:
- ✅ Use unique passwords for different operations
- ✅ Store keyfiles separately from images
- ✅ Backup steganographic images securely
- ✅ Test extraction before relying on hidden data
- ✅ Use decoy data for plausible deniability
Operational Security:
- ✅ Use private, secure computers
- ✅ Avoid public/shared systems
- ✅ Clear temporary files after operations
- ✅ Use secure deletion for sensitive files
Image Selection:
- ✅ High resolution images (2MP+)
- ✅ Natural photographs with varied colors
- ✅ Lossless formats (PNG, BMP, TIFF)
- ❌ Avoid low resolution (<1MP)
- ❌ Avoid simple graphics or logos
- ❌ Never use JPEG or compressed formats
Never commit to Git:
- ❌ Private keys, keyfiles, certificates
- ❌ Passwords, API keys, credentials
- ❌ Personal files and test outputs
- ❌ Config files with secrets
Secure coding practices:
- ✅ Use environment variables for secrets
- ✅ Validate all inputs
- ✅ Never log sensitive data
- ✅ Use secure random number generation
Problem: The image doesn't have enough capacity.
Solutions:
- Use a higher resolution image
- Compress files before hiding
- Split data across multiple images
- Check capacity with the analyzer
Problem: Extraction failed.
Solutions:
- Verify password spelling and case
- Check if keyfile is required
- Ensure image hasn't been modified
- Try analyzing the image first
Problem: System instability.
Solutions:
- Check available memory (need 4GB+ free)
- Close other applications
- Reduce processing chunk size in settings
- Update dependencies:
pip install -r requirements.txt --upgrade
Causes and fixes:
- Large files: Enable chunked processing
- Low memory: Increase memory limit in settings
- CPU bottleneck: Enable multi-threading
- Storage I/O: Use SSD instead of HDD
# Windows
choco install ffmpeg
# macOS
brew install ffmpeg
# Linux
sudo apt install ffmpeg# Install audio dependencies
pip install librosa --upgrade
pip install pydub --upgrade
pip install scipy --upgradeCheck logs for detailed error information:
Location:
- Windows:
%USERPROFILE%\.invisiovault\logs\ - macOS/Linux:
~/.invisiovault/logs/
View logs:
# Recent errors
tail -f ~/.invisiovault/logs/invisiovault.log
# Search errors
grep "ERROR" ~/.invisiovault/logs/invisiovault.logfrom core.steganography_engine import SteganographyEngine
from core.encryption_engine import EncryptionEngine, SecurityLevel
from pathlib import Path
# Initialize engines
stego_engine = SteganographyEngine()
encrypt_engine = EncryptionEngine(SecurityLevel.HIGH)
# Hide data
carrier = Path("carrier.png")
data = b"Secret message!"
password = "MySecurePassword123"
# Encrypt
encrypted = encrypt_engine.encrypt_with_metadata(data, password)
# Hide in image
success = stego_engine.hide_data_with_password(
carrier_path=carrier,
data=encrypted,
output_path=Path("hidden.png"),
password=password
)
# Extract data
extracted = stego_engine.extract_data_with_password(
stego_path=Path("hidden.png"),
password=password
)
# Decrypt
decrypted = encrypt_engine.decrypt_with_metadata(extracted, password)
print(decrypted) # b"Secret message!"class SteganographyEngine:
def hide_data_with_password(self, carrier_path, data: bytes,
output_path, password: str) -> bool:
"""Hide data in image with password protection."""
def extract_data_with_password(self, stego_path,
password: str) -> bytes:
"""Extract hidden data from image."""class EncryptionEngine:
def encrypt_with_metadata(self, data: bytes,
password: str) -> bytes:
"""Encrypt data with AES-256."""
def decrypt_with_metadata(self, encrypted: bytes,
password: str) -> bytes:
"""Decrypt data."""class MultiDecoyEngine:
def hide_multiple_datasets(self, carrier_path,
datasets: List[Dict]) -> bool:
"""Hide multiple datasets with different passwords."""
def extract_dataset(self, stego_path, password: str) -> Dict:
"""Extract dataset matching password."""# Run all tests
python -m pytest tests/ -v
# Run specific test
python -m pytest tests/test_steganography.py -v
# Test with coverage
python -m pytest tests/ --cov=core --cov-report=htmlIf you'd like to contribute:
- Fork the repository
- Create a feature branch
- Make your changes
- Write tests
- Submit a pull request
Code standards:
- Follow PEP 8 style guide
- Add docstrings to all functions
- Include type annotations
- Write tests for new features
- Check this guide first - Most answers are here
- Review logs - Error messages often explain the issue
- GitHub Issues - Report bugs or request features
- Email me - rolanlobo901@gmail.com
- GitHub Repository: InVisioVault_R
- Email Support: rolanlobo901@gmail.com
InVisioVault is designed for educational purposes. I built it to:
- Learn advanced cryptography and steganography
- Demonstrate professional software architecture
- Teach secure coding practices
- Explore performance optimization
Always use responsibly and in compliance with local laws!
# Installation
pip install -e .
# Launch
python main.py
# Update
git pull origin main
pip install -e . --upgrade
# Run tests
python -m pytest tests/ -v
# Check logs
tail -f ~/.invisiovault/logs/invisiovault.logCtrl+H- Hide files dialogCtrl+E- Extract files dialogCtrl+A- Analyze imageCtrl+S- SettingsCtrl+Q- Quit
Images: PNG ✅ | BMP ✅ | TIFF ✅ | JPEG ❌
Video: MP4 ✅ | AVI ✅ | MKV ✅ | MOV ✅
Audio: WAV ✅ | FLAC ✅ | MP3 ✅ | AAC ✅
Thanks for using InVisioVault! I've put a lot of work into making this tool both powerful and easy to use.
If you have any questions, suggestions, or just want to say hi, feel free to reach out at rolanlobo901@gmail.com.
Remember: This is an educational project. Use it to learn about steganography, cryptography, and secure software development. Always respect privacy laws and use the tool responsibly.
Happy hiding! 🎭
— Rolan (RNR)
Version: 1.0.0
Last Updated: October 2025
License: MIT Educational License
Author: Rolan (RNR)
Email: rolanlobo901@gmail.com