Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
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.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
sherloq — Un toolkit forense per immagini digitali open-source | Kitploit
Strumenti/GitHubGitHub/guidobartoli/sherloq
Informatica ForenseSteganografiaDigital ForensicsCrittografiaMachine LearningPaper e RicercaApprendimento e Formazione
GitHubguidobartoli/sherloq

sherloq

Un toolkit forense per immagini digitali open-source

Vedi Repository
3.2k3051 mese 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

Sherloq
Un set di strumenti forensi per immagini digitali open source

Introduzione

"L'Analisi Forense delle Immagini è l'applicazione della scienza dell'immagine e della competenza di dominio per interpretare il contenuto di un'immagine e/o l'immagine stessa in ambito legale. Le principali sottodiscipline dell'Analisi Forense delle Immagini con applicazioni per le forze dell'ordine includono: Fotogrammetria, Confronto Fotografico, Analisi del Contenuto e Autenticazione delle Immagini." (Scientific Working Group on Imaging Technologies)

Sherloq è un progetto di ricerca personale volto a implementare un ambiente completamente integrato per la forense digitale delle immagini. Non è inteso come uno strumento automatico che decida se un'immagine è falsificata o meno (quello probabilmente non esisterà mai...), ma come un compagno per sperimentare vari algoritmi trovati negli ultimi articoli di ricerca e nei workshop.

Mentre molte soluzioni commerciali hanno prezzi al dettaglio elevati e spesso sono riservate solo a forze dell'ordine e agenzie governative, questo strumentario mira a essere sia un framework estensibile che un punto di partenza per chiunque sia interessato a fare esperimenti in questa particolare applicazione dell'elaborazione digitale dei segnali.

Credo fermamente che la sicurezza per oscurità sia il modo sbagliato per offrire qualsiasi tipo di servizio forense (ad esempio: "Usando questo software proprietario ti garantisco che questa foto è originale... e tu devi fidarti di me!"). Seguendo la filosofia open source, tutti dovrebbero essere in grado di provare varie tecniche per conto proprio, acquisire conoscenze e condividerle con la comunità... ancora meglio se contribuiscono con miglioramenti al codice! :)

  • Storia
  • Caratteristiche
  • Screenshot
  • Installazione
  • Struttura del progetto
  • Aggiornamenti
  • Bibliografia

Storia

La prima versione è stata scritta nel 2015 usando C++11 per creare un'utilità a riga di comando con molte opzioni, ma presto si è rivelata troppo complessa e poco interattiva. Quella versione poteva essere compilata con CMake dopo aver installato le librerie OpenCV, Boost e AlgLib. Questo primo proof-of-concept offriva circa l'80% delle funzionalità pianificate (vedi sotto per l'elenco completo).

Pur includendo anche nuovi algoritmi, la versione del 2017 ha aggiunto principalmente una GUI multi-finestra basata su Qt per offrire una migliore esperienza utente. Era possibile visualizzare più analisi sullo schermo ed era stato implementato un visualizzatore veloce con zoom e scorrimento per una navigazione più agevole delle immagini. Quel progetto poteva essere compilato con Qt Creator con Qt 5 e OpenCV 3 e copriva circa il 70% delle funzionalità pianificate.

Si arriva al 2020, quando ho deciso di trasferire tutto in Python (PySide2 + Matplotlib + OpenCV) per semplificare sviluppo e distribuzione. Sebbene questa iterazione sia appena iniziata e debba ancora portare tutto il codice precedente sulla nuova piattaforma, penso che questa sarà la forma finale del progetto (a meno che qualcuno non si offra volontario per sviluppare una bella applicazione web!).

Sono felice di condividere il mio codice e di entrare in contatto con chiunque sia interessato a migliorarlo o testarlo, ma tenete presente che questo repository non ha lo scopo di distribuire un prodotto finale; il mio obiettivo è solo quello di tenere traccia pubblicamente dello sviluppo di uno strumento educativo senza pretese, quindi aspettatevi bug, codice non rifinito e funzionalità mancanti! ;)

Caratteristiche

Questo elenco contiene le funzioni che il toolkit (si spera) fornirà una volta raggiunta la fase beta (NOTA: le funzioni visualizzate in corsivo all'interno del programma non sono ancora implementate!).

Interfaccia

  • GUI moderna basata su Qt con gestione di più finestre degli strumenti
  • Supporto per molti formati (JPEG, PNG, TIFF, BMP, WebP, PGM, PFM, GIF)
  • Visualizzatore di immagini altamente reattivo con panoramica e zoom in tempo reale
  • Molti algoritmi all'avanguardia da provare interattivamente
  • Esportazione dei risultati dell'analisi sia visivi che testuali
  • Ampio aiuto in linea con spiegazioni e tutorial

Strumenti

Generale

  • Immagine Originale: visualizza l'immagine di riferimento non alterata per ispezione visiva
  • Riepilogo File: recupera informazioni fisiche sul file, hash crittografici e percettivi
  • Editor Esadecimale: apre un editor esadecimale esterno per mostrare e modificare i byte grezzi
  • Ricerca Simile: naviga tra servizi di ricerca online per trovare immagini visivamente simili

Metadati

  • Struttura Intestazione: scarica la struttura dell'intestazione del file e mostra una vista interattiva
  • Dump Completo EXIF: esamina i metadati del file e raccoglie tutte le informazioni disponibili
  • Analisi Miniatura: estrae la miniatura incorporata opzionale e la confronta con l'originale
  • Dati Geolocalizzazione: recupera i dati di geolocalizzazione opzionali e li mostra su una mappa mondiale

Ispezione

  • Lente d'Ingrandimento Migliorata: lente d'ingrandimento con miglioramenti per identificare meglio le falsificazioni
  • Istogramma Canali: mostra istogrammi interattivi dei singoli canali colore o del composito RGB
  • Regolazioni Globali: applica regolazioni standard dell'immagine (luminosità, tinta, saturazione, ...)
  • Confronto Riferimento: apre una doppia vista sincronizzata per il confronto con un'altra immagine

Dettaglio

  • Gradiente di Luminanza: analizza le variazioni di luminosità orizzontali/verticali attraverso l'immagine
  • Filtro Echo Edge: utilizza filtri derivativi per rivelare regioni fuori fuoco artificiali
  • Soglia Wavelet: ricostruisce l'immagine con diverse soglie dei coefficienti wavelet
  • Separazione di Frequenza: separa la luminanza dell'immagine in componenti ad alta e bassa frequenza

Colori

  • Grafici RGB/HSV: mostra grafici 2D e 3D interattivi dei valori dei pixel RGB e HSV
  • Conversione Spazio Colore: converte i canali RGB negli spazi HSV/YCbCr/Lab/Luv/CMYK/Grigio
  • Proiezione PCA: utilizza la PCA dei colori per proiettare i pixel sulle componenti più salienti
  • Statistiche Pixel: calcola i valori RGB minimo/massimo/medio per ogni pixel

Rumore

  • Separazione del Rumore: stima ed estrae diverse componenti di rumore dell'immagine
  • Deviazione Min/Max: evidenzia i pixel che si discostano dalle statistiche min/max basate su blocchi
  • Valori Piani Bit: mostra i singoli piani bit per trovare modelli di rumore inconsistenti
  • Blocco Wavelet: mostra i livelli medi di rumore in un'immagine per trovare inconsistenze nel rumore
  • Identificazione PRNU: sfrutta il rumore del pattern del sensore introdotto da diverse fotocamere

JPEG

  • Stima Qualità: estrae le tabelle di quantizzazione e stima l'ultima qualità JPEG salvata
  • Analisi Livello Errore: mostra la differenza a livello di pixel rispetto a livelli di compressione fissi
  • Compressione Multipla: utilizza un modello di machine learning per rilevare compressioni multiple
  • Mappe Fantasma JPEG: evidenzia tracce di diversi livelli di compressione in immagini differenza

Manomissione

  • Miglioramento del Contrasto: analizza la distribuzione dei colori per rilevare miglioramenti del contrasto
  • Falso Copia-Incolla: utilizza descrittori di feature invarianti per rilevare aree clonate
  • Incollaggio Composito: sfrutta le statistiche DCT per il rilevamento automatico di zone di splicing
  • Ricampionamento Immagine: stima l'interpolazione 2D dei pixel per rilevare tracce di ricampionamento

Varie

  • Filtraggio Mediano: rileva tracce di elaborazione lasciate dal filtraggio mediano non lineare
  • Mappa Illuminante: stima la direzione della luce locale della scena su superfici 3D stimate
  • Pixel Morti/Caldi: rileva e corregge pixel morti/caldi causati da imperfezioni del sensore
  • Decodificatore Stereogramma: decodifica immagini 3D nascoste in autostereogrammi a visione incrociata

Screenshot

Generale
Generale: Immagine Originale, Editor Esadecimale, Riepilogo File, Ricerca Simile

Metadati
Metadati: Dump Completo EXIF, Struttura Intestazione

Ispezione
Ispezione: Lente d'Ingrandimento Migliorata, Istogramma Canali, Confronto Riferimento

Dettaglio
Dettaglio: Gradiente di Luminanza, Filtro Echo Edge, Soglia Wavelet, Separazione di Frequenza

Colori
Colori: Grafici RGB/HSV, Conversione Spazio Colore, Proiezione PCA, Statistiche Pixel

Rumore
Rumore: Separazione del Rumore, Deviazione Min/Max, Valori Piani Bit

JPEG
JPEG: Stima Qualità, Analisi Livello Errore

Manomissione
Manomissione: Miglioramento del Contrasto, Falso Copia-Incolla, Incollaggio Composito, Filtraggio Mediano

Installazione

[1/4] Scarica il codice sorgente

Clona il repository corrente in una cartella locale e spostati in tale directory.

[2/4] Crea un ambiente virtuale

Sherloq usa Python 3.11. La configurazione raccomandata utilizza uv perché fornisce lo stesso flusso di lavoro su Linux, macOS e Windows, può installare Python quando necessario e mantiene l'ambiente del progetto nella cartella locale .venv.

Installa uv seguendo la guida ufficiale all'installazione, quindi crea l'ambiente dalla cartella principale di Sherloq:

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

Il repository include anche un file .python-version, quindi i futuri comandi uv useranno Python 3.11 per impostazione predefinita.

[3/4] Installa le dipendenze

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

Alcuni strumenti sperimentali basati su AI necessitano di pacchetti aggiuntivi. Installali solo se prevedi di utilizzare questi strumenti:

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

[4/4] Avvia il programma

Sherloq può essere avviato dalla radice del repository. Il pacchetto dell'applicazione risolve icone, modelli e strumenti inclusi attraverso percorsi di progetto centralizzati.

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

Puoi anche usare il lanciatore di compatibilità nella cartella principale del repository:

root@kitploit:~
$ python sherloq.py

NOTA per gli utenti Linux: se viene visualizzato questo errore:

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.

Esegui questo comando dal terminale: sudo apt install -y libxcb-cursor-dev

Struttura del progetto

L'applicazione Qt Python ora risiede nel pacchetto importabile gui/sherloq_app:

  • main.py: punto di ingresso dell'applicazione Qt e finestra principale.
  • core/: helper condivisi per l'elaborazione delle immagini come utilità JPEG e caricamento dei file.
  • ui/: widget Qt riutilizzabili, visualizzatori, tabelle e l'albero degli strumenti.
  • tools/: widget di analisi raggruppati per categoria di toolbox (general, metadata, inspection, detail, colors, noise, jpeg, tampering, various).
  • paths.py: accesso centralizzato a icone, modelli e helper nativi inclusi, in modo che il codice non dipenda più dall'avvio da .

I grandi asset inclusi e i componenti di ricerca di terze parti rimangono sotto gui/icons, gui/models, gui/noiseprint, gui/pyexiftool, gui/butteraugli, gui/ssimulacra e l'opzionale gui/TruFor_main.

Consulta docs/project-structure.md per una mappa orientata ai contributori.

Aggiornamenti

Quando viene rilasciata una nuova versione, aggiorna la copia di lavoro locale con Git o scaricando l'ultimo codice sorgente, quindi aggiorna l'ambiente dalla cartella principale di Sherloq:

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

Se hai installato le dipendenze AI opzionali, aggiornale anche quelle:

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

Risorse Consigliate per Iniziare

  • Articolo con esempi pratici e analisi approfondita per le tecniche che sono state successivamente implementate in Sherloq: "A Picture's Worth: Digital Image Analysis and Forensics" (Neal Krawetz) [paper]
  • Tesi con esempi pratici e analisi approfondita per l'utilizzo degli strumenti "JPEG Ghosts", "Image Resampling" e "Noise Wavelet Blocking" implementati in Sherloq. Questo lavoro offre anche spunti sull'uso e l'affidabilità degli approcci basati su AI nella Forense Digitale delle Immagini. (UHstudent) [paper]

Riferimenti per gli Algoritmi Implementati in Sherloq

  • 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]

Bibliografia

  • "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]
Scarica lo strumento
gui