Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
hexcymatix — Визуализирует повторяющиеся последовательности байтов в бинарных файлах, чтобы выявить скрытую структуру, поддерживая реверс-инжиниринг и обнаружение закономерностей без предопределённых сигнатур. | Kitploit
Инструменты/GitHubGitHub/xoreaxeaxeax/hexcymatix
Статический анализОбратная инженерияАнализ Бинарных Файлов
GitHubxoreaxeaxeax/hexcymatix

hexcymatix

Визуализирует повторяющиеся последовательности байтов в бинарных файлах, чтобы выявить скрытую структуру, поддерживая реверс-инжиниринг и обнаружение закономерностей без предопределённых сигнатур.

Репозиторий
1315 дней назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

hexcymatix

errlook.exe

hexcymatix — это экспериментальный исследовательский проект, в общих чертах задуманный как инструмент реверс-инжиниринга бинарных файлов для извлечения структурной информации из повторяющихся байтовых последовательностей.

Идея так и не воплотилась в полноценный инструмент, но по-прежнему даёт завораживающие изображения поразительной самосимметрии обычных данных.

Обзор

Иногда при реверс-инжиниринге у вас есть образец некоторых данных — таблица, сжатый блок, полезная нагрузка протокола, — и вы хотите найти похожие данные в другом месте файла, ещё не имея возможности написать правило или парсер, который их описывает. Вам нужна схожесть без спецификации.

hexcymatix исходит из того, что повторяющиеся байтовые строки подразумевают структуру или взаимосвязь, даже если мы не знаем, что это за структура. Визуализируя повторения, мы можем выявлять связанные данные, точно не зная, что ищем.

Например, в приведённом ниже отрывке из «Мыслей» Паскаля есть несколько повторяющихся последовательностей (« incapable of », « which he », «ing either ») — hexcymatix раскладывает файл на две строки и соединяет все повторяющиеся байтовые последовательности длиной не менее 8 байт:

Pascal Pensees

Возникающие при этом соединения намекают на скрытую структуру и взаимосвязи в данных.

Повторение этого процесса на обычном бинарном файле автоматически начинает выявлять неожиданную самоподобность, связи и структуру. В качестве примера — исполняемый файл просмотра кодов ошибок из стандартной установки Windows:

errlook.exe

Самая важная часть процесса — добавление дуг между соединениями фрагментов, чтобы результат выглядел эффектно:

errlook.exe

Полностью потеряв нить повествования, можно поэкспериментировать с различными представлениями данных. Например, тот же файл и соединения, отрисованные по периметру окружности, выглядят так:

errlook.exe

Использование

root@kitploit:~
python hexcymatix.py [options] file [file ...]

Параметры

Примеры

root@kitploit:~
# Circular visualization of an executable
python hexcymatix.py --circular guidgen.exe

# Linear visualization, top 500 fragments only
python hexcymatix.py --linear --top 500 guidgen.exe

# Batch, 4K output
python hexcymatix.py --circular --resolution 4k *.exe

Результаты

Исполняемые файлы

cmd.exe

cmd.exe circular

cmd.exe circular

calc.exe

calc.exe linear

calc.exe circular

explorer.exe

explorer.exe linear

explorer.exe circular

Шрифты

Arial TTF

arial.ttf linear

arial.ttf circular

Comic Sans TTF

comic.ttf linear

comic.ttf circular

Courier New TTF

cour.ttf linear

cour.ttf circular

Библиотеки

kernel32.dll

kernel32.dll linear

kernel32.dll circular

spwizres.dll

spwizres.dll linear

spwizres.dll circular

user32.dll

user32.dll linear

user32.dll circular

Изображения

Стандартный фон Windows 95 («Облака»)

Clouds.bmp linear

Clouds.bmp circular

Стандартный фон Windows XP («Bliss»)

bliss.jpg linear

bliss.jpg circular

Обычный текст

Лицензионное соглашение Windows XP

eula.txt linear

eula.txt circular

«Мысли» Паскаля

pg18269.txt linear

pg18269.txt circular

Аудио

Звук запуска Windows XP

xpstartu.wav linear

xpstartu.wav circular

Windows XP WMA (Девятая симфония Бетховена, входит в установку)

beethov9.wma linear

beethov9.wma circular

Зависимости

root@kitploit:~
pip install pycairo numpy pillow

pycairo собирается с привязкой к нативной библиотеке cairo, которую необходимо установить заранее: brew install cairo pkg-config в macOS или apt install libcairo2-dev pkg-config в Debian/Ubuntu.

Применение и перспективы

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

В конечном счёте идея казалась шаткой, а сценарий использования — узким, поэтому метод так и не был доведён до уровня бесшовного плагина, необходимого для полезных исследований. Эта работа публикуется здесь, чтобы не кануть в Лету, в надежде, что кто-то другой сможет развить её.

Дисклеймер об ИИ

Изначально этот проект был написан вручную на C#. Он был портирован на Python с использованием LLM, практически без контроля и проверки.

Автор

hexcymatix — исследовательская работа Кристофера Домаса (@xoreaxeaxeax).

errlook.exe

Скачать инструмент
ПараметрОписание
--circularКруговая компоновка: смещения байтов отображаются на углы кольца (по умолчанию)
--linearЛинейная компоновка: две горизонтальные полосы, соединённые перекрещивающимися четырёхугольниками
--top N [N ...]Оставить только N самых длинных фрагментов перед рендерингом; можно передать несколько значений, чтобы получить по одному изображению на каждое пороговое значение
--no-arcsРисовать только хорды, пропуская дуги (значительно быстрее, меньше визуального шума)
--resolution RESРазрешение вывода в формате WxH или один из пресетов: 480p, 720p, 1080p, 1440p, 4k, uwfhd (2560x1080), suwfhd (3840x1080) (по умолчанию: 1080p)
--ultraСокращение для --resolution 4000x4000
--circle-fill FДоля диаметра холста, занимаемая окружностью (по умолчанию: 0.25, или 0.50 для сверхшироких пресетов)
--jpgДополнительно сохранять JPEG с качеством 80% рядом с каждым PNG
--output-dir DIRКаталог для выходных файлов (по умолчанию: output)