
Hide 🕵️♂️ tus archivos de cualquier tipo dentro de una imagen de tu elección usando esteganografía
Oculta cualquier tipo de archivo dentro de una imagen de tu elección
| Archivo a ocultar | Imagen de portada | Portada con el archivo oculto |
|---|---|---|
![]() | ![]() | ![]() |
| Este es el archivo que queremos ocultar dentro de la imagen | Esta es la imagen dentro de la cual queremos ocultar el archivo | Esta es la imagen de portada con el archivo en su interior |
Conceptos básicos del almacenamiento digital
Todo lo que hay en tu ordenador, desde archivos .exe hasta imágenes .jpg, se almacena como bits. Los bits son solo 1 y 0. Por ejemplo:
A = 01000001B = 01000010En realidad, un archivo de 1 gigabyte son 8,5 mil millones de 1 y 0 alineados en una fila. Esto se llama binario y es la base de todo el almacenamiento digital.
Píxeles y colores
Las imágenes se componen de píxeles. El color de cada píxel proviene del formato RGB (Red, Green, Blue, es decir, rojo, verde, azul). Cada canal RGB va de 0 a 255, lo que permite 256 valores. Este rango equivale a 8 bits (2^8 = 256), por lo que cada canal puede representarse con 1 byte.
Ejemplo: un píxel rojo es (0xFF, 0x00, 0x00) o en bits 11111111 00000000 00000000.
Ocultar un archivo en una imagen
Ocultar un archivo dentro de una imagen es en realidad más sencillo de lo que parece. Todo lo que necesitamos hacer es:
Por ejemplo, si tomamos los primeros 2 bits de un archivo y los reemplazamos en el canal de un píxel, un píxel rojo (11111111 00000000 00000000) puede cambiar a (11111111 00000000 00000011) sin una diferencia visible.
Repite este proceso para cada píxel y cada bit del archivo, y listo, ¡el archivo queda oculto en la imagen!
Pruébalo tú mismo
Echa un vistazo al repositorio de Python proporcionado para ver una implementación fácil de entender de este proceso.
# Clona el repositorio
git clone https://github.com/JoshuaKasa/van-gonography.git
# Cambia el directorio de trabajo a van-gonography
cd van-gonography
# Instala las dependencias requeridas
pip install -r requirements.txt
Para ejecutar el programa en modo UI (más simple y fácil de usar, pero también menos útil para desarrolladores), solo tienes que ejecutar el siguiente comando:
python vangonography.py
Para ejecutar el programa en modo CLI (más complicado pero con algunas funcionalidades más), ejecuta el siguiente comando:
python vangonography.py -cli
A continuación puedes usar los siguientes argumentos junto con él:
usage: vangonography.py [-h] [-ood] [-l] [-cli] [-o OUTPUT_DIR] [-v] [--encrypt] [--decrypt] [--key KEY] [--json JSON_FILE] [--stealth] [-s] [-e] [-d] [-c COVER_IMAGE]
[-f HIDDEN_FILE]
Van Gonography is a steganography tool that hides files in images.
options:
-h, --help show this help message and exit
Optional arguments:
-ood Open file after decoding from image (default: False)
-l, --log Log file for the program (default: False)
-cli Run the program in CLI mode, this means there's not gonna be any menu (default: False)
-o OUTPUT_DIR, --output OUTPUT_DIR
Output directory for the modified image or revealed file
-v, --version Show the version number and exit
--encrypt Encrypt the data before hiding it (default: False)
--decrypt Decrypt the data after revealing it (default: False)
--key KEY Key to decrypt the data (default: None)
--json JSON_FILE JSON file containing the arguments (default: None)
--stealth Hides the file in stealth mode (default: False)