
SentinelNav: herramienta de visualización y análisis forense de binarios en Python puro, sin dependencias.
SentinelNav es una herramienta de visualización binaria y análisis forense escrita en Python puro, sin dependencias externas. Transforma datos binarios en un mapa espectral interactivo que permite a los analistas identificar visualmente estructuras de archivos, anomalías de entropía, secciones de código y posibles blobs criptográficos.
Combina un backend multiproceso para el escaneo rápido de archivos con un frontend web local para la exploración interactiva, inspección hexadecimal y huellas dactilares de arquitectura.

Dado que SentinelNav solo utiliza la Biblioteca Estándar de Python, no es necesario instalar paquetes externos.
sentinelnav.py.python3 sentinelnav.py
http://localhost:8000.pip install.0x0A para registros o protocolos basados en texto).concurrent.futures.ProcessPoolExecutor para aprovechar todos los núcleos de CPU durante el escaneo.SentinelNav sigue una arquitectura Productor-Consumidor con una interfaz Cliente-Servidor.
N bytes de forma iterativa.Processor crea un grupo de trabajadores según el número de CPU.sqlite3 crea un índice estructurado del archivo binario.http.server.ThreadingMixIn para el manejo concurrente de solicitudes HTTP./data: devuelve páginas JSON de datos de fragmentos (color + entropía)./read: volcados hexadecimales específicos para el panel del inspector./search: busca secuencias hexadecimales en el archivo físico./download: extrae blobs binarios crudos o genera la visualización BMP.La herramienta utiliza un algoritmo RGB específico para representar tipos de datos binarios.
| Color | Componente | Significado |
|---|---|---|
| ROJO | Bit alto | Bytes 0x80 - 0xFF. Indica código máquina compilado, datos comprimidos, blobs cifrados o datos de imagen. |
| VERDE | ASCII | Bytes 0x20 - 0x7E. Indica texto plano, código fuente, JSON, XML o registros. |
| AZUL | Control | Bytes 0x00 - 0x1F. Indica relleno con nulos, cabeceras o caracteres de control de protocolo. |
Patrones comunes:
No es necesario instalar bibliotecas. Simplemente descargue el archivo.
# Clone o descargue el script
wget https://raw.githubusercontent.com/smolfiddle/SentinelNav/main/sentinelnav.py
Puede ejecutar la herramienta de forma interactiva o mediante argumentos de línea de comandos.
Ejecutar sin argumentos inicia el asistente:
python3 sentinelnav.py
Para automatización o usuarios avanzados, use banderas para omitir el asistente.
python3 sentinelnav.py <archivo_destino> [opciones]
| Argumento | Descripción | Por defecto |
|---|---|---|
--mode | Modo de escaneo: fixed o sentinel. | fixed |
--size | Tamaño de bloque (en bytes) para el modo fijo, o búfer máximo para centinela. | 1024 |
--hex | El byte delimitador para el modo centinela (p. ej., 0A para nueva línea). | 00 |
--port | El puerto del servidor web. | 8000 |
--window | Tamaño de la ventana deslizante para los cálculos de detección de anomalías. | 5 |
Ejemplo: Escanee una imagen de firmware con una resolución de 256 bytes en el puerto 8080:
python3 sentinelnav.py firmware.bin --size 256 --port 8080
Una vez cargada la interfaz web, están disponibles los siguientes controles: