| Разработка и ромхакинг > Ромхакинг |
| Байт-о-скоп (Byte-o-scope) — Интерактивный визуализатор бинарных файлов |
| (1/1) |
| pav13:
Интерактивный визуализатор бинарных файловБайт-о-скоп (Byte-o-scope) Автор: pav13 (pav13@mail.ru) Примечание: Часть кода была сгенерирована или доработана с использованием ИИ. Байт-о-скоп (Byte-o-scope) — интерактивный визуализатор бинарных файлов, преобразующий последовательности байтов в изображения. Основные возможности: - Визуализация файлов любого размера (КБ - ГБ) с тайловым рендерингом - Более 20 встроенных палитр для анализа - Поддержка многобайтовых форматов (RGBA, RGB, целые числа, float) - Интерактивный просмотр с масштабированием и панорамированием - Информационная панель с детализацией байтов - Панорамный вид для навигации - Экспорт в PNG - Сравнение файлов через XOR - Сохранение/загрузка настроек - Темная/светлая темы Требования: Python 3.6+ PyQt5, numpy, psutil Установка зависимостей: pip install PyQt5 numpy psutil Запуск: python byte-o-scope.py Дополнительная информация: - При первом запуске скрипт предложит установить недостающие зависимости - Поддерживается drag-and-drop (перетаскивание файлов в окно) - Работает на Windows, Linux, macOS Левая панель (Основные настройки): - Файл: Открыть, Сравнить, Сохранить/Загрузить настройки, Экспорт PNG, Сброс, Переключение темы - Палитры: Однобайтовые/битовые и многобайтовые палитры - Регион: Начало (адрес), Длина (0 = весь файл), переключение hex/dec - Отображение: Режим ширины (Ручной/Авто), Ширина, Масштаб, Автомасштаб Центральная панель (Просмотр): - ЛКМ на пикселе — фиксация информации о байте - ПКМ + перемещение — панорамирование - Колесо мыши — изменение масштаба - Ctrl + Колесо — изменение ширины (в ручном режиме) Правая панель (Инструменты): - Информация о байте (адрес, hex, ASCII, биты) - Зеркальное отражение (горизонтальное/вертикальное) - Настройки текущей палитры (для настраиваемых) - Панорама (overview) для навигации - Настройки производительности Однобайтовые/битовые палитры: - Оттенки серого — значение байта как интенсивность - Тепловая/Термальная — градиентные карты - Вирдис/Плазма/Радуга/HSV — цветовые градиенты - Нули/Единицы — 0 - синий, 255 - желтый - Не-Ноль — все ненулевые - зеленый - Битовые плоскости — отображение конкретного бита - Полосы энтропии — группировка по диапазонам - Частота байтов — окраска по частоте встречаемости - Повторы — выделение часто повторяющихся байтов - Пользовательская — собственные цветовые правила Многобайтовые палитры: - RGBA/ABGR/RGB — цветовые форматы - Integer 8/16/32/64 — целые числа (с настройкой signed/unsigned) - Float 32/64 — числа с плавающей точкой Настройки многобайтовых палитр: - Порядок байтов (big/little) - signed/unsigned для целых чисел - Порядок цветов для RGB Пользовательская палитра: - Задание цветов для диапазонов значений (0-255) - Управление правилами: добавление, удаление, настройка - Цвет по умолчанию для значений вне диапазонов - Правила применяются сверху вниз Ctrl+O — открыть файл Ctrl+S — сохранить настройки (.bos) Ctrl+L — загрузить настройки Ctrl+R — сбросить настройки Ctrl+E — экспорт в PNG Ctrl+X — сравнить два файла Открытие файлов: - Меню "Открыть" (Ctrl+O) - Drag-and-drop - Меню последних файлов - Автоматический поиск .bos файлов настроек Сохранение/загрузка настроек: - Настройки сохраняются в .bos файл (JSON формат) - Файл сохраняется рядом с исходным файлом - Автоматическая загрузка при открытии файла - Включает все параметры визуализации Экспорт в PNG: - Точное изображение без сглаживания - Сохранение всех текущих настроек - Диалог выбора места сохранения - Имя по умолчанию соответствует исходному файлу Сравнение файлов (XOR): - Побайтовое сравнение двух файлов - Визуализация различий - Открывается диалог выбора двух файлов - Полезно для нахождения различий между версиями Список последних файлов: - До 8 последних файлов - Очистка списка - Закрытие текущего файла (возврат к демо) - Автоматическое удаление несуществующих файлов Настройки производительности (ползунок): - Размер тайла: 128-1024 пикселя - Запас предзагрузки: 1-6 тайлов - Макс. размер кэша: 180-4000 МБ Рекомендации по настройкам: - Малые файлы (<100 МБ) - сдвиг влево (экономия памяти) - Большие файлы (ГБ) - сдвиг вправо (плавная работа) - Изменения применяются с задержкой 1 секунда - При смене настроек кэш очищается Индикаторы производительности: - Потребление оперативной памяти - Состояние занятости (рендеринг, экспорт) - Индикатор в заголовке окна Архитектура программы: - Visualizer - главное окно - CanvasWidget + TileManager - тайловый рендеринг - PaletteManager - управление палитрами - PanoramaWidget - панорамный вид - ControlsPanel - панель управления - ThemeManager - темы оформления - WindowSettingsManager - сохранение настроек Оптимизации: - Memory-mapping (mmap) для больших файлов - Рендеринг только видимой области - NumPy для векторных операций - LRU-кэш тайлов с автоматической очисткой - Prefetching (предзагрузка тайлов) Медленная работа/подтормаживания: - Увеличить ползунок производительности - Проверить расположение файла (не сетевой диск) - Закрыть ресурсоемкие приложения - Уменьшить масштаб изображения Высокое потребление памяти: - Сдвинуть ползунок влево - Перезапустить программу (очистка кэша) - Использовать менее требовательные палитры Не работают частотные палитры: - Палитры "Частота байтов"/"Повторы" работают только до 10 МБ - Для больших файлов включается эмуляция - Использовать другие палитры для больших файлов Не сохраняются настройки: - Проверить права записи в домашнюю директорию - Настройки хранятся в ~/.byte-o-scope/config.json - Попробовать запустить программу от администратора Экспорт PNG не работает: - Проверить, что регион задан корректно - Убедиться, что есть данные для экспорта - Проверить права записи в целевую директорию - Попробовать другой формат имени файла Общие примечания: - Программа работает в демо-режиме при запуске без файла - Все настройки сохраняются между сеансами - Поддерживается работа с очень большими файлами (ГБ) - Интерфейс адаптируется под выбранную палитру - Темная тема включена по умолчанию Добавлено позже: Скрипт изначально создавался как "игрушка" на один раз, но позже оброс дополнительным функционалом и оптимизацией. Решил поделиться, чтобы он у меня на харде не пылился. Из наиболее близких аналогов: - binocle (https://github.com/sharkdp/binocle) - ImageHeat (https://github.com/bartlomiejduda/ImageHeat) С тематическим списком софта можно ознакомиться тут https://suszter.com/hexlasso/a-collection-of-utilities |
| Навигация |
| Главная страница сообщений |