
SentinelNav: outil de visualisation binaire et d'analyse forensique en Python pur, sans dépendance.
SentinelNav est un outil de visualisation binaire et d'analyse forensique en Python pur, sans aucune dépendance. Il transforme les données binaires en une carte spectrale interactive, permettant aux analystes d'identifier visuellement les structures de fichiers, les anomalies d'entropie, les sections de code et les blobs cryptographiques potentiels.
Il combine un backend multiprocessus pour une analyse rapide des fichiers avec un frontend web local pour l'exploration interactive, l'inspection hexadécimale et l'empreinte d'architecture.

Étant donné que SentinelNav repose uniquement sur la bibliothèque standard de Python, aucune installation de paquets externes n'est requise.
sentinelnav.py.python3 sentinelnav.py
http://localhost:8000.pip install.0x0A pour les journaux ou les protocoles textuels).concurrent.futures.ProcessPoolExecutor pour exploiter tous les cœurs du processeur pendant l'analyse.SentinelNav suit une architecture producteur-consommateur avec une interface client-serveur.
N octets de manière itérative.Processor crée un pool de workers en fonction du nombre de processeurs.sqlite3 éphémère crée un index structuré du fichier binaire.http.server.ThreadingMixIn pour la gestion concurrente des requêtes HTTP./data : Renvoie des pages JSON de données de blocs (couleur + entropie)./read : dumps hexadécimaux spécifiques pour le panneau Inspecteur./search : Analyse le fichier physique à la recherche de séquences hexadécimales./download : Extrait des blobs binaires bruts ou génère la visualisation BMP.L'outil utilise un algorithme RVB spécifique pour représenter les types de données binaires.
Motifs courants :
Aucune bibliothèque n'a besoin d'être installée. Téléchargez simplement le fichier.
# Clone or download the script
wget https://raw.githubusercontent.com/smolfiddle/SentinelNav/main/sentinelnav.py
Vous pouvez exécuter l'outil de manière interactive ou via des arguments de ligne de commande.
L'exécution sans arguments lance l'assistant :
python3 sentinelnav.py
Pour l'automatisation ou les utilisateurs avancés, utilisez les options pour ignorer l'assistant.
python3 sentinelnav.py <target_file> [options]
Exemple : Analysez une image de firmware avec une résolution de 256 octets sur le port 8080 :
python3 sentinelnav.py firmware.bin --size 256 --port 8080
Une fois l'interface web chargée, les contrôles suivants sont disponibles :
| Couleur | Composant | Signification |
|---|
| ROUGE | Bit de poids fort | Octets 0x80 - 0xFF. Indique du code machine compilé, des données compressées, des blobs chiffrés ou des données image. |
| VERT | ASCII | Octets 0x20 - 0x7E. Indique du texte brut, du code source, du JSON, du XML ou des journaux. |
| BLEU | Contrôle | Octets 0x00 - 0x1F. Indique un remplissage de zéros, des en-têtes ou des caractères de contrôle de protocole. |
| Argument | Description | Défaut |
|---|
--mode | Mode d'analyse : fixed ou sentinel. | fixed |
--size | Taille de bloc (en octets) pour le mode fixe, ou tampon maximal pour le mode sentinel. | 1024 |
--hex | L'octet délimiteur pour le mode sentinel (par exemple, 0A pour un saut de ligne). | 00 |
--port | Le port du serveur web. | 8000 |
--window | Taille de la fenêtre glissante pour les calculs de détection d'anomalies. | 5 |
| Touche | Action |
|---|
| W / A / S / D | Déplace le curseur de sélection (haut/gauche/bas/droite). |
| Flèche gauche | Page précédente. |
| Flèche droite | Page suivante. |
| Maj + WASD | Sélectionne une plage de blocs (sélection multiple). |
| Maj + Clic | Sélectionne une plage depuis le point d'ancrage précédent jusqu'au bloc cliqué. |