
SentinelNav: инструмент для визуализации бинарных данных и криминалистики на чистом Python без зависимостей.
SentinelNav — это инструмент для визуализации и криминалистического анализа бинарных данных, написанный на чистом Python без внешних зависимостей. Он преобразует бинарные данные в интерактивную спектральную карту, позволяя аналитикам визуально выявлять структуры файлов, аномалии энтропии, секции кода и потенциальные криптографические блоки.
Инструмент объединяет многопроцессорный бэкенд для быстрого сканирования файлов с локальным веб-интерфейсом для интерактивного исследования, просмотра шестнадцатеричного дампа и определения архитектуры.

Поскольку SentinelNav использует только стандартную библиотеку Python, установка внешних пакетов не требуется.
sentinelnav.py.python3 sentinelnav.py
http://localhost:8000.pip install.0x0A для журналов или текстовых протоколов).concurrent.futures.ProcessPoolExecutor для задействования всех ядер ЦП во время сканирования.SentinelNav следует архитектуре «Производитель-Потребитель» с интерфейсом «Клиент-Сервер».
N байт.Processor создает пул рабочих процессов в зависимости от количества ЦП.sqlite3 создает структурированный индекс бинарного файла.http.server.ThreadingMixIn для параллельной обработки HTTP-запросов./data: Возвращает страницы JSON с данными фрагментов (цвет + энтропия)./read: Возвращает шестнадцатеричные дампы для панели инспектора./search: Ищет шестнадцатеричные последовательности в физическом файле./download: Извлекает сырые бинарные блоки или генерирует BMP-визуализацию.Инструмент использует специальный алгоритм RGB для представления типов бинарных данных.
| Цвет | Компонент | Значение |
|---|---|---|
| Красный | Высокий бит | Байты 0x80 - 0xFF. Указывает на скомпилированный машинный код, сжатые данные, зашифрованные блоки или данные изображений. |
| Зеленый | ASCII | Байты 0x20 - 0x7E. Указывает на обычный текст, исходный код, JSON, XML или журналы. |
| Синий | Управление | Байты 0x00 - 0x1F. Указывает на нулевое заполнение, заголовки или управляющие символы протоколов. |
Типичные паттерны:
Устанавливать библиотеки не требуется. Просто скачайте файл.
# Клонируйте или скачайте скрипт
wget https://raw.githubusercontent.com/smolfiddle/SentinelNav/main/sentinelnav.py
Вы можете запустить инструмент в интерактивном режиме или с помощью аргументов командной строки.
Запуск без аргументов запускает мастер:
python3 sentinelnav.py
Для автоматизации или опытных пользователей используйте флаги, чтобы пропустить мастер.
python3 sentinelnav.py <целевой_файл> [опции]
| Аргумент | Описание | По умолчанию |
|---|---|---|
--mode | Режим сканирования: fixed или sentinel. | fixed |
--size | Размер блока (в байтах) для режима fixed или макс. буфер для sentinel. | 1024 |
--hex | Байт-разделитель для режима sentinel (например, 0A для перевода строки). | 00 |
--port | Порт веб-сервера. | 8000 |
--window | Размер скользящего окна для вычислений обнаружения аномалий. | 5 |
Пример: Сканировать образ прошивки с разрешением 256 байт на порту 8080:
python3 sentinelnav.py firmware.bin --size 256 --port 8080
После загрузки веб-интерфейса доступны следующие элементы управления: