
Ваш HEX-редактор должен подсвечивать байты цветами
DrArgentum 1 час назад Ваш HEX-редактор должен подсвечивать байты цветами Средний 5 мин 3.1K Блог компании Timeweb Cloud Программирование * Визуализация данных * Игры и игровые консоли Перевод Автор оригинала: Alice...
В сфере искусственного интеллекта произошло заметное событие. DrArgentum 1 час назад Ваш HEX-редактор должен подсвечивать байты цветами Средний 5 мин 3. 1K Блог компании Timeweb Cloud Программирование * Визуализация данных * Игры и игровые консоли Перевод Автор оригинала: Alice Pellerin Слишком часто я вижу, что почти все hex-редакторы выглядят так:Каждый раз, когда я открываю их, мне становится жаль бедного человека, которому приходится пользоваться этим (особенно, если этот человек - я! Простой список байтов затрудняет поиск важных или интересных вещей среди массива данных.
давайте, попробуйте найти в этих байтах единичный c0:Но стоит подсветить байты:И становится гораздо проще выделить уникальный байт, если он другого цвета! Человеческий мозг действительно хорош в распознавании визуальных образов — при условии правильного форматаВот еще несколько примеров:Пример 1Пример 1Этот файл начинается с магических байт KPS, за которыми следует набор 32-разрядных целых чисел (little-endian) в диапазоне от 0 до 999 (0x3e7). Цвета позволяют быстро распознать, что каждое 32-разрядное целое число относительно маленькое, поскольку два старших байта всегда равны 00 00.
Технические детали
Если присмотреться, можно заметить и другие закономерности, например, цифры, отсчитывающие каждые 0x18 байт, начиная с 0xсЕсли вам интересен этот конкретный формат файла, то код, который его парсит, довольно прост, даже если вы не программист. Есть даже вики-страница с представляемыми данными, если вам нравятся Fossil Fighters. Перейдем ко второму примеру.
Пример 2Пример 2Этот фрагмент, начинающийся с 0x14, содержит длинный ряд увеличивающихся 32-разрядных целых чисел (снова little-endian). Каждое из них является индексом к более поздней точке файла, к структуре, обычно длиной около 0x3c байт. примерно равномерно расположенные индексы создают очень красивые радужные градиенты.
Третий пример:Пример 3Пример 3Эти данные сжимаются с использованием алгоритма Хаффмана, в частности, кода, совместимого с Nintendo DS BIOS. сначала кодируется 0x20 байт используемого дерева Хаффмана, затем 0x90 байт сжатого битового потока — фактического содержимого сжатого файла. Между этими двумя частями есть большая разница, которую трудно заметить без помощи цветов.
Дерево в основном содержит байты в диапазоне 00-0f (плюс несколько нижних 80 и c0), но в битовом потоке байты равномерно распределены по всему диапазону 00-ff. Битовый поток гораздо более красочный и хаотичный, потому что хорошие алгоритмы сжатия выводят данные, которые визуально выглядят случайными. В идеале, любые закономерности, которые вы заметили бы в данных, должны были в свою очередь замечены алгоритмом, а затем использованы для уменьшения размера сжатых выходных данных.
Событие, по словам экспертов, усилит конкуренцию в сфере ИИ.




