Гекс -редактор для реверс -инженеров, программистов и людей, которые ценят свои сетчатки при работе в 3 часа ночи.
/ˈꞮmhɛks/
Поддержка
Если вам нравится моя работа, пожалуйста, рассмотрите возможность поддержать меня на спонсорах GitHub, Patreon или Paypal. Большое спасибо!
Скриншоты
Больше скриншотов
Функции
Особенный шестнадцатеричный вид
- Байт исправление
- Управление патчами
- Бесконечное отмену/повторно
- "Копировать байты как ..."
- Байты
- Шестнадцатеричная строка
- C, C ++, C#, Rust, Python, Java & JavaScript Array
- Ascii-Art Hex View
- HTML Автономный Div
- Простой поиск строки и шестнадцатеричного поиска
- Goto от начала, конца и текущей позиции курсора
- Красочное выделение
- Настраиваемые правила выделения переднего плана
- Фон выделяет с помощью шаблонов, найти результаты и закладки
- Отображение данных в качестве списка многих различных типов
- Шестнадцатеричные целые числа (8, 16, 32, 64 бит)
- Подписанные и безписанные десятичные целые числа (8, 16, 32, 64 бит)
- Поплавки (16, 32, 64 бит)
- Цвета RGBA8
- Hexii
- Бинарный
- Декодирование данных как ASCII и пользовательские кодировки
- Встроенная поддержка UTF-8, UTF-16, ShiftJIS, большинства кодировки Windows и многих других
- Полиночное представление данных
Пользовательский C ++-как язык шаблонов для анализа отображения контента файла
- Автоматическая загрузка на основе типов MIME и магических значений
- Массивы, указатели, структуры, союзы, перечисления, битовые поля, пространства имен, небольшая и большая эндсианская поддержка, условные и многое другое!
- Полезные сообщения об ошибках, выделение синтаксиса и маркировка ошибок
- Поддержка визуализации множества различных типов данных
- Изображения
- Аудио
- 3D -модели
- Координаты
- Марки времени
Тематическая поддержка
- Не сжигает сетчатки при использовании в ночных сеансах
- Dark Mode по умолчанию, но также доступен режим света
- Настраиваемые цвета и стили для всех элементов пользовательского интерфейса через общие файлы темы
- Поддержка пользовательских шрифтов
Импорт и экспорт данных
- Base64 файлы
- Платыки IPS и IPS32
- Отчеты об Марковде
Инспектор данных
- Интерпретирование данных как много разных типов с эндианностью, десятичной, шестнадцатеричной и восьмисленной поддержкой и инверсией бит
- Неподписанные и подписанные целые числа (8, 16, 24, 32, 48, 64 бит)
- Поплавки (16, 32, 64 бит)
- Подписано и без подписи LEB128
- ASCII, широкие и UTF-8 символы и струны
- Time32_T, Time64_T, DOS Date and Time
- Гид
- Цвета RGBA8 и RGB65
- Копирование и изменение байтов через инспектора
- Добавление новых типов данных через язык шаблона
- Поддержка скрытия рядов, которые не используются
Предварительный процессор на основе узлов
- Модифицировать, расшифровать и декодировать данные до того, как они будут отображаться в редакторе HEX
- Измените данные, не касаясь основного источника
- Поддержка добавления пользовательских узлов
Загрузка данных из множества различных источников данных
- Локальные файлы
- Поддержка огромных файлов с быстрой и эффективной загрузкой
- Сырые диски
- Загрузка данных из необработанных дисков и разделов
- Сервер GDB
- Доступ к оперативной памяти процесса работы или встроенных устройств через GDB
- Intel Hex и Motorola SREC
- Память процесса
- Осмотрите все адресное пространство процесса работы
Поиск данных
- Поддержка поиска всего файла или только выбора
- Извлечение строки
- Опция для указания минимальной длины и набора символов (нижний чехол, верхний корпус, цифры, символы)
- Возможность указать кодирование (ASCII, UTF-8, UTF-16 Big и Little Endian)
- Поиск последовательности
- Поиск последовательности байтов или символов
- Возможность игнорировать случай символов
- Поиск корпорации
- Поиск строк, используя регулярные выражения
- Бинарная картина
- Поиск последовательностей байтов с дополнительными подстановочными знаками
- Числовое поиск значений
- Поиск подписанных/без подписи целых чисел и поплавок
- Поиск диапазонов ценностей
- Возможность указать размер и эндианство
- Возможность игнорировать невыносимые значения
Данные хешинг поддержки
- Доступно много разных алгоритмов
- CRC8, CRC16 и CRC32 с пользовательскими начальными значениями и полиномами
- Доступно много полиномов по умолчанию
- MD5
- SHA-1, SHA-224, SHA-256, SHA-384, SHA-512
- Adler32
- Доступа
- Бкдр
- Бернштейн, Бернштейн1
- Dek, DJB, ELF, FNV1, FNV1A, JS, PJW, RS, SDBM
- OneAttime, вращение, Shiftandxor, Superast
- Murmur2_32, murmurhash3_x86_32, murmurhash3_x86_128, murmurhash3_x64_128
- Siphash64, Siphash128
- Xxhash32, xxhash64
- Тигр, тигр2
- Blake2b, Blake2s
- Хэширование конкретных областей загруженных данных
- Хешинг произвольных строк
Разница в дифференциации
- Сравните данные различных источников данных
- Разница выделения
- Взгляд на таблицу различий
Интегрированный разборщик
- Поддержка всех архитектур, поддерживаемых Capstone
- ARM32 (ARM, THEMP, CORTEX-M, AARCH32)
- ARM64
- MIPS (MIPS32, MIPS64, MIPS32R6, Micro)
- x86 (16-битный, 32-битный, 64-битный)
- PowerPC (32-битный, 64-битный)
- Запланированный
- IBM Systemz
- Xcore
- M68K
- TMS320C64X
- M680x
- Ethereum
- RISC-V
- Webassembly
- MOS65XX
- Berkeley Packet Filter
Закладки
- Поддержка закладок с индивидуальными именами и цветами
- Выделение региона в закладки в редакторе HEX
- Прыгайте в закладки
- Открыть контент закладки в новой вкладке
- Добавить комментарии к закладкам
Особый анализатор данных и визуализатор
- Файл магический анализатор файла и база данных типа MIME
- График распределения типа байта
- График энтропии
- Самая высокая и средняя энтропия
- Обнаружение зашифрованного / сжатого файла зашифровано
- Digram и слоистые графики распределения
Поддержка правления Yara
- Сканируйте файл для уязвимостей с официальными правилами Yara
- Выделите матчи в редакторе HEX
- Прыгнуть на матчи
- Применить несколько правил одновременно
Полезные инструменты
- Итания, MSVC, Rust и D-Lang DeMangler на основе LLVM
- Таблица ASCII
- Regex Replacer
- Оценчик математического выражения (калькулятор)
- Графический калькулятор
- Шестнадцатеричный сборщик цвета с поддержкой многих различных форматов
- Базовый преобразователь
- Байт Swapper
- Unix разрешений калькулятор
- Википедийский термин искатель определения
- Подать утилиты
- Файл Сплиттер
- Файл Комбинер
- Файл измельчитель
- IEEE754 Float Visualizer
- Разделение по инвариантному калькулятору умножения
- TCP Client/Server
- Евклидовый алгоритм калькулятор
Встроенный контент
- Загрузите все файлы, найденные в базе данных непосредственно из Imhex
- Файлы шаблонов для декодирования различных форматов файлов
- Библиотеки для языка шаблонов
- Волшебные файлы для обнаружения типа файла
- Узлы процессоров пользовательских данных
- Пользовательские кодировки
- Пользовательские темы
- Яра Правила
Современный интерфейс
- Поддержка нескольких рабочих мест
- Поддержка пользовательских макетов
- Съемные окна
Легко начать
- Поддержка многих разных языков
- Упрощенный режим для начинающих
- Обширная документация
- Много примеров файлов, доступных в базе данных
- Достижения направляют вас через особенности IMHEX
- Интерактивные учебники
Язык с шаблонами
Язык шаблона - это полностью пользовательский язык программирования, разработанный для IMHEX. Он позволяет вам определять структуры и типы данных в C-подобном синтаксисе, а затем использовать их для анализа и выделения содержания файла.
- Исходный код: ссылка
- Документация: Ссылка
База данных
Для схемы формата, библиотек, магии и постоянных файлов ознакомьтесь с репозиторием imhex-patterns.
Не стесняйтесь питать свои собственные файлы!
Требования
Для использования IMHEX необходимо выполнить следующие минимальные системные требования.
Важный
IMHEX требует GPU с поддержкой OpenGL 3.0 в целом. Существуют выпуски (с суффиксом -NoGPU
), которые представлены в программном обеспечении и не требуют графического процессора, однако они могут быть намного медленнее, чем ускоренные версии графического процессора.
Если возможно, заставьте Imhex использовать выделенный графический процессор в вашей системе вместо интегрированного. IMHEX обычно работает нормально с интегрированными графическими процессорами, но некоторые драйверы Intel HD GPU в окнах, как известно, вызывают графические артефакты.
- ОС :
- Windows : Windows 7 или выше (рекомендуется Windows 10/11)
- macOS : macOS 12.1 (Monterey) или выше,
- Нижние версии поддерживаются, но вам нужно скомпилировать imhex самостоятельно
- Linux : «Современный» Linux. Следующие распределения имеют официальные выпуски. Другие дистрибуции поддерживаются через выпуск Appimage и Flatpak.
- Ubuntu и Debian
- Федора
- Rhel/Almalinux
- Arch Linux
- В основном любое другое дистрибутив будет работать так же, как и в составлении IMHEX из источников.
- ЦП : x86_64 (64 бит)
- GPU : OpenGL 3.0 или выше
- Поддерживается интегрированные IGPU Intel HD, однако, как известно, некоторые драйверы вызывают различные графические артефакты, особенно в Windows. Используйте свой собственный риск.
- В случае, если у вас нет GPU, есть программное обеспечение, доступные для Windows и MacOS
- ОЗУ : 256 МБ, для более сложного анализа может потребоваться больше
- Хранение : 150 МБ
Установка
Информацию о том, как установить imhex можно найти в руководстве по установке
Компиляция
Для компиляции IMHEX на любой платформе GCC (или Clang) требуется с версией, которая поддерживает C ++ 23 или выше. На macOS также необходим Clang, чтобы скомпилировать код OBJC. Все выпуски строятся с использованием последней доступной GCC.
Примечание
Многие зависимости в комплекте в хранилище с использованием подмодулей, поэтому обязательно клонируйте его, используя опцию --recurse-submodules
. Все зависимости, которые не связаны, могут быть установлены с помощью сценариев установщика зависимостей, найденных в папке /dist
.
Для получения дополнительной информации ознакомьтесь с руководством по компиляции.
Внося
Смотрите
Разработка плагина
Для разработки плагинов для IMHEX используйте следующий шаблонный проект, чтобы начать работу. Затем у вас есть доступ ко всему либимгексу, а также API IMHEX и реестра контента, чтобы взаимодействовать с IMHEX или добавлять новый контент.
Кредиты
Участники
- ITRooz за то, чтобы доставить IMHEX в Интернет, а также сотни вкладов в каждой части проекта
- Jumanji144 за огромный вклад в язык образца и инфраструктуру imhex
- Мэри за ее огромную помощь переносить imhex в macos и помочь во время разработки
- Roblabla для добавления поддержки установщика MSI в Imhex
- Mailaender для получения imhex на Flathub
- Все остальные, кто сообщил о проблемах о Discord или GitHub, с которыми у меня были отличные беседы :)
Зависимости
- Большое спасибо Ocornut за их удивительный дорогой Imgui, который используется для построения всего интерфейса
- Благодаря Epezent за IMPOT, используемый для построения данных в разных местах
- Спасибо Nelarius за Imnodes, используемые в качестве базы для процессора данных
- Благодаря Балазсджако за imguicolortextedit, используемый для синтаксиса языка шаблона
- Спасибо Nlohmann за их библиотеку JSON, используемая для файлов конфигурации
- Спасибо Vitaut за их библиотеку Libfmt, которая делает форматирование и регистрацию намного лучше
- Благодаря Btzy за NativeFileDialog-Extended и их отличную поддержку, используемое для обработки диалогов файлов на всех платформах
- Спасибо Danyspin97 за XDGPP, используемый для обработки путей папок на Linux
- Спасибо Aquynh за Capstone, которая является основой окна разборки
- Спасибо RXI за микротар, используемый для извлечения загруженных активов магазина
- Благодаря virustotal для Yara, используемой плагином Yara
- Спасибо Martinsos за Edlib, используемый для поиска последовательностей в разное представление
- Благодаря Ron4fun за Hashlibplus, который реализует каждый алгоритм хеширования под солнцем
- Спасибо Mackron за Miniaudio, используемый для воспроизведения аудиофайлов
- Спасибо всем другим группам и организациям, чьи библиотеки используются в IMHEX
Лицензия
Самая большая часть IMHEX находится под лицензией только GPLV2. Примечательными исключениями из этого являются следующие части, которые находятся под лицензией LGPLV2.1:
- /lib/libimhex : библиотека, которая позволяет плагинам взаимодействовать с imhex.
- /плагины/пользовательский интерфейс : библиотека плагинов пользовательского интерфейса, которая содержит некоторые общие элементы пользовательского интерфейса, которые могут использоваться другими плагинами
Причина этого состоит в том, чтобы разрешить разработку проприетарных плагинов для IMHEX.