
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 |
|---|---|---|
![]() | ![]() |
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)
Positional arguments (only used in CLI mode):
-s, --show Show the difference between two images (default: False)
-e, --encode Encode the file in the image (default: False)
-d, --decode Decode the file hidden in the image (default: False)
-c COVER_IMAGE, --cover COVER_IMAGE
Image to be used for hiding or revealing, positional only when using decoding, encoding or differentiate
-f HIDDEN_FILE, --file HIDDEN_FILE
File to be hidden
Por ejemplo, si quieres ocultar un archivo llamado secret.txt dentro de una imagen llamada image.png y quieres guardar la imagen modificada en una carpeta llamada output, ejecutarías el siguiente comando:
python vangonography.py -cli -e -c [Absolute path to your `image.png` cover image] -f [Absolute path to your `secret.txt` file] -o Output
Esto creará un directorio llamado Output en el mismo directorio que el programa y, dentro de él, habrá un archivo llamado Cover_txt.png, que será la imagen modificada con el archivo oculto en su interior. Si quieres decodificar el archivo de la imagen, ejecutarías el siguiente comando:
python vangonography.py -cli -d -c [Absolute path (or not) to your `Cover_txt.png` cover image] -o Output
Si además quieres crear un archivo log.log con toda la información sobre el programa, puedes ejecutar el siguiente comando:
python vangonography.py -cli -d -c [Absolute path (or not) to your `Cover_txt.png` cover image] -o Output -l
MIT © Van Gonography MIT
Las pull requests son más que bienvenidas; me encanta ver a la gente contribuir a mis proyectos y me aseguraré de revisar cada una de ellas. Siéntete libre de contribuir con traducciones, funciones, correcciones de errores o cualquier otra cosa que consideres necesaria, ¡incluso documentación y archivos README! si te encuentras con algún error, abre un issue e intentaré solucionarlo lo antes posible :)
¡Agradecemos las contribuciones de la comunidad! Tanto si eres desarrollador, diseñador o simplemente un usuario entusiasta, hay muchas formas de participar.
¿Listo para contribuir? Comienza haciendo un fork del repositorio y haciendo tu primera contribución hoy. ¡Cada contribución, por pequeña que sea, marca la diferencia!
![]() |
| 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 |