Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
sherloq — Ein Open-Source-Toolset für die digitale Bildforensik | Kitploit
Tools/GitHubGitHub/guidobartoli/sherloq
ForensikSteganografieDigitale ForensikKryptographieMaschinelles LernenPapers & ForschungLernen & Bildung
GitHubguidobartoli/sherloq

sherloq

Ein Open-Source-Toolset für die digitale Bildforensik

Repository anzeigen
3.2k305vor 1 MonatVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Sherloq
Eine Open-Source-Werkzeugsammlung für die forensische Bildanalyse

Einleitung

"Forensische Bildanalyse ist die Anwendung von Bildwissenschaft und Fachwissen zur Interpretation des Inhalts eines Bildes und/oder des Bildes selbst in rechtlichen Angelegenheiten. Zu den wichtigsten Unterdisziplinen der forensischen Bildanalyse mit Anwendungen für Strafverfolgungsbehörden gehören: Photogrammetrie, fotografischer Vergleich, Inhaltsanalyse und Bildauthentifizierung." (Scientific Working Group on Imaging Technologies)

Sherloq ist ein persönliches Forschungsprojekt zur Implementierung einer vollständig integrierten Umgebung für die digitale Bildforensik. Es ist nicht als automatisches Werkzeug gedacht, das entscheidet, ob ein Bild gefälscht ist oder nicht (dieses Werkzeug wird es wahrscheinlich nie geben...), sondern als Begleiter zum Experimentieren mit verschiedenen Algorithmen aus den neuesten Forschungspapieren und Workshops.

Während viele kommerzielle Lösungen hohe Verkaufspreise haben und oft nur Strafverfolgungsbehörden und Regierungsstellen vorbehalten sind, zielt diese Werkzeugsammlung darauf ab, sowohl ein erweiterbares Framework als auch ein Ausgangspunkt für alle zu sein, die sich für Experimente in dieser besonderen Anwendung der digitalen Signalverarbeitung interessieren.

Ich bin fest davon überzeugt, dass Security-by-Obscurity der falsche Weg ist, um irgendeine Art von forensischem Dienst anzubieten (z.B. "Mit dieser proprietären Software garantiere ich Ihnen, dass dieses Foto makellos ist... und Sie müssen mir vertrauen!"). Der Open-Source-Philosophie folgend, sollte jeder in der Lage sein, verschiedene Techniken selbst auszuprobieren, Wissen zu erlangen und es mit der Gemeinschaft zu teilen... noch besser, wenn sie mit Code-Verbesserungen beitragen! :)

  • Geschichte
  • Funktionen
  • Screenshots
  • Installation
  • Projektstruktur
  • Updates
  • Bibliographie

Geschichte

Die erste Version wurde 2015 in C++11 geschrieben, um ein Kommandozeilenwerkzeug mit vielen Optionen zu bauen, aber bald erwies es sich als zu umständlich und nicht sehr interaktiv. Diese Version konnte mit CMake kompiliert werden, nachdem die Bibliotheken OpenCV, Boost und AlgLib installiert wurden. Dieser erste Proof of Concept bot etwa 80% der geplanten Funktionen (siehe unten für die vollständige Liste).

Die Version 2017 enthielt zwar auch neuartige Algorithmen, fügte aber hauptsächlich eine Qt-basierte Multi-Fenster-GUI hinzu, um eine bessere Benutzererfahrung zu bieten. Mehrere Analysen konnten auf dem Bildschirm angezeigt werden, und ein schneller Zoom/Scroll-Viewer wurde für eine einfachere Bildnavigation implementiert. Dieses Projekt konnte mit Qt Creator mit Qt 5 und OpenCV 3 kompiliert werden und deckte etwa 70% der geplanten Funktionen ab.

Schneller Vorlauf bis 2020, als ich mich entschied, alles nach Python (PySide2 + Matplotlib + OpenCV) zu portieren, um die Entwicklung und Bereitstellung zu erleichtern. Obwohl diese Iteration gerade erst begonnen hat und ich noch den gesamten vorherigen Code auf die neue Plattform portieren muss, denke ich, dass dies die endgültige "Form" des Projekts sein wird (solange sich nicht jemand freiwillig meldet, um eine schöne Webanwendung zu entwickeln!).

Ich freue mich, meinen Code zu teilen und mit jedem in Kontakt zu treten, der daran interessiert ist, ihn zu verbessern oder zu testen, aber bitte bedenken Sie, dass dieses Repository nicht dazu gedacht ist, ein endgültiges Produkt zu verteilen. Mein Ziel ist es lediglich, die Entwicklung eines bescheidenen Bildungswerkzeugs öffentlich zu verfolgen, also erwarten Sie Fehler, unpolierte Code und fehlende Funktionen! ;)

Funktionen

Diese Liste enthält die Funktionen, die das Toolkit (hoffentlich) bereitstellen wird, sobald die Beta-Phase erreicht ist (HINWEIS: im Programm kursiv dargestellte Funktionen sind noch nicht implementiert!).

Oberfläche

  • Moderne Qt-basierte GUI mit Verwaltung mehrerer Werkzeugfenster
  • Unterstützung für viele Formate (JPEG, PNG, TIFF, BMP, WebP, PGM, PFM, GIF)
  • Hochreaktiver Bildbetrachter mit Echtzeit-Pan und Zoom
  • Viele hochmoderne Algorithmen zum interaktiven Ausprobieren
  • Export sowohl visueller als auch textueller Analyseergebnisse
  • Umfangreiche Online-Hilfe mit Erklärungen und Tutorials

Werkzeuge

Allgemein

  • Originalbild: das unveränderte Referenzbild zur visuellen Inspektion anzeigen
  • Datei-Digest: physische Dateiinformationen, kryptografische und wahrnehmungsbezogene Hashes abrufen
  • Hex-Editor: einen externen Hexadezimaleditor öffnen, um rohe Bytes anzuzeigen und zu bearbeiten
  • Ähnlichkeitssuche: Online-Suchdienste durchsuchen, um visuell ähnliche Bilder zu finden

Metadaten

  • Header-Struktur: die Datei-Header-Struktur ausgeben und eine interaktive Ansicht anzeigen
  • EXIF Vollständiger Dump: Datei-Metadaten scannen und alle verfügbaren Informationen sammeln
  • Thumbnail-Analyse: optionales eingebettetes Thumbnail extrahieren und mit dem Original vergleichen
  • Geolokalisierungsdaten: optionale Geodaten abrufen und auf einer Weltkarte anzeigen

Inspektion

  • Verbessernde Lupe: Lupe mit Verbesserungen zur besseren Identifizierung von Fälschungen
  • Kanalhistogramm: einzelne Farbkanäle oder RGB-Kombination interaktives Histogramm anzeigen
  • Globale Anpassungen: Standard-Bildanpassungen anwenden (Helligkeit, Farbton, Sättigung, ...)
  • Referenzvergleich: eine synchronisierte Doppelansicht zum Vergleich mit einem anderen Bild öffnen

Detail

  • Luminanzgradient: horizontale/vertikale Helligkeitsvariationen über das Bild analysieren
  • Echo-Kantenfilter: Ableitungsfilter verwenden, um künstliche Unschärfebereiche aufzudecken
  • Wavelet-Schwellwert: Bild mit unterschiedlichen Wavelet-Koeffizientenschwellwerten rekonstruieren
  • Frequenzaufteilung: Bildluminanz in hoch- und niederfrequente Komponenten aufteilen

Farben

  • RGB/HSV-Diagramme: interaktive 2D- und 3D-Diagramme von RGB- und HSV-Pixelwerten anzeigen
  • Raumkonvertierung: RGB-Kanäle in HSV/YCbCr/Lab/Luv/CMYK/Grau-Räume umwandeln
  • PCA-Projektion: Farb-PCA verwenden, um Pixel auf die markantesten Komponenten zu projizieren
  • Pixelstatistiken: minimale/maximale/durchschnittliche RGB-Werte für jeden Pixel berechnen

Rauschen

  • Rauschtrennung: verschiedene Arten von Bildrauschkomponenten schätzen und extrahieren
  • Min/Max-Abweichung: Pixel hervorheben, die von blockbasierten Min/Max-Statistiken abweichen
  • Bitebenenwerte: einzelne Bitebenen anzeigen, um inkonsistente Rauschmuster zu finden
  • Wavelet-Blocking: gemittelte Rauschpegel in einem Bild anzeigen, um Rauschinkonsistenzen zu finden
  • PRNU-Identifikation: Sensor-Musterrauschen ausnutzen, das von verschiedenen Kameras eingeführt wird

JPEG

  • Qualitätsschätzung: Quantisierungstabellen extrahieren und die zuletzt gespeicherte JPEG-Qualität schätzen
  • Fehlerpegelanalyse: Pixelebene-Differenz zu festen Komprimierungsstufen anzeigen
  • Mehrfachkomprimierung: ein maschinelles Lernmodell verwenden, um Mehrfachkomprimierung zu erkennen
  • JPEG-Geisterkarten: Spuren unterschiedlicher Komprimierungsstufen in Differenzbildern hervorheben

Manipulation

  • Kontrastverstärkung: Farbverteilung analysieren, um Kontrastverstärkungen zu erkennen
  • Copy-Move-Fälschung: invariante Merkmalsdeskriptoren zur Erkennung klonierter Bereiche verwenden
  • Composite-Splicing: DCT-Statistiken ausnutzen, um automatisch Splicing-Zonen zu erkennen
  • Bild-Resampling: 2D-Pixel-Interpolation schätzen, um Resampling-Spuren zu erkennen

Verschiedenes

  • Medianfilterung: Verarbeitungsspuren erkennen, die durch nichtlineare Medianfilterung hinterlassen wurden
  • Beleuchtungskarte: lokale Lichtrichtung der Szene auf geschätzten 3D-Oberflächen schätzen
  • Tote/Heiße Pixel: tote/heiße Pixel erkennen und beheben, die durch Sensorfehler verursacht wurden
  • Stereogramm-Decoder: 3D-Bilder entschlüsseln, die in Kreuzblick-Autostereogrammen versteckt sind

Screenshots

Allgemein
Allgemein: Originalbild, Hex-Editor, Datei-Digest, Ähnlichkeitssuche

Metadaten
Metadaten: EXIF Vollständiger Dump, Header-Struktur

Inspektion
Inspektion: Verbessernde Lupe, Kanalhistogramm, Referenzvergleich

Detail
Detail: Luminanzgradient, Echo-Kantenfilter, Wavelet-Schwellwert, Frequenzaufteilung

Farben
Farben: RGB/HSV-Diagramme, Raumkonvertierung, PCA-Projektion, Pixelstatistiken

Rauschen
Rauschen: Signaltrennung, Min/Max-Abweichung, Bitebenenwerte

JPEG
JPEG: Qualitätsschätzung, Fehlerpegelanalyse

Manipulation
Manipulation: Kontrastverstärkung, Copy/Move-Fälschung, Composite-Splicing, Medianfilterung

Installation

[1/4] Quellcode herunterladen

Klonen Sie das aktuelle Repository in einen lokalen Ordner und wechseln Sie mit dem Befehl cd in dieses Verzeichnis.

[2/4] Virtuelle Umgebung erstellen

Sherloq verwendet Python 3.11. Die empfohlene Einrichtung verwendet uv, da es denselben Workflow auf Linux, macOS und Windows bietet, bei Bedarf Python installieren kann und die Projektumgebung im lokalen .venv-Ordner hält.

Installieren Sie uv gemäß der offiziellen Installationsanleitung, und erstellen Sie dann die Umgebung aus dem Sherloq-Hauptverzeichnis:

root@kitploit:~
$ uv venv --python 3.11

Das Repository enthält auch eine .python-version-Datei, sodass zukünftige uv-Befehle standardmäßig Python 3.11 verwenden.

[3/4] Abhängigkeiten installieren

root@kitploit:~
$ uv pip install -r gui/requirements.txt

Einige experimentelle KI-gestützte Werkzeuge benötigen zusätzliche Pakete. Installieren Sie diese nur, wenn Sie diese Werkzeuge verwenden möchten:

root@kitploit:~
$ uv pip install -r gui/requirements_ai_solutions.txt

[4/4] Programm starten

Sherloq kann aus dem Hauptverzeichnis des Repositorys gestartet werden. Das Anwendungspaket löst Symbole, Modelle und gebündelte Werkzeuge über zentrale Projektpfade auf.

Linux/macOS

root@kitploit:~
$ source .venv/bin/activate
$ python -m gui.sherloq_app

Windows PowerShell

root@kitploit:~
> .venv\Scripts\Activate.ps1
> python -m gui.sherloq_app

Sie können auch den Kompatibilitätsstarter im Repository-Hauptverzeichnis verwenden:

root@kitploit:~
$ python sherloq.py

HINWEIS für Linux-Benutzer: Wenn dieser Fehler angezeigt wird:

root@kitploit:~
qt.qpa.plugin: From 6.5.0, xcb-cursor0 or libxcb-cursor0 is needed to load the Qt xcb platform plugin.
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Führen Sie diesen Befehl im Terminal aus: sudo apt install -y libxcb-cursor-dev

Projektstruktur

Die Python-Qt-Anwendung befindet sich jetzt im importierbaren Paket gui/sherloq_app:

  • main.py: Qt-Anwendungseinstiegspunkt und Hauptfenster.
  • core/: gemeinsame Bildverarbeitungs-Helfer wie JPEG-Dienstprogramme und Dateiladen.
  • ui/: wiederverwendbare Qt-Widgets, Viewer, Tabellen und der Werkzeugbaum.
  • tools/: Analyse-Widgets, gruppiert nach Werkzeugkasten-Kategorie (general, metadata, inspection, detail, colors, noise, jpeg, tampering, various).
  • paths.py: zentraler Zugriff auf Symbole, Modelle und gebündelte native Helfer, sodass Code nicht mehr vom Start aus abhängt.

Große gebündelte Ressourcen und Forschungskomponenten von Drittanbietern bleiben unter gui/icons, gui/models, gui/noiseprint, gui/pyexiftool, gui/butteraugli, gui/ssimulacra und optionalem gui/TruFor_main.

Siehe docs/project-structure.md für eine mitwirkendenorientierte Übersicht.

Updates

Wenn eine neue Version veröffentlicht wird, aktualisieren Sie die lokale Arbeitskopie mit Git oder durch Herunterladen des neuesten Quellcodes, und aktualisieren Sie dann die Umgebung aus dem Sherloq-Hauptverzeichnis:

root@kitploit:~
$ uv pip install --upgrade -r gui/requirements.txt

Wenn Sie die optionalen KI-Abhängigkeiten installiert haben, aktualisieren Sie auch diese:

root@kitploit:~
$ uv pip install --upgrade -r gui/requirements_ai_solutions.txt

Empfohlene Ressourcen für den Einstieg

  • Paper mit praktischen Beispielen und gründlicher Analyse für Techniken, die seitdem in Sherloq implementiert wurden: "A Picture's Worth: Digital Image Analysis and Forensics" (Neal Krawetz) [Paper]
  • Abschlussarbeit mit praktischen Beispielen und gründlicher Analyse für die Verwendung der in Sherloq implementierten Werkzeuge "JPEG Ghosts", "Image Resampling" und "Noise Wavelet Blocking". Diese Arbeit bietet auch Einblicke in die Verwendung und Zuverlässigkeit KI-gesteuerter Ansätze in der digitalen Bildforensik. (UHstudent) [Paper]

Referenzen zu in Sherloq implementierten Algorithmen

  • Image Resampling: "Exposing Digital Forgeries by Detecting Traces of Re-sampling" (Alin C. Popescu and Hany Farid) [Paper]
  • JPEG Ghosts: "Exposing Digital Forgeries from JPEG Ghosts" (H. Farid) [Paper]
  • Noise Wavelet Blocking: "Using noise inconsistencies for blind image forensics" (Babak Mahdian and Stanislav Saic) [Paper]

Bibliographie

  • "Noiseprint: a CNN-based camera model fingerprint" (Davide Cozzolino, Luisa Verdoliva) [Website]
  • "Two Improved Forensic Methods of Detecting Contrast Enhancement in Digital Images" (Xufeng Lin, Xingjie Wei and Chang-Tsun Li) [Paper]
Tool herunterladen
gui