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
SentinelNav — SentinelNav: strumento di visualizzazione binaria e analisi forense in Python puro, senza dipendenze. | Kitploit
Strumenti/GitHubGitHub/smolfiddle/sentinelnav
Memory ForensicsReverse EngineeringInformatica ForenseRecupero DatiDigital ForensicsAnalisi di BinariAnalisi del Firmware
GitHubsmolfiddle/sentinelnav

SentinelNav

SentinelNav: strumento di visualizzazione binaria e analisi forense in Python puro, senza dipendenze.

Vedi Repository
14688 mesi 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

SentinelNav

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.

Primo screenshot Secondo screenshot


Avvio rapido

Poiché SentinelNav si basa esclusivamente sulla libreria standard di Python, non è richiesta l'installazione di pacchetti esterni.

  1. Salvare lo script come sentinelnav.py.
  2. Eseguire lo script in modalità interattiva:
root@kitploit:~
python3 sentinelnav.py
  1. Trascinare il file target nella finestra del terminale quando richiesto.
  2. Aprire il browser su http://localhost:8000.


Funzionalità

Analisi principale

  • Zero dipendenze: Funziona su qualsiasi installazione standard di Python 3 senza pip install.
  • Modalità di scansione ibride:
    • Blocco fisso: Suddivide i file in blocchi coerenti (es. 1024 byte). Ideale per binari e immagini disco.
    • Sentinel: Suddivide i file in base a un delimitatore (es. 0x0A per log o protocolli basati su testo).
  • Identificazione dell'architettura (ArchID):
    • Rileva le intestazioni dei file (MZ, ELF, Mach-O, PDF, PNG, JPEG).
    • Esegue un'analisi euristica delle frequenze per indovinare l'architettura della CPU (x86, x64, ARM64) su blocchi binari grezzi.
  • Rilevamento di entropia e anomalie:
    • Calcola l'entropia di Shannon per ogni blocco.
    • Rileva eventi "Flux": picchi improvvisi (inizio di crittografia/codice) o cali (fine dei flussi di dati).

Visualizzazione

  • Mappatura spettrale: Mappa la distribuzione dei byte in colori RGB per distinguere visivamente i tipi di dati (testo vs. codice vs. padding).
  • Rendering su canvas: Rendering ad alte prestazioni tramite HTML5 canvas, in grado di gestire milioni di blocchi tramite paginazione.
  • Ispezionatore esadecimale interattivo: Fare clic su un blocco qualsiasi per visualizzare il dump esadecimale grezzo, la decodifica ASCII e l'analisi ArchID.
  • Esportazione BMP: Genera un'immagine completa della mappa termica del file per report esterni.

Prestazioni

  • Elaborazione parallela: Usa concurrent.futures.ProcessPoolExecutor per utilizzare tutti i core della CPU durante la scansione.
  • Backend SQLite: Memorizza i risultati dell'analisi in un database SQLite temporaneo per consentire un'efficiente paginazione e interrogazione di file di grandi dimensioni (GB+).

Architettura del progetto

SentinelNav segue un'architettura produttore-consumatore con interfaccia client-server.

1. Motore forense (Backend)

  • Interfaccia di scansione:
    • Astrae il processo di lettura del file.
    • FixedScanner: Legge N byte in modo iterativo.
    • SentinelScanner: Legge in un buffer e restituisce blocchi al rilevamento di byte specifici (es. byte nulli o newline).
  • Processo worker:
    • Il Processor avvia un pool di worker in base al numero di CPU.
    • FastMath: Calcola l'entropia e le frequenze dei byte (dati spettrali).
    • Euristica: Determina se un blocco è prevalentemente ASCII, prevalentemente nullo o prevalentemente ad alto bit.
  • Motore dati (storage):
    • Un database sqlite3 effimero crea un indice strutturato del file binario.
    • Memorizza: offset, lunghezza, entropia, valori RGB, punteggi di anomalia.
    • Ciò consente allo strumento di gestire file più grandi della RAM disponibile, paginando i dati on demand.

2. Il server web

  • Implementa http.server.ThreadingMixIn per la gestione concorrente delle richieste HTTP.
  • Endpoint API:
    • /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.

3. Il frontend

  • Applicazione a pagina singola (SPA) incorporata direttamente nello script Python.
  • Rendering: Usa l'API HTML5 Canvas per il rendering pixel-perfect dei blocchi.
  • Navigazione: Implementa una logica di navigazione spaziale per mappare gli input da tastiera (WASD) sul sistema di coordinate della griglia.

Guida alla mappatura visiva

Lo strumento usa un algoritmo RGB specifico per rappresentare i tipi di dati binari.

Pattern comuni:

  • Verde brillante: File di testo o codice sorgente.
  • Rosa/Viola: Misto di codice e dati (sezioni eseguibili).
  • Blu solido: Padding di zeri o spazio vuoto.
  • Statico/Grigio: Rumore ad alta entropia (dati crittografati).

Installazione

Prerequisiti

  • Python 3.6 o superiore.

Configurazione

Non è necessario installare librerie. È sufficiente scaricare il file.

root@kitploit:~
# Clona o scarica lo script
wget https://raw.githubusercontent.com/smolfiddle/SentinelNav/main/sentinelnav.py

Utilizzo e argomenti CLI

Puoi eseguire lo strumento in modalità interattiva o tramite argomenti da riga di comando.

Procedura guidata interattiva

L'esecuzione senza argomenti avvia la procedura guidata:

root@kitploit:~
python3 sentinelnav.py

Argomenti CLI

Per automazione o utenti esperti, usa i flag per saltare la procedura guidata.

root@kitploit:~
python3 sentinelnav.py <target_file> [options]

Esempio: Scansiona un'immagine firmware con una risoluzione di 256 byte sulla porta 8080:

root@kitploit:~
python3 sentinelnav.py firmware.bin --size 256 --port 8080

Controlli da tastiera

Una volta caricata l'interfaccia web, sono disponibili i seguenti controlli:

Controlli del mouse

  • Passaggio del mouse: Visualizza entropia e statistiche spettrali in tempo reale per il blocco sotto il cursore.
  • Clic: Blocca la selezione su un blocco per visualizzare il dump esadecimale e l'analisi dell'architettura nel pannello Ispettore.
Scarica lo strumento
ColoreComponenteSignificato
ROSSOAlto bitByte 0x80 - 0xFF. Indica codice macchina compilato, dati compressi, blob crittografati o dati immagine.
VERDEASCIIByte 0x20 - 0x7E. Indica testo semplice, codice sorgente, JSON, XML o log.
BLUControlloByte 0x00 - 0x1F. Indica padding di zeri, intestazioni o caratteri di controllo del protocollo.
ArgomentoDescrizioneDefault
--modeModalità di scansione: fixed o sentinel.fixed
--sizeDimensione del blocco (in byte) per la modalità fixed, o buffer massimo per sentinel.1024
--hexByte delimitatore per la modalità sentinel (es. 0A per newline).00
--portPorta del server web.8000
--windowDimensione della finestra scorrevole per i calcoli di rilevamento delle anomalie.5
TastoAzione
W / A / S / DSposta il cursore di selezione (Su/Sinistra/Giù/Destra).
Freccia sinistraPagina precedente.
Freccia destraPagina successiva.
Shift + WASDSeleziona un intervallo di blocchi (selezione multipla).
Shift + ClickSeleziona un intervallo dall'ancora precedente al blocco su cui si fa clic.