Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
jdvrif — Herramienta de esteganografía para imágenes JPG | Kitploit
Herramientas/GitHubGitHub/cleasbycode/jdvrif
Herramientas de Cifrado/DescifradoExfiltración de DatosAnálisis ForenseEsteganografíaCriptografíaPrivacidad
GitHubcleasbycode/jdvrif

jdvrif

Herramienta de esteganografía para imágenes JPG

Ver Repositorio
69135hace 5 díasRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

jdvrif

jdvrif (JPG Data Vehicle) es una herramienta de línea de comandos de esteganografía rápida y fácil de usar para ocultar y extraer cualquier tipo de archivo mediante una imagen JPG. Solo Linux.

Tu archivo de datos se comprime con libdeflate/zlib, luego se cifra con XChaCha20-Poly1305 (secretstream de libsodium) bajo una clave derivada mediante Argon2id a partir de un PIN de recuperación generado aleatoriamente, y finalmente se incrusta en la imagen de portada. El PIN se muestra una sola vez, al final de conceal, y nunca se almacena en ningún lugar: sin él, el archivo oculto no puede recuperarse.

Usando el modo de ocultación predeterminado, puedes ocultar cualquier tipo de archivo, con la imagen final limitada a 2GiB. Los demás modos de ocultación para plataformas y los sitios de redes sociales compatibles (enumerados a continuación) tienen sus propios límites de tamaño mucho más pequeños y otros requisitos.

Existe una edición Web de jdvrif, que puedes usar de inmediato como alternativa conveniente a descargar y compilar el código fuente de la CLI. Las cargas de archivos web están limitadas a 20MiB.

También está disponible un port experimental a Rust jdvrif-rs para quienes estén interesados en ese lenguaje. Es compatible en formato: cualquiera de las dos compilaciones puede recuperar las imágenes de la otra.

jdvrif deriva en parte de la técnica implementada por el investigador de seguridad David Buchanan.

Demo Image
Imagen de demostración: "A place of concealment" / PIN: 7912872750612437051

Cómo oculta datos jdvrif

A diferencia del método común de esteganografía LSB (Least Significant Bit) para ocultar datos dentro de los píxeles de una imagen de portada, jdvrif oculta principalmente los datos dentro de los segmentos de aplicación de una imagen JPG (ICC, EXIF, XMP, etc.).

Modo de ocultaciónDónde van los datosCompartir la imagen de salida en
(sin opción)Segmentos de perfil APP2/ICCX-Twitter, Tumblr, Mastodon, Pixelfed, PostImage, ImgBB, ImgPile, Flickr
-bSegmentos EXIF / Photoshop / XMP enmarcadosBluesky únicamente
-rCoeficientes DCT de JPEG (QIM)Reddit únicamente
-xCoeficientes DCT de JPEG (J-UNIWARD/STC)X-Twitter únicamente

Las dos excepciones de plataforma al método de almacenamiento en segmentos predeterminado son Reddit y X-Twitter. Ambas tienen su propio modo de ocultación, y ninguno de esos modos utiliza segmentos de metadatos en absoluto: -r y -x transportan la carga útil en los coeficientes DCT de la imagen JPG en su lugar.

Reddit recodifica las imágenes subidas y descarta los segmentos de metadatos en los que se basa el modo predeterminado, por lo que -r es el único modo que funciona allí. X-Twitter sí conserva un único segmento ICC pequeño, por lo que el modo predeterminado sigue funcionando en esa plataforma, pero solo para una carga útil muy pequeña.

Para el modo de ocultación de Reddit (-r), usamos el método de esteganografía QIM (Modulación por Índice de Cuantización en el dominio DCT de JPEG), ya que este es el único método de almacenamiento que funciona actualmente para Reddit. La portada se transcodifica a baseline Q75 4:2:0 y la carga útil se transporta en sus bloques DCT de luminancia.

Para maximizar la capacidad de almacenamiento para la plataforma Reddit, usa una imagen de portada con dimensiones grandes, 2048x2048, 4096x4096, 8192x8192 (máx.), etc.

La calidad de la imagen de portada no es importante para este método y debe mantenerse básica para las dimensiones más grandes, para ayudar a minimizar el tamaño del archivo de la imagen de portada.

Aunque la plataforma X-Twitter puede usar el método predeterminado proporcionado por jdvrif, donde los datos se ocultan dentro de segmentos APP2/ICC, X-Twitter limita esto a un único segmento ICC con un tamaño máximo de solo ~10KiB.

Para transportar más de esos ~10KiB, utilice el modo de ocultación de la plataforma X-Twitter (-x). Abandona por completo los segmentos de metadatos —no se escribe nada en un perfil ICC— y en su lugar utiliza el método de esteganografía adaptativo J-UNIWARD con Syndrome-Trellis Coding (STC). La imagen portadora se transcodifica a 4:2:0 progresivo con su calidad derivada del origen (limitada a Q97).

Para maximizar la capacidad de almacenamiento para la plataforma X-Twitter, utilice una imagen portadora de alta calidad/con detalle y con dimensiones grandes, 1024x1024, 2048x2048, 4096x4096 (máx.), etc.

Los portadores -r y -x cifran sus datos y vinculan su ubicación a su PIN de recuperación mediante Argon2id, pero la inserción sigue alterando las estadísticas DCT de la imagen, por lo que un estegoanálisis dedicado podría revelar que una imagen contiene datos ocultos.

Las imágenes -r y -x creadas con jdvrif v9.0 siguen siendo recuperables, pero v9.0 no puede recuperar imágenes -r o -x creadas con v9.1.

Ambos modos DCT transportan mucha menos información que el modo predeterminado, así que utilice capsize para medir una imagen portadora antes de elegir una carga útil (consulte Comprobación de la capacidad).

Requisitos y compilación (Linux)

La compilación requiere CMake 3.20 o superior, flock de util-linux, y Ninja (preferido) o Make. El compilador debe ser GCC 14 o superior, o Clang 18 o superior junto con una biblioteca estándar de C++23 que implemente características como std::format y std::print. Las bibliotecas nativas necesarias son libsodium, libjpeg-turbo (tanto las API turbojpeg como libjpeg), zlib y libdeflate. OpenMP es opcional: cuando está presente, paraleliza la pasada de coste de J-UNIWARD de -x.

$ sudo apt update
$ sudo apt install g++ cmake ninja-build util-linux libsodium-dev libturbojpeg0-dev libjpeg-dev zlib1g-dev libdeflate-dev

$ g++ --version   # confirm the reported version is 14 or newer

$ chmod +x compile_jdvrif.sh
$ ./compile_jdvrif.sh

$ sudo cp jdvrif /usr/bin

Si tu distribución incluye GCC 14 como paquete versionado, instala g++-14 y compila con CXX=g++-14 ./compile_jdvrif.sh.

El wrapper mantiene los archivos objeto con seguimiento de dependencias en src/build/, de modo que las invocaciones posteriores solo recompilan lo que cambió, y reemplaza el binario jdvrif publicado únicamente tras una compilación completa y exitosa. Establece JDVRIF_JOBS=<count> para cambiar el límite de paralelismo (por defecto: número de CPU, con un máximo de 8), JDVRIF_BUILD_DIR=<path> para usar una caché de compilación separada, o BUILD_MODE=sanitize para una compilación con ASan/UBSan.

Uso

$ jdvrif

Usage: jdvrif conceal [-b|-r|-x] <cover_image> <secret_file>
       jdvrif recover <cover_image>
       jdvrif capsize [-r|-x] <cover_image>
       jdvrif --info

Ejecuta jdvrif --info para acceder a la guía completa integrada sobre modos, opciones de plataforma y límites de tamaño.

Descargar herramienta