Parser del file di output di Snaffler
Specialmente in ambienti di grandi dimensioni, l'output di Snaffler diventa molto grande e richiede molto tempo per l'analisi.
Questo script analizza il file di output di Snaffler (formato TSV richiesto) e:
- Abbellisce i risultati in tabelle leggibili e li esporta in TXT, CSV, HTML, JSON o PS Gridview.
- Genera un report HTML interattivo con:
- Filtri (severità, estensione, anno di modifica) e ricerca full-text
- Ordinamento dinamico
- Evidenziazione delle parole chiave nel testo di anteprima
- Azioni dirette (apri cartella padre, scarica file, copia UNC, copia UNC padre)
- Flusso di lavoro di revisione con stato persistente:
- ★ contrassegnato (interessante)
- ✓ completato (revisionato)
- Modalità unescape opzionale per una migliore leggibilità dell'anteprima (sperimentale)
- Paginazione per set di dati molto grandi
- Selettore di colonne (persistente per report)
- Esportazione della vista filtrata corrente in CSV
- Metadati del job di Snaffler (inizio/fine /host/utente/timestamp...)
- Ordina l'output per severità (Nero/Rosso/Giallo/Verde) e poi per data di modifica (predefinito) o altro campo
- Esporta tutte le condivisioni trovate in un file di testo
- Può esportare le condivisioni accessibili come segnalibri di Explorer++
Esempi
Analisi del file di output:

Output HTML:

Output TXT:

Prerequisiti e Utilizzo
Snaffler deve essere eseguito con l'opzione -y per creare un file di output in formato TSV.
Esempio:
.\Snaffler.exe -o snafflerout.txt -s -y
Analisi semplice
Analisi semplice del file my_snaffler_output.txt e scrittura dell'output con ordinamento predefinito (severità, data modifica) e file di output predefiniti (TXT, CSV, HTML).
.\snafflerparser.ps1 -in my_snaffler_output.txt
Opzioni di Output
Le diverse opzioni di output file sono:
-outformat all Scrive txt, csv, html e json (predefinito)
-outformat txt Scrive txt
-outformat csv Scrive csv
-outformat html Scrive html
-outformat json Scrive json
Questi file possono essere suddivisi per severità (nero, rosso, giallo, verde) usando l'opzione -split.
Inoltre, l'output può essere visualizzato in PS gridview usando ``-gridview`.
Report HTML
Caratteristiche
- Paginazione per report grandi
- Ricerca full-text (UNC / regola / parola chiave / contenuto) con evidenziazione
- Filtri:
- Severità (Nero / Rosso / Giallo / Verde)
- Anno di modifica
- Estensione file (con ricerca per estensione)
- Filtri di stato: solo ★ contrassegnati / nascondi ✓ completati
- Ordinamento cliccando sulle intestazioni delle colonne (il raggruppamento per severità viene preservato a meno che non si passi all'ordinamento globale)
- Evidenziazione delle parole chiave nel contenuto dell'anteprima
- Azioni per riga:
- Copia percorso UNC completo
- Copia percorso UNC padre
- Apri cartella padre (
file://)
- Scarica file (
file://)
- Selettore di colonne (persistente per report)
- Esporta la vista filtrata corrente in CSV
- Intestazione metadati report + modale “Info Job” (file di input, host/utente, hash, timestamp, durate)
- Interruttore modalità Chiara/Scura
Flusso di lavoro di revisione (★ / ✓)
Due caselle di controllo supportano un processo di revisione rapido:
- ★ (contrassegnato): segna file interessanti da rivisitare
- ✓ (completato): segna file revisionati
Navigazione da tastiera:
- Usa W/S o ↑/↓ per spostarti su/giù nella colonna delle caselle di controllo
- Usa A/D o ←/→ per spostarti tra ★ e ✓
- Premi Spazio per attivare/disattivare la casella di controllo focalizzata
- Tasti rapidi:
1 attiva/disattiva ★
2 attiva/disattiva ✓
Aiuti per i filtri:
- “Mostra solo ★” per concentrarsi sugli elementi contrassegnati
- “Nascondi ✓ completati” per rimuovere gli elementi revisionati dalla vista
Persistenza: lo stato delle caselle di controllo viene salvato nel localStorage del browser per questo report.
Per salvare permanentemente le marcature correnti, clicca su Salva HTML nel report (scarica una copia con lo stato incorporato).
Unescaping del testo di anteprima (sperimentale)
Snaffler escape i salti di riga e altri caratteri nel contenuto dell'anteprima per visualizzarlo nel terminale.
Il report HTML include un interruttore Unescape che converte le sequenze di escape comuni (come \n, \r\n, \t) in una formattazione leggibile.
Esempio:

Nota: L'unescaping potrebbe anche modificare stringhe che non erano state originariamente escapeate da Snaffler. Consideralo come un aiuto alla leggibilità.
Ordinamento
L'output è sempre raggruppato per severità (Nero → Rosso → Giallo → Verde).
All'interno di ogni gruppo puoi ordinare per:
-sort modified Data di modifica del file (predefinito)
-sort keyword Parola chiave di Snaffler
-sort unc Percorso UNC del file
-sort rule Nome della regola di Snaffler
Integrazione con Explorer++
Explorer++ è un file explorer alternativo e leggero per Windows che supporta l'esecuzione in un contesto utente diverso, inclusa l'opzione /netonly. Ciò è particolarmente utile durante le valutazioni in cui la workstation o VM non è unita al dominio.
Cosa fa SnafflerParser
Quando si utilizza l'opzione -pte, SnafflerParser si integra direttamente con Explorer++ gestendo il suo file config.xml:
- Genera
config.xml se non esiste (modalità portatile)
- Assicura che la Barra dei segnalibri sia abilitata
- Rimuove i segnalibri generati in precedenza
- Crea una cartella segnalibri per host
- Aggiunge tutte le condivisioni accessibili come segnalibri sotto l'host corrispondente
- Consente una navigazione rapida alle condivisioni senza richieste di autenticazione ripetute
Utilizzo
-
Scarica Explorer++ da
https://github.com/derceg/explorerplusplus
-
Posiziona Explorer++.exe nella stessa directory di snafflerParser.ps1
-
Analizza l'output di Snaffler ed esporta le condivisioni in Explorer++:
.\snafflerParser.ps1 -in snafflerout.txt -pte
-
Avvia Explorer++ in un contesto utente diverso:
runas /user:DOMAIN\user /netonly Explorer++.exe
-
Usa la Barra dei segnalibri per navigare rapidamente tra le condivisioni trovate.

Perché è utile:
- Nessuna necessità di autenticarsi separatamente per ogni condivisione
- Funziona bene da sistemi non uniti al dominio
Changelog
2026-05-26
Corretto
- La colonna Content non è più vuota durante l'analisi dell'output delle versioni più recenti di Snaffler (>=1.0.244). Le nuove versioni di Snaffler aggiungono un campo original-filename prima della colonna content (usato per i file della libreria di contenuti SCCM). Il parser ora gestisce in modo trasparente sia il vecchio formato (13 colonne) che quello nuovo (14 colonne).
- Non si blocca più durante l'analisi dell'output di un job Snaffler interrotto (timestamp di fine / durata mancanti).
2026-01-04
Migliorato
- Analisi, elaborazione e generazione dei report più veloci (circa 50% più veloce in totale)
- Ridotta dimensione del report HTML (circa 60% più piccolo)
- Integrazione Explorer++:
Config.xml verrà generato se non esiste. La barra dei segnalibri verrà abilitata se disabilitata.
- Revisione del report HTML
- Paginazione per report grandi (miglioramento significativo delle prestazioni per report con >100k file)
- Filtri aggiuntivi: Data di modifica (filtro basato sull'anno)
- Migliorato il filtro per estensione file
- Interruttore modalità Scura/Chiara direttamente nel report
- Corretto a capo automatico per percorsi UNC lunghi
- Esporta risultati filtrati in CSV
- Stati contrassegnato (★) e revisionato (✓) persistenti tramite local storage
- Le colonne possono essere mostrate/nascoste (impostazioni salvate per report)
- Ricerca full-text con evidenziazione delle parole chiave
- Layout dei filtri migliorato e più compatto
- Barra delle azioni con funzioni aggiuntive (copia percorso UNC completo / copia percorso cartella padre)
- Riga di intestazione con metadati del report e modale info
- Pulsante per unescape del contenuto (sperimentale)
Corretto
- Aggiunti controlli per percorsi UNC non validi (corregge issue #5)
- La paginazione dovrebbe risolvere issue #4
Rimosso
- Rimosso il parametro
-lightmode.
- Rimosso il parametro
-unescape.
2025-01-25
Migliorato
- Prestazioni leggermente migliorate
- Messaggi di stato modificati
2025-01-21
Nuovo
- Caselle di controllo personalizzate per supportare il processo di revisione (richiesta di funzionalità #3)
- Funzionalità unescape sperimentale
- Modalità scura
Migliorato
- Miglioramenti generali al report HTML
2025-01-17
Corretto
- Issue #2: Risolto: spazi che rompevano i link di apertura o download