Zurück zu den Updates
UpdatedSep 2, 2026

jdvrif — Updated!

Steganografie-Tool für JPG-Bilder

Teilen

jdvrif

jdvrif ist ein schnelles, benutzerfreundliches Steganografie-Kommandozeilen-Tool zum Verbergen und Extrahieren beliebiger Dateitypen über ein JPG-Bild.

Es gibt auch eine Web-Edition, die Sie sofort nutzen können, als praktische Alternative zum Herunterladen und Kompilieren des CLI-Quellcodes. Web-Datei-Uploads sind auf 20MB begrenzt.

Ein experimenteller Rust-Port jdvrif-rs ist für diejenigen verfügbar, die sich für diese Sprache interessieren.

Demo-Bild
Demo-Bild: "Ein Ort der Verborgenheit" / PIN: 2190398302048725932

Im Gegensatz zur gängigen LSB-Steganografie-Methode zum Verbergen von Daten in den Pixeln eines Cover-Bildes, verbirgt jdvrif Daten hauptsächlich in Anwendungssegmenten eines JPG-Bildes (ICC, EXIF, XMP usw.).

Die Ausnahme hiervon ist der Reddit-Plattform-Verbergemodus (-r), bei dem die QIM-Steganografie-Methode (JPEG-DCT-Domänen-Quantisierungsindex-Modulation) verwendet wird, da dies die einzige Speichermethode ist, die derzeit für Reddit funktioniert.

Sie können jeden Dateityp bis zu 2GB für den Standard-Verbergemodus verbergen, obwohl andere Plattform-Verbergemodi und kompatible Websites (unten aufgeführt) ihre eigenen viel kleineren Größenbeschränkungen und *anderen Anforderungen haben.

Für erhöhte Speicherkapazität und bessere Sicherheit wird Ihre eingebettete Datendatei mit libdeflate/zlib komprimiert – es sei denn, es handelt sich bereits um einen komprimierten Dateityp über 10 MB – und mit XChaCha20-Poly1305 unter Verwendung der libsodium-Kryptografiebibliothek verschlüsselt.

jdvrif leitet sich teilweise von der Technik ab, die vom Sicherheitsforscher David Buchanan implementiert wurde.

Kompilierung & Verwendung (Linux)

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

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

$ sudo cp jdvrif /usr/bin
$ jdvrif 

Verwendung: jdvrif conceal [-b] <cover_image> <secret_file>
       jdvrif recover <cover_image>  
       jdvrif --info

$ jdvrif conceal your_cover_image.jpg your_secret_file.doc
 
Plattformkompatibilität für Ausgabebild:-

  ✓ X-Twitter
  ✓ Tumblr
  ✓ Mastodon
  ✓ Pixelfed
  ✓ PostImage
  ✓ ImgBB
  ✓ ImgPile
  ✓ Flickr
  
Gespeichertes "dateieingebettetes" JPG-Bild: jrif_4e87c566c.jpg (143029 Bytes).

Wiederherstellungs-PIN: [***2166776980318349924***]

Wichtig: Bewahren Sie Ihre PIN sicher auf, damit Sie die versteckte Datei extrahieren können.

Fertig!
        
$ jdvrif recover jrif_4e87c566c.jpg

PIN: *******************

Extrahierte versteckte Datei: your_secret_file.doc (6165 Bytes).

Fertig! Bitte überprüfen Sie Ihre Datei.

Kompatible Plattformen

******************
Hinweis: Bluesky speichert Bilder jetzt standardmäßig als WEBP.

Um ein Bild als JPG zu speichern, damit Sie versteckte Daten weiterhin mit jdvrif wiederherstellen können.
Klicken Sie zuerst auf das Bild im Beitrag, um es zu öffnen, dann klicken Sie mit der rechten Maustaste auf das Bild. Wählen Sie im Menü Bild in neuem Tab öffnen.

Wählen Sie den neuen Tab und gehen Sie in der Adressleiste zum Ende der Adresse, fügen Sie @jpg hinzu und drücken Sie dann die Eingabetaste.
Klicken Sie mit der rechten Maustaste auf das Bild und wählen Sie im Menü Bild speichern...

Ihr Bild sollte jetzt als JPG heruntergeladen werden, das dann mit jdvrif funktioniert.

Wenn Sie ein Tool zum Verbergen von Daten mit WEBP-Bildern für Bluesky möchten, können Sie mein WEBP-Steganografie-CLI-Tool wbpdv verwenden.
******************

Größenlimit beim Posten gemessen an der kombinierten Größe von Cover-Bild + komprimierter Datendatei:

Flickr (200MB), ImgPile (100MB), ImgBB (32MB),
PostImage (32MB), Pixelfed (15MB).

Größenlimit gemessen nur an der komprimierten Datendateigröße:

Mastodon (~6MB), Tumblr (~64KB), X-Twitter (~10KB).

Zum Beispiel können Sie bei Mastodon, wenn Ihr Cover-Bild 1MB groß ist, dennoch eine Datendatei bis zum ~6MB-Größenlimit einbetten.

*Sonstiges: Die Bluesky-Plattform hat separate Größenlimits für das Cover-Bild und die komprimierte versteckte Datendatei:

Bluesky (-b-Option). Maximales Cover-Bild-Größenlimit (2.000.000 Bytes / ~1,9MB). Maximales Größenlimit für Ihre komprimierte versteckte Datendatei (Nutzlast) (~171KB).

Das endgültige eingebettete Cover-Bild (Cover-Bild + versteckte Datei) darf 2.000.000 Bytes (~1,9MB) nicht überschreiten. Das Skript "create_bsky_post.py" ist erforderlich, um Bilder auf Bluesky zu posten. Weitere Informationen zu diesem Skript weiter unten auf der Seite.

Reddit (-r-Option). Während die Reddit-Plattform ein Bild-Upload-Größenlimit von 20MB hat, ist die Datenspeicherkapazität für das Cover-Bild viel kleiner und hängt von der Bildabmessungsgröße ab.

Zum Beispiel kann ein Cover-Bild mit 1024x1024-Abmessungen nur ~6KB Daten speichern, ein Bild mit 4096x4096-Abmessungen kann ~109KB speichern und ein Bild mit 6324×6324-Maximalabmessungen kann ~254KB speichern.

Für Plattformen wie X-Twitter, Reddit & Tumblr, die kleine Datengrößenlimits haben, sollten Sie sich auf Daten konzentrieren, die sich gut komprimieren lassen, wie z. B. Textdateien usw.

https://github.com/user-attachments/assets/c8c38e6d-ea23-4d67-98d9-cebdcd82b449

https://github.com/user-attachments/assets/88aaa5f7-3272-4d0c-aa59-1a5bfe2f08dc

jdvrif Modus-Argumente:

conceal - Komprimiert, verschlüsselt und bettet Ihre geheime Datendatei in ein JPG-Cover-Bild ein.
recover - Entschlüsselt, dekomprimiert und extrahiert die versteckte Datendatei aus einem JPG-Cover-Bild.

jdvrif conceal-Modus Plattform-Optionen:

"-r" Um kompatible "dateieingebettete" JPG-Bilder für das Posten auf der Reddit-Plattform zu erstellen, müssen Sie die -r-Option mit dem conceal-Modus verwenden.

$ jdvrif conceal -r my_image.jpg hidden.doc

Diese Bilder sind nur für das Posten auf Reddit kompatibel. Ihre eingebettete Datendatei wird entfernt, wenn sie auf einer anderen Plattform gepostet wird.

Wenn Sie ein Bild von Reddit speichern/herunterladen, stellen Sie sicher, dass Sie auf das Bild im Beitrag klicken, um es vollständig zu erweitern, bevor Sie es speichern.

https://github.com/user-attachments/assets/9f1b4607-e7f1-4c5f-8929-b42c1a85bb88

"-b" Um kompatible "dateieingebettete" JPG-Bilder für das Posten auf der Bluesky-Plattform zu erstellen, müssen Sie die -b-Option mit dem conceal-Modus verwenden.

$ jdvrif conceal -b my_image.jpg hidden.doc

Diese Bilder sind nur für das Posten auf Bluesky kompatibel. Ihre eingebettete Datendatei wird entfernt, wenn sie auf einer anderen Plattform gepostet wird.

Sie müssen außerdem das Python-Skript create_bsky_post.py (im Repo-Ordner src/bsky) verwenden, um das Bild auf Bluesky zu posten. Es funktioniert nicht, wenn Sie Bilder über die Browser-Website oder die mobile App auf Bluesky posten.

Um das Skript zu verwenden, müssen Sie ein App-Passwort aus Ihrem Bluesky-Konto erstellen.

Siehe das Skript create_bsky_post.py im Ordner src/bsky für einige grundlegende Verwendungsbeispiele.

https://github.com/user-attachments/assets/b4c72ea7-40e3-49b0-89aa-ae2dd8ccccb9

Drittanbieter-Software und -Assets

Kernanwendungen

  • libsodium — kryptografische Zufallserzeugung, Argon2id Schlüsselableitung und XChaCha20-Poly1305-Geheimströme. Dynamisch als Systembibliothek verknüpft.

    Lizenz: ISC-Lizenz

    Copyright (c) 2013–2026 Frank Denis.

  • libjpeg-turbo — JPEG-Verarbeitung und verlustfreie Transformation. Dynamisch als Systembibliothek verknüpft.

    Diese Software basiert teilweise auf der Arbeit der Independent JPEG Group.

    Lizenzen: Independent JPEG Group License, Modified BSD 3-Clause License, und zlib-Lizenz.

    Copyright © 1991–2020 Thomas G. Lane und Guido Vollbeding.

    Copyright © 2009–2023 D. R. Commander. Alle Rechte vorbehalten.

    Copyright © 2015 Viktor Szathmáry. Alle Rechte vorbehalten.

  • zlib — Streaming-zlib-Komprimierung und -Dekomprimierung. Dynamisch als Systembibliothek verknüpft.

    Lizenz: zlib-Lizenz

    Copyright (C) 1995–2026 Jean-loup Gailly und Mark Adler.

  • libdeflate — Schnelle zlib-Format-Komprimierung des gesamten Puffers. Dynamisch als Systembibliothek verknüpft.

    Lizenz: MIT

    Copyright 2016 Eric Biggers.

    Copyright 2024 Google LLC.

Integrierter Code und Assets

Optionaler Bluesky-Posting-Helfer

  • Bryan Newbold / ATProto Hacker Cookbook — create_bsky_post.py — Grundlage für den gegabelten Bluesky-Posting-Helfer (src/bsky/bsky_post.py). Zur Referenz siehe die Cookbook-Kopie

    Lizenz: CC0 1.0 Universal.

  • Requests — HTTP- und Bluesky-API-Anfragen.

    Lizenz: Apache 2.0 / HINWEIS

    Copyright 2019 Kenneth Reitz.

  • Beautiful Soup 4 — HTML- und Open-Graph-Metadaten-Parsing.

    Lizenz: MIT

    Copyright (c) Leonard Richardson.

  • Pillow — Bildvalidierung, Abmessungen und Seitenverhältnis-Handhabung.

    Lizenz: MIT-CMU

    PIL-Copyright © 1997–2011 Secret Labs AB und © 1995–2011 Fredrik Lundh und Mitwirkende.

    Pillow-Copyright © 2010 Jeffrey "Alex" Clark und Mitwirkende.

Kategorien