Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
jdvrif — Strumento di steganografia per immagini JPG | Kitploit
Strumenti/GitHubGitHub/cleasbycode/jdvrif
Strumenti di Crittografia/DecrittografiaEsfiltrazione DatiInformatica ForenseSteganografiaCrittografiaPrivacy
GitHubcleasbycode/jdvrif

jdvrif

Strumento di steganografia per immagini JPG

Vedi Repository
691353 giorni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

jdvrif

jdvrif (JPG Data Vehicle) è uno strumento da riga di comando per la steganografia veloce e facile da usare, che consente di occultare ed estrarre qualsiasi tipo di file tramite un'immagine JPG. Solo Linux.

Il file di dati viene compresso con libdeflate/zlib, poi cifrato con XChaCha20-Poly1305 (secretstream di libsodium) sotto una chiave derivata tramite Argon2id da un PIN di recupero generato casualmente, e infine incorporato nell'immagine di copertura. Il PIN viene mostrato una sola volta, al termine di conceal, e non viene mai memorizzato da nessuna parte: senza di esso il file occultato non può essere recuperato.

Usando la modalità conceal predefinita, è possibile occultare qualsiasi tipo di file, con l'immagine finale limitata a 2GiB. Le altre modalità conceal per piattaforme e i siti di social media compatibili (elencati di seguito) hanno i propri limiti di dimensione molto più ridotti e altri requisiti.

Esiste una edizione Web di jdvrif, utilizzabile immediatamente come comoda alternativa al download e alla compilazione del codice sorgente della CLI. I caricamenti di file via Web sono limitati a 20MiB.

È inoltre disponibile un port sperimentale in Rust jdvrif-rs per chi è interessato a quel linguaggio. È compatibile a livello di formato: una build può recuperare le immagini prodotte dall'altra.

jdvrif deriva in parte dalla tecnica implementata dal ricercatore di sicurezza David Buchanan.

Demo Image
Immagine dimostrativa: "A place of concealment" / PIN: 7912872750612437051

Come jdvrif occulta i dati

A differenza del comune metodo di steganografia LSB (Least Significant Bit) che occulta i dati nei pixel di un'immagine di copertura, jdvrif nasconde per lo più i dati all'interno dei segmenti applicativi di un'immagine JPG (ICC, EXIF, XMP, ecc.).

Modalità concealDove finiscono i datiCondivisione dell'immagine di output su
(nessuna opzione)segmenti APP2/profilo ICCX-Twitter, Tumblr, Mastodon, Pixelfed, PostImage, ImgBB, ImgPile, Flickr
-bsegmenti EXIF / Photoshop / XMP incorniciatisolo Bluesky
-rcoefficienti DCT JPEG (QIM)solo Reddit
-xcoefficienti DCT JPEG (J-UNIWARD/STC)solo X-Twitter

Le due eccezioni di piattaforma al metodo di archiviazione predefinito nei segmenti sono Reddit e X-Twitter. Entrambe hanno una propria modalità conceal, e nessuna di queste modalità utilizza affatto i segmenti di metadati: -r e -x trasportano il payload nei coefficienti DCT dell'immagine JPG.

Reddit ricodifica le immagini caricate e scarta i segmenti di metadati su cui si basa la modalità predefinita, quindi -r è l'unica modalità che funziona lì. X-Twitter conserva invece un singolo e piccolo segmento ICC, quindi la modalità predefinita funziona ancora su quella piattaforma, ma solo per un payload minuscolo.

Per la modalità conceal di Reddit (-r), utilizziamo il metodo di steganografia QIM (Quantization Index Modulation nel dominio DCT JPEG), poiché è l'unico metodo di archiviazione che attualmente funziona per Reddit. La copertura viene transcodificata in baseline Q75 4:2:0 e il payload viene trasportato nei suoi blocchi DCT di luminanza.

Per massimizzare la capacità di archiviazione per la piattaforma Reddit, utilizzare un'immagine di copertura con dimensioni elevate, 2048x2048, 4096x4096, 8192x8192 (max), ecc.

La qualità dell'immagine di copertura non è importante per questo metodo e dovrebbe essere mantenuta basilare per le dimensioni più grandi, per contribuire a ridurre al minimo la dimensione del file dell'immagine di copertura.

Sebbene la piattaforma X-Twitter possa utilizzare il metodo predefinito fornito da jdvrif, in cui i dati vengono occultati all'interno dei segmenti APP2/ICC, X-Twitter limita questo a un singolo segmento ICC con una dimensione massima di appena ~10KiB.

Per trasportare più di ~10KiB, usa la modalità di occultamento della piattaforma X-Twitter (-x). Abbandona completamente i segmenti di metadati — nulla viene scritto in un profilo ICC — e utilizza invece il metodo di steganografia adattivo J-UNIWARD con Syndrome-Trellis Coding (STC). La cover viene transcodificata in progressivo 4:2:0 alla sua qualità derivata dalla sorgente (limitata a Q97).

Per massimizzare la capacità di archiviazione per la piattaforma X-Twitter, usa un'immagine di copertura di alta qualità/dettaglio con dimensioni elevate, 1024x1024, 2048x2048, 4096x4096 (max), ecc.

I carrier -r e -x cifrano i tuoi dati e ne vincolano la posizione al tuo PIN di recupero usando Argon2id, ma l'incorporamento altera comunque le statistiche DCT dell'immagine, quindi una steganalisi dedicata potrebbe rivelare che un'immagine contiene dati nascosti.

Le immagini -r e -x create con jdvrif v9.0 restano recuperabili, ma v9.0 non è in grado di recuperare le immagini -r o -x create con v9.1.

Entrambe le modalità DCT trasportano molti meno dati rispetto alla modalità predefinita, quindi usa capsize per misurare un'immagine di copertura prima di scegliere un payload (vedi Verifica della capacità).

Requisiti e compilazione (Linux)

La compilazione richiede CMake 3.20 o superiore, flock da util-linux e Ninja (preferito) oppure Make. Il compilatore deve essere GCC 14 o superiore, oppure Clang 18 o superiore abbinato a una libreria standard C++23 che implementi funzionalità come std::format e std::print. Le librerie native richieste sono libsodium, libjpeg-turbo (sia le API turbojpeg che libjpeg), zlib e libdeflate. OpenMP è opzionale: quando presente, parallelizza la fase di costo J-UNIWARD di -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 la tua distribuzione fornisce GCC 14 come pacchetto con versione, installa g++-14 e compila con CXX=g++-14 ./compile_jdvrif.sh.

Il wrapper mantiene i file oggetto tracciati dalle dipendenze sotto src/build/, così le invocazioni successive ricompilano solo ciò che è cambiato, e sostituisce il binario jdvrif pubblicato solo dopo una compilazione completa e riuscita. Imposta JDVRIF_JOBS=<count> per modificare il limite di parallelismo (predefinito: numero di CPU, con un massimo di 8), JDVRIF_BUILD_DIR=<path> per usare una cache di compilazione separata, oppure BUILD_MODE=sanitize per una build ASan/UBSan.

Utilizzo

$ jdvrif

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

Esegui jdvrif --info per la guida integrata completa su modalità, opzioni di piattaforma e limiti di dimensione.

Scarica lo strumento