XenHide is a Python-based steganography toolkit for embedding and extracting hidden data within digital media. It provides both command-line scripts and a lightweight graphical interface, inspired by tools such as steghide and zsteg.
XenHide runs on Linux, Windows, and macOS.
Steganography is the practice of concealing information within a non-secret carrier medium such that the existence of the hidden data is not apparent to an observer. Unlike encryption, which makes data unreadable, steganography makes data invisible. In the digital world, common techniques include:
- Hiding text inside the least significant bits (LSB) of an image's pixels
- Embedding data inside audio waveforms without perceptible distortion
- Concealing information within metadata or file structure patterns XenHide currently focuses on image-based steganography using the LSB technique.
XenHide is a Python project with minimal dependencies. A virtual environment is recommended.
| Platform | Dependencies |
|---|---|
| Linux | Python 3.13+, stegano |
| Windows | Python 3.13+, stegano |
| macOS | Python 3.13+, stegano |
| GUI (all) | PyQt5 (optional) |
| Developed and tested on Python 3.13. |
Download the latest version from the XenHide Releases
Mobile users: the Android app is available as a prebuilt APK — grab xh_mobile.apk directly from the Releases page and sideload it (no build steps required).
linux:(still working)
git clone https://github.com/XATUM/XenHide.git
cd XenHide
python -m venv .venv
source .venv/bin/activate
pip install stegano PyQt5
git clone https://github.com/XATUM/XenHide.git
cd XenHide
python -m venv .venv
.venv\Scripts\activate
pip install stegano PyQt5
No build required — download xh_mobile.apk from Releases and install directly on your device. (Enable "Install from unknown sources" if prompted.)
Embed data into an image:
python xencrypt.py
Extract hidden data from an image:
python xendcrypt.py
See each script's inline comments for available options.
python Application/XenHideGUI.py
XenHide/
├── xencrypt.py — CLI tool for embedding data into a carrier image
├── xendcrypt.py — CLI tool for extracting hidden data from an image
├── Application/
│ └── XenHideGUI.py — Experimental PyQt5 graphical frontend
├── XHMobile/ — Flutter-based mobile app source (Android/Windows)
└── LICENSE
Contributions, bug reports, and feature suggestions are welcome. Please open an issue before submitting a pull request so the change can be discussed first. To contribute:
- Fork the repository
- Create a feature branch (
git checkout -b feature/your-feature) - Commit your changes (
git commit -m 'Add your feature') - Push to the branch (
git push origin feature/your-feature) - Open a pull request This project is intended for learning and authorized research. Please be mindful of the legal and ethical implications when working with steganography.
XenHide is intended strictly for educational purposes, authorized security research, and lawful use cases. Users are responsible for ensuring their use of this tool complies with applicable laws and regulations.
This project is released under the GNU General Public License v3.0. See the LICENSE file for details.