
SentinelNav: strumento di visualizzazione binaria e analisi forense in Python puro, senza dipendenze.
SentinelNav è uno strumento di visualizzazione binaria e analisi forense in puro Python, senza dipendenze esterne. Trasforma i dati binari in una mappa spettrale interattiva, consentendo agli analisti di identificare visivamente strutture di file, anomalie di entropia, sezioni di codice e potenziali blob crittografici.
Combina un backend multiprocesso per la scansione rapida dei file con un frontend web locale per l'esplorazione interattiva, l'ispezione esadecimale e l'identificazione dell'architettura.

Poiché SentinelNav si basa esclusivamente sulla libreria standard di Python, non è richiesta l'installazione di pacchetti esterni.
sentinelnav.py.python3 sentinelnav.py
http://localhost:8000.pip install.0x0A per log o protocolli basati su testo).concurrent.futures.ProcessPoolExecutor per utilizzare tutti i core della CPU durante la scansione.SentinelNav segue un'architettura produttore-consumatore con interfaccia client-server.
N byte in modo iterativo.Processor avvia un pool di worker in base al numero di CPU.sqlite3 effimero crea un indice strutturato del file binario.http.server.ThreadingMixIn per la gestione concorrente delle richieste HTTP./data: Restituisce pagine JSON dei dati dei blocchi (colore + entropia)./read: dump esadecimali specifici per il pannello dell'ispettore./search: Scansiona il file fisico alla ricerca di sequenze esadecimali./download: Estrae blob binari grezzi o genera la visualizzazione BMP.Lo strumento usa un algoritmo RGB specifico per rappresentare i tipi di dati binari.
Pattern comuni:
Non è necessario installare librerie. È sufficiente scaricare il file.
# Clona o scarica lo script
wget https://raw.githubusercontent.com/smolfiddle/SentinelNav/main/sentinelnav.py
Puoi eseguire lo strumento in modalità interattiva o tramite argomenti da riga di comando.
L'esecuzione senza argomenti avvia la procedura guidata:
python3 sentinelnav.py
Per automazione o utenti esperti, usa i flag per saltare la procedura guidata.
python3 sentinelnav.py <target_file> [options]
Esempio: Scansiona un'immagine firmware con una risoluzione di 256 byte sulla porta 8080:
python3 sentinelnav.py firmware.bin --size 256 --port 8080
Una volta caricata l'interfaccia web, sono disponibili i seguenti controlli:
| Colore | Componente | Significato |
|---|
| ROSSO | Alto bit | Byte 0x80 - 0xFF. Indica codice macchina compilato, dati compressi, blob crittografati o dati immagine. |
| VERDE | ASCII | Byte 0x20 - 0x7E. Indica testo semplice, codice sorgente, JSON, XML o log. |
| BLU | Controllo | Byte 0x00 - 0x1F. Indica padding di zeri, intestazioni o caratteri di controllo del protocollo. |
| Argomento | Descrizione | Default |
|---|
--mode | Modalità di scansione: fixed o sentinel. | fixed |
--size | Dimensione del blocco (in byte) per la modalità fixed, o buffer massimo per sentinel. | 1024 |
--hex | Byte delimitatore per la modalità sentinel (es. 0A per newline). | 00 |
--port | Porta del server web. | 8000 |
--window | Dimensione della finestra scorrevole per i calcoli di rilevamento delle anomalie. | 5 |
| Tasto | Azione |
|---|
| W / A / S / D | Sposta il cursore di selezione (Su/Sinistra/Giù/Destra). |
| Freccia sinistra | Pagina precedente. |
| Freccia destra | Pagina successiva. |
| Shift + WASD | Seleziona un intervallo di blocchi (selezione multipla). |
| Shift + Click | Seleziona un intervallo dall'ancora precedente al blocco su cui si fa clic. |