
SentinelNav: ferramenta de visualização e forense binária em Python puro, sem dependências.
SentinelNav é uma ferramenta de visualização e forense binária puramente em Python, com zero dependências. Ela transforma dados binários em um mapa espectral interativo, permitindo que analistas identifiquem visualmente estruturas de arquivos, anomalias de entropia, seções de código e possíveis blobs criptográficos.
Ela combina um backend de multiprocessamento para varredura rápida de arquivos com um frontend baseado em web local para exploração interativa, inspeção hexadecimal e identificação de arquitetura.

Como o SentinelNav depende apenas da Biblioteca Padrão do Python, nenhuma instalação de pacotes externos é necessária.
sentinelnav.py.python3 sentinelnav.py
http://localhost:8000.pip install.0x0A para logs ou protocolos baseados em texto).concurrent.futures.ProcessPoolExecutor para utilizar todos os núcleos da CPU durante a varredura.SentinelNav segue uma arquitetura Produtor-Consumidor com uma interface Cliente-Servidor.
N bytes iterativamente.Processor inicia um pool de workers com base na contagem de CPUs.sqlite3 efêmero cria um índice estruturado do arquivo binário.http.server.ThreadingMixIn para manipulação concorrente de requisições HTTP./data: Retorna páginas JSON de dados de blocos (Cor + Entropia)./read: dumps hexadecimais específicos para o painel do Inspetor./search: Varre o arquivo físico em busca de sequências hexadecimais./download: Extrai blobs binários brutos ou gera a visualização BMP.A ferramenta usa um algoritmo RGB específico para representar tipos de dados binários.
| Cor | Componente | Significado |
|---|---|---|
| VERMELHO | High Bit | Bytes 0x80 - 0xFF. Indica código de máquina compilado, dados compactados, blobs criptografados ou dados de imagem. |
| VERDE | ASCII | Bytes 0x20 - 0x7E. Indica texto simples, código fonte, JSON, XML ou logs. |
| AZUL | Controle | Bytes 0x00 - 0x1F. Indica preenchimento nulo, cabeçalhos ou caracteres de controle de protocolo. |
Padrões Comuns:
Nenhuma biblioteca precisa ser instalada. Basta baixar o arquivo.
# Clone ou baixe o script
wget https://raw.githubusercontent.com/smolfiddle/SentinelNav/main/sentinelnav.py
Você pode executar a ferramenta interativamente ou via argumentos de linha de comando.
Executar sem argumentos inicia o assistente:
python3 sentinelnav.py
Para automação ou usuários avançados, use flags para pular o assistente.
python3 sentinelnav.py <arquivo_alvo> [opções]
| Argumento | Descrição | Padrão |
|---|---|---|
--mode | Modo de varredura: fixed ou sentinel. | fixed |
--size | Tamanho do bloco (em bytes) para modo fixo, ou buffer máximo para sentinela. | 1024 |
--hex | O byte delimitador para modo sentinela (ex.: 0A para nova linha). | 00 |
--port | A porta do servidor web. | 8000 |
--window | Tamanho da janela deslizante para cálculos de detecção de anomalias. | 5 |
Exemplo: Escaneie uma imagem de firmware com resolução de 256 bytes na porta 8080:
python3 sentinelnav.py firmware.bin --size 256 --port 8080
Uma vez que a interface web esteja carregada, os seguintes controles estão disponíveis: