Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
jdvrif — Ferramenta de Esteganografia para Imagens JPG | Kitploit
Ferramentas/GitHubGitHub/cleasbycode/jdvrif
Ferramentas de Criptografia/DescriptografiaExfiltração de DadosAnálise ForenseEsteganografiaCriptografiaPrivacidade
GitHubcleasbycode/jdvrif

jdvrif

Ferramenta de Esteganografia para Imagens JPG

Ver Repositório
69135há 3 diasRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

jdvrif

jdvrif (JPG Data Vehicle) é uma ferramenta de linha de comando de esteganografia rápida e fácil de usar para ocultar e extrair qualquer tipo de ficheiro através de uma imagem JPG. Apenas Linux.

O seu ficheiro de dados é comprimido com libdeflate/zlib, depois encriptado com XChaCha20-Poly1305 (secretstream da libsodium) sob uma chave derivada por Argon2id a partir de um PIN de recuperação gerado aleatoriamente, e finalmente incorporado na imagem de capa. O PIN é apresentado uma única vez, no final de conceal, e nunca é armazenado em lado nenhum: sem ele, o ficheiro oculto não pode ser recuperado.

Utilizando o modo de ocultação predefinido, pode ocultar qualquer tipo de ficheiro, com a imagem final limitada a 2GiB. Os outros modos de ocultação por plataforma e os sites de redes sociais compatíveis (listados abaixo) têm os seus próprios limites de tamanho muito mais pequenos e outros requisitos.

Existe uma edição Web do jdvrif, que pode utilizar imediatamente, como uma alternativa conveniente ao download e compilação do código-fonte da CLI. Os uploads de ficheiros pela Web estão limitados a 20MiB.

Está também disponível um port experimental em Rust jdvrif-rs para quem tenha interesse nessa linguagem. É compatível ao nível do formato: qualquer das compilações consegue recuperar as imagens da outra.

O jdvrif deriva em parte da técnica implementada pelo investigador de segurança David Buchanan.

Demo Image
Imagem de Demonstração: "A place of concealment" / PIN: 7912872750612437051

Como o jdvrif oculta dados

Ao contrário do método comum de esteganografia LSB (Least Significant Bit) de ocultar dados nos píxeis de uma imagem de capa, o jdvrif esconde sobretudo os dados dentro de segmentos de aplicação de uma imagem JPG (ICC, EXIF, XMP, etc).

Modo de ocultaçãoOnde os dados são colocadosPartilhe a imagem de saída em
(sem opção)Segmentos de perfil APP2/ICCX-Twitter, Tumblr, Mastodon, Pixelfed, PostImage, ImgBB, ImgPile, Flickr
-bSegmentos EXIF / Photoshop / XMP emolduradosApenas Bluesky
-rCoeficientes DCT JPEG (QIM)Apenas Reddit
-xCoeficientes DCT JPEG (J-UNIWARD/STC)Apenas X-Twitter

As duas exceções de plataforma ao método predefinido de armazenamento em segmentos são o Reddit e o X-Twitter. Ambos têm o seu próprio modo de ocultação, e nenhum desses modos utiliza segmentos de metadados: -r e -x transportam a carga útil nos coeficientes DCT da imagem JPG.

O Reddit recodifica as imagens carregadas e descarta os segmentos de metadados dos quais o modo predefinido depende, pelo que -r é o único modo que funciona nessa plataforma. O X-Twitter preserva um único segmento ICC pequeno, pelo que o modo predefinido ainda funciona nessa plataforma, mas apenas para uma carga útil minúscula.

Para o modo de ocultação do Reddit (-r), utilizamos o método de esteganografia QIM (Quantization Index Modulation no domínio DCT de JPEG), uma vez que este é o único método de armazenamento que atualmente funciona para o Reddit. A capa é transcodificada para baseline Q75 4:2:0 e a carga útil é transportada nos seus blocos DCT de luminância.

Para maximizar a capacidade de armazenamento para a plataforma Reddit, utilize uma imagem de capa com grandes dimensões, 2048x2048, 4096x4096, 8192x8192 (máx.), etc.

A qualidade da imagem de capa não é importante para este método e deve ser mantida básica para as maiores dimensões, de modo a ajudar a minimizar o tamanho do ficheiro da imagem de capa.

Embora a plataforma X-Twitter possa utilizar o método predefinido fornecido pelo jdvrif, em que os dados são ocultados dentro de segmentos APP2/ICC, o X-Twitter limita isto a um único segmento ICC com um tamanho máximo de apenas ~10KiB.

Para carregar mais do que esses ~10KiB, use o modo de ocultação da plataforma X-Twitter (-x). Ele abandona completamente os segmentos de metadados — nada é gravado em um perfil ICC — e, em vez disso, usa o método de esteganografia adaptativo J-UNIWARD com Syndrome-Trellis Coding (STC). A imagem de cobertura é transcodificada para 4:2:0 progressivo na qualidade derivada da fonte (limitada a Q97).

Para maximizar a capacidade de armazenamento para a plataforma X-Twitter, use uma imagem de cobertura de alta qualidade/detalhada com grandes dimensões, 1024x1024, 2048x2048, 4096x4096 (máx.), etc.

Os transportadores -r e -x criptografam seus dados e vinculam sua localização ao seu PIN de recuperação usando Argon2id, mas a incorporação ainda altera as estatísticas DCT da imagem, de modo que a esteganálise dedicada pode revelar que uma imagem carrega dados ocultos.

Imagens -r e -x criadas com jdvrif v9.0 permanecem recuperáveis, mas a v9.0 não consegue recuperar imagens -r ou -x criadas com a v9.1.

Ambos os modos DCT carregam muito menos dados do que o modo padrão, então use capsize para medir uma imagem de cobertura antes de escolher um payload (veja Verificando a capacidade).

Requisitos e Compilação (Linux)

A compilação requer CMake 3.20 ou mais recente, flock do util-linux, e Ninja (preferido) ou Make. O compilador deve ser GCC 14 ou mais recente, ou Clang 18 ou mais recente emparelhado com uma biblioteca padrão C++23 que implemente recursos como std::format e std::print. As bibliotecas nativas necessárias são libsodium, libjpeg-turbo (tanto as APIs turbojpeg quanto libjpeg), zlib e libdeflate. OpenMP é opcional: quando presente, ele paraleliza a passagem de custo J-UNIWARD do -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

Se a sua distribuição fornece o GCC 14 como um pacote versionado, instale g++-14 e compile com CXX=g++-14 ./compile_jdvrif.sh.

O wrapper mantém os arquivos objeto rastreados por dependências em src/build/, de modo que invocações posteriores recompilam apenas o que mudou, e substitui o binário jdvrif publicado apenas após uma compilação completa e bem-sucedida. Defina JDVRIF_JOBS=<count> para alterar o limite de paralelismo (padrão: número de CPUs, limitado a 8), JDVRIF_BUILD_DIR=<path> para usar um cache de compilação separado, ou BUILD_MODE=sanitize para uma compilação com 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

Execute jdvrif --info para obter o guia completo integrado sobre modos, opções de plataforma e limites de tamanho.

$ jdvrif conceal your_cover_image.jpg your_secret_file.doc

Platform compatibility for output image:-
Baixar ferramenta