Описание файла hex

HxD Hex Editor

Бесплатный, но всё ещё достаточно мощный редактор для бинарных файлов поддерживающий основные кодировки, вроде ANSI или ASCII, зачастую используется как дополнение к более функциональным калькуляторам и конверторам. Воспринимает файлы без ограничения размеров, а главное – позволяет изменять оперативную память, сразу же записывая любые нововведения на жёсткий диск. А удобный и эргономичный интерфейс, продуманный создателями, лишний раз упрощает работу пользователя. В HxD Hex Editor нет классического нагромождения инструментов и всё устроено за счёт простой системы шторок, уже за это можно скачать hex редактор.

FlexHex

FlexHex – это мощный коммерческий hex-редактор от компании Heaventools Software, который включает многие из функций, доступных в Hex Editor Neo. Единственное, чего здесь нет – это, пожалуй, поддержка скриптов. Зато этот полнофункциональный редактор одинаково хорошо обрабатывает бинарники, OLE-файлы, физические диски и альтернативные NTFS-потоки

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

Для еще большего удобства работает система удобных закладок. При этом FlexHex непрерывно ведет историю всех операций – можно отменить любое действие, просто выбрав его из списка изменений (undo-list не ограничен)! В FlexHex поддерживаются все необходимые операции с бинарными данными, поиск ASCII и Unicode-строк. Если необходимо обрабатывать структуру с заранее известным форматом, задать ее параметры не составит труда с помощью специальных инструментов. В результате получаем отличный hex-редактор, но все-таки сильно уступающий тому же FileInsight. Единственная примечательная опция – это обработка OLE-файлов, но и тут есть проблемы. Несколько раз при попытке открыть зараженный OLE, программа вылетала с ошибкой «The docfile has been corrupted».

Examples

10C00000576F77212044696420796F7520726561CC
10C010006C6C7920676F207468726F756768206137
10C020006C6C20746869732074726F75626C652023
10C03000746F207265616420746869732073747210
04C040007696E67397
00000001FF

In the example above you can see a piece of code with normal 16 bit addressing.
The first 4 lines have 16 bytes of data each, which can be seen by the byte count, the first byte of each line.
The 5th line has only 4 bytes because the program is at its end there.

After the byte count on each line you can see the address where the 1st data byte of that line is to be stored.
The begin address of the file is $C000.
Remember that the address order within a file is not important.

Then the record type is given.
In each data record this identifier is $00.
Only in the End Of File record, the last line, this identifier is $01.
Note that the address of the last line is also $0000 and that there are no data bytes in this last record.

The data bytes follow the record identifier, at least for the data records they do.

Finally you see the checksum as the last byte of every record.
If you like you can add all bytes of each line together and the 8-bit result should be $00 every time.

100000004578616D706C65207769746820616E2039
0B0010006164647265737320676170A7
101000004865726520697320612067617020696E90
1010100020746865206D656D6F727920616C6C6FEE
06102000636174696F6E4C
00000001FF

Here you see an example with an address gap.
The first part of the program starts at address $0000.
After the second record the address has suddenly changed to $1000.
All date in the addresses in between remain unchanged, or are undefined.
It is even possible to fill in these «blanks» later, without destroying the code presented in this example.
As you can see not all lines have the same number of data bytes, which is no problem.

BTW: In both examples so far no Extended segment or Linear Base Address were defined.
So these addresses are assumed to be $0000.

020000022BC011
1012340054686973207061727420697320696E2028
0D12440061206C6F77207365676D656E74B7
020000027F007D
1080000054686973207061727420697320696E20EE
108010007468652068696768207365676D656E744C
00000001FF

In this final example I show you a piece of code with Extended Segment records in it.
The first record is one of them.
Here the Extended Segment address is set to $2BC0, which means that $2BC00 is added to all subsequent address fields to obtain the target address of the data.
E.g. the first data byte of the 2nd record is stored at location $2BC00+$1234=$2CE34.

In the 4th record a new Extended Segment address is specified, which means that from then on all address fields are added to $7F000 to obtain the target address.

The Extended Segments records in this example can be replaced by Linear Base Address records by changing the identifier ‘02‘ into ‘04‘ and adapting the corresponding checksums.
When keeping all other values the same this would result in a target address for the first byte of the second record of $2BC00000+$1234=$2BC01234.

Обзор бесплатных шестнадцатеричных редакторов

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

HxD отличный шестнадцатеричный hex-редактор

Одной из лучших утилит для редактирования двоичного кода является

Во-первых, программа портативная и не нуждается в установке, что особенно важно, при частой необходимости в правке исполняемых файлов. Во-вторых, она имеет приятный интерфейс. В-третьих, HxD обрабатывает большие файлы без задержек и «замираний экрана»

Кроме того, добавьте к этому возможности неограниченной истории правок, быстрого поиска и замены, сравнение бинарных файлов, полную поддержку ANSI, DOS/IBM-ASCII и EBCDIC. И еще десяток возможностей, некоторые из которых будут перечислены ниже. HxD также позволяет редактировать не только диск, но и оперативную память. Как факт, но такой набор возможностей делает программу опасной игрушкой в руках начинающих пользователей. Кроме того, приложения безопасности могут так же реагировать на его действия, но опытные пользователи понимают, что это происходит из-за специфики обращения к данным и использования потенциально опасных функций. 

В-третьих, HxD обрабатывает большие файлы без задержек и «замираний экрана». Кроме того, добавьте к этому возможности неограниченной истории правок, быстрого поиска и замены, сравнение бинарных файлов, полную поддержку ANSI, DOS/IBM-ASCII и EBCDIC. И еще десяток возможностей, некоторые из которых будут перечислены ниже. HxD также позволяет редактировать не только диск, но и оперативную память. Как факт, но такой набор возможностей делает программу опасной игрушкой в руках начинающих пользователей. Кроме того, приложения безопасности могут так же реагировать на его действия, но опытные пользователи понимают, что это происходит из-за специфики обращения к данным и использования потенциально опасных функций. 

В целом, HxD отлично подойдет тем, кто часто имеет дело с различным двоичным кодом.

Другие возможности и характеристики:

  • Безопасный доступ к файлам, которые используют другие программы
  • Генератор контрольных сумм: Checksum, CRCs, Custom CRC, SHA-1, SHA-512, MD5, …
  • Экспорт данных в различные форматы
  • Вставка шаблонов кодов
  • Возможность безопасного удаления файлов.
  • Разделение или объединение файлов
  • Различные виды группировок в столбцах (1,2,4,8,16 байт)
  • Подсветка измененных данных
  • Быстрый переход к адресу
  • Поддержка копирования данных буфера обмена из других программ: Visual Studio/Visual C++, WinHex, HexWorkshop, …
  • Закладки
  • И многое другое…

Как открыть файл HEX

Далеко не все являются программистами, и иногда открыть файл с расширением HEX может понадобиться обычному человеку, чтобы посмотреть в нём некую информацию. На самом деле для такой простой задачи вполне достаточно обычного Блокнота – стандартного приложения, которое имеется в любой системе Windows. Ведь этот файл, по сути, является текстовым, просто в нём записана специфическая информация, но обычными символами.

Для этого достаточно кликнуть на файле правой кнопкой мыши, выбрать в меню пункт «Открыть» или «Открыть с помощью», затем «Выбрать из списка установленных программ», а далее просто выбрать стандартный Блокнот. Снимите галочку с пункта «Использовать выбранную программу для всех файлов этого типа» — вдруг вы его потом будете открывать другой программой. Можно просто открыть Блокнот, а файл в него перетащить, и он откроется.

Гораздо удобнее для открытия таких файлов подходит другая версия Блокнота – Notepad++. Скачать можно по этой ссылке. Эта программа также есть у многих, так как более удобна. Но она может к тому же распознавать многие языки программирования и файлы HEX в ней выглядят гораздо удобнее, так как есть выделение цветом. Notepad++ представляет собой как бы примитивный HEX-редактор, и этим можно пользоваться совершенно свободно.

Так выглядит HEX-файл, открытый в Notepad++. В стандартном Блокноте так же, но без цвета.

А теперь рассмотрим более подробно, для чего может понадобиться открывать, а тем более изменять файлы с шестнадцатеричным содержимым. Кстати, если вы собираетесь делать это часто, то лучше скачайте и установите специальный HEX-редактор – их в Интернете довольно много. Некоторые из них подробнее рассматриваются далее.

Взлом игр и файлов

Популярная причина, по которой вы можете использовать шестнадцатеричный редактор, – взлом игр. Вы можете загрузить документ сохранения игры и изменить сумму денег, например, от 1000 до 1000000 долларов. В более поздних играх всё сделано намного сложнее. Многие современные игры используют либо сжатие, либо шифрование, что во много раз затрудняет декомпиляцию состояния сохранения или игры. Тем не менее, некоторые игры по-прежнему позволяют редактировать определённые переменные, например, Sonic Spinball. В дополнение к просмотру файлов игры, из сохранённого файла иногда можно извлечь другую важную информацию, к которой у вас иначе не было бы доступа. Это сильно зависит от типа файла и того, какую информацию вы ищете, но использование шестнадцатеричного редактора полезно для определения того, что именно находится в документе.

https://youtube.com/watch?v=iAvyYApU4AI

Отладка и редактирование

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

Хакерский редактор Hacker Viewer (Hiew) .

Для визуального восприятия шестнадцатеричного кода воспользуемся замечательным простым, но достаточно функциональным DOS редактором Hacker Viewer (Hiew). Вы найдёте его в папке D:\UTILS\HIEW\ (я надеюсь, что наш архив программ DOS-1.rar уже скачан и DOSBox установлен и запущен).

Запускаем HIEW (Hacker Viewer).

Инструкцию по пользованию Hiew для хакеров от Криса Касперского вы найдёте в папочке readme. Пользоваться редактором просто и удобно.

Откроем с помощью Hiew нашу программу PRG.COM (выбор файлов — F9). При помощи F4 выбираем режим отображения информации HEX (как вы уже знаете, шестнадцатеричный режим). Можете с помощью F4 или Enter по переключаться между режимами отображения.

Переключение режимов отображения в Hacker Viewer.

Обратите внимание на положение Decode (декодирование). Вам это ни о чём не говорит? Да, да, да в Hiew имеется встроенный дизассемблер и даже ассемблер! Можно внести изменения в ассемблерный код, не выходя из редактора и сохранить изменения.
Исполняемый файл останется рабочим — гениальная программа с поразительными возможностями для своего времени!. Подобное отображение HEX системы счисления вы увидите практически во всех отладочных программах и просмотрщиках файлов.
Перемещайте курсор с помощью клавиш стрелок на клавиатуре

Вверху вы заметите изменение цифры указателя (pointer)

Подобное отображение HEX системы счисления вы увидите практически во всех отладочных программах и просмотрщиках файлов.
Перемещайте курсор с помощью клавиш стрелок на клавиатуре. Вверху вы заметите изменение цифры указателя (pointer).

Наша первая программа в шестнадцатеричном виде.

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

Чем открыть файл в формате HEX

Файл, зашифрованный ранней версией программы кодирования BinHex (binary-to-hexadecimal). Используется для конвертации файлов в текстовый формат, который можно без повреждений посылать с помощью электронной почты. Обычно требует больше пространства, чем исходный файл.

Программа BinHex доступна только для Mac. Более новые версии программы сохраняют файлы BinHex с расширением .HQX, а не «.hex».

Чем открыть файл в формате HEX (BinHex Encoded File)

Формат файла hex, сокращённо от «шестнадцатеричный» или «base-16», является структурой необработанных данных, которой следуют все файлы, хранящиеся на вашем компьютере. Хотя буквально каждый документ хранится в этом формате, найти его на ПК практически невозможно. Хотя далеко не все знают, что возможность напрямую изменять необработанные биты и байты на ПК иногда может быть очень полезна.

Работа с файлами с расширением .HEX.

Hex-works.com – выполнение HEX редактирования

Сетевой HEX-редактор hex-works.com представлен бета-версией продукта, доступной онлайн. Его возможности предназначены для анализа и редактирования небольших двоичных файлов (к примеру, флеш-памяти микроконтроллеров, дампов EEPROM и других сподручных альтернатив). В сервисе имеется возможность открытия, редактирования, сравнения и сохранения файлов в различных табах.

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

Редактор Hex-works.com позволяет использовать цветовые схемы

Обработка «Распознавание штрихкода с помощью утилиты Zbar» для Документооборот ред. 2 Промо

В связи с тем, что стандартный функционал программы «Документооборот» ред. 2.1 дает возможность распознавания штрихкодов только форма EAN-13, данная обработка — альтернативный способ для распознавания штрихкода в программе 1С: Документооборот ред. 2 с помощью утилиты Zbar, которая распознает в том числе и в формате Code 128 (один из стандартных штрихкодов кодирования документов, например, «Управление торговлей» ред. 11), а также с возможностью поэтапно проследить все действия от распознавания до прикрепления к документу или простой загрузки в каталоги файлов в базе 1С.

5 стартмани

Бесплатный онлайн редактор FileInsight

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

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

Программа просто создана для новичков, только начавших осваивать и применять в своей практической деятельности возможности HEX редактирования. Специально для них, в нижнем углу экрана, при работе с утилитой, будут активироваться окна, содержащие алгоритм дальнейших действий.

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

К наиболее серьезным недостаткам утилиты следует отнести невозможность обработки больших, превышающих 500 Мб файлов.

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

Вычисления

Квантование

Вы помните, что матрица проходит этап квантования? Элементы матрицы нужно почленно перемножить с элементами матрицы квантования. Осталось выбрать нужную. Сначала мы просканировали первый канал. Он использует матрицу квантования 0 (у нас она первая из двух). Итак, после перемножения получаем 4 матрицы Y-канала:

… и по матрице для Cb и Cr.

Обратное дискретно-косинусное преобразование

Формула не должна доставить сложностей. Svu — наша полученная матрица коэффициентов. u — столбец, v — строка. Cx = 1/√2 для x = 0, а в остальных случаях = 1. syx — непосредственно значения каналов.

Приведу результат вычисления только первой матрицы канала Y (после обязательного округления):

и для Cb Cr:

Ко всем полученным значениям нужно прибавить по 128, а затем ограничить их диапазон от 0 до 255:

Например: 138 → 266 → 255, 92 → 220 → 220 и т. д.

YCbCr в RGB

4 матрицы Y, и по одной Cb и Cr, так как мы прореживали каналы и 4 пикселям Y соответствует по одному Cb и Cr. Поэтому вычислять так: YCbCrToRGB(Y, Cb[y/2, x/2], Cr[y/2, x/2]):

Вот полученные таблицы для каналов R, G, B для левого верхнего квадрата 8×8 нашего примера:

Использование [ править | править код ]

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

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

Поскольку Hex-редактор является достаточно универсальным инструментом, описать все варианты его применения не представляется возможным.

Немного теории

Очень кратко:

  • Обычно изображение преобразуется из цветового пространства RGB в YCbCr.
  • Часто каналы Cb и Cr прореживают, то есть блоку пикселей присваивается усредненное значение. Например, после прореживания в 2 раза по вертикали и горизонтали, пиксели будут иметь такое соответствие:
  • Затем значения каналов разбиваются на блоки 8×8 (все видели эти квадратики на слишком сжатом изображении).
  • Каждый блок подвергается дискретно-косинусному преобразованию (ДКП), являющемся разновидностью дискретного преобразования Фурье. Получим матрицу коэффициетов 8×8. Причем левый верхний коэффициент называется DC-коффициентом (он самый важный и является усредненным значением всех значений), а оставшиеся 63 — AC-коэффициентами.
  • Получившиеся коэффициенты квантуются, т.е. каждый умножается на коэффициент матрицы квантования (каждый кодировщик обычно использует свою матрицу квантования).
  • Затем они кодируются кодами Хаффмана.

Закодированные данные располагаются поочередно, небольшими частями:

Каждый блок Yij, Cbij, Crij — это матрица коэффициентов ДКП (так же 8×8), закодированная кодами Хаффмана. В файле они располагаются в таком порядке: Y00Y10Y01Y11Cb00Cr00Y20

Как открыть файл HEX

Далеко не все являются программистами, и иногда открыть файл с расширением HEX может понадобиться обычному человеку, чтобы посмотреть в нём некую информацию. На самом деле для такой простой задачи вполне достаточно обычного Блокнота – стандартного приложения, которое имеется в любой системе Windows. Ведь этот файл, по сути, является текстовым, просто в нём записана специфическая информация, но обычными символами.

Для этого достаточно кликнуть на файле правой кнопкой мыши, выбрать в меню пункт «Открыть» или «Открыть с помощью», затем «Выбрать из списка установленных программ», а далее просто выбрать стандартный Блокнот. Снимите галочку с пункта «Использовать выбранную программу для всех файлов этого типа» — вдруг вы его потом будете открывать другой программой. Можно просто открыть Блокнот, а файл в него перетащить, и он откроется.

Гораздо удобнее для открытия таких файлов подходит другая версия Блокнота – Notepad++. Скачать можно по этой ссылке. Эта программа также есть у многих, так как более удобна. Но она может к тому же распознавать многие языки программирования и файлы HEX в ней выглядят гораздо удобнее, так как есть выделение цветом. Notepad++ представляет собой как бы примитивный HEX-редактор, и этим можно пользоваться совершенно свободно.

Так выглядит HEX-файл, открытый в Notepad++. В стандартном Блокноте так же, но без цвета.

А теперь рассмотрим более подробно, для чего может понадобиться открывать, а тем более изменять файлы с шестнадцатеричным содержимым. Кстати, если вы собираетесь делать это часто, то лучше скачайте и установите специальный HEX-редактор – их в Интернете довольно много. Некоторые из них подробнее рассматриваются далее.

Взлом игр и файлов

Популярная причина, по которой вы можете использовать шестнадацтеричный редактор, – взлом игр. Вы можете загрузить документ сохранения игры и изменить сумму денег, например, от 1000 до 1000000 долларов. В более поздних играх всё сделано намного сложнее. Многие современные игры используют либо сжатие, либо шифрование, что во много раз затрудняет декомпиляцию состояния сохранения или игры. Тем не менее, некоторые игры по-прежнему позволяют редактировать определённые переменные, например, Sonic Spinball. В дополнение к просмотру файлов игры, из сохранённого файла иногда можно извлечь другую важную информацию, к которой у вас иначе не было бы доступа. Это сильно зависит от типа файла и того, какую информацию вы ищете, но использование шестнадцатеричного редактора полезно для определения того, что именно находится в документе.

Отладка и редактирование

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

Простейшее редактирование

Самая простая задача при редактировании двоичных файлов: заменить значение байта по смещению XXXXХХХХ значением YY. Для этого после открытия файла в редакторе необходимо нажатием Enter переключить вид в режим дампа. В рабочей области в левой колонке указано значение смещения, в центральной части — значения байт в шестнадцатеричном виде, справа — те же значения в виде символов ASCII.

Для установки курсора по требуемому смещению требуется нажать клавишу F5 (или щелкнуть в заголовке мышью по ряду цифр, выделенному красным цветом), ввести значение смещения и нажать Enter. Если режим редактирования не был включен, то следует нажать Alt-F3 (при этом в панели клавиш появится надпись «Edit ON»). После этого можно вносить изменения в файл, набирая значения байт в шестнадцатеричном виде или, переместив курсор в правую колонку нажатием TAB, в виде символов. Курсор позиционируется с помощью обычных клавиш управления или мышью.

Для отмены сделанных изменений cледует установить курсор в месте ошибки и несколько раз нажать F3. Сохранить изменения можно при выходе, нажав W, или принудительно, нажав Alt-F9.

Управляемые формы. Итоги в динамических списках

Многие задаются вопросами расчета итогов динамических списков в управляемых формах. Здесь мы не будем претендовать на академичность, оставим споры, что мол это не нужно, что это все равно что считать бородатых мужиков на движущемся эскалаторе, что это дополнительная нагрузка. Все это понимают, Кто не понимает — поймет на практике. Поэтому основываемся на… «снегопад, снегопад, если женщина просит…» или «..а мня плевать — мне очень хочется..»
Я попытался решить практические проблемы при расчете и выводе итогов.
В приложении примеры расчета итогов в иерархическом справочнике и журнале документов.

1 стартмани

Выводы

Упомянутые выше HEX редакторы Linux, достаточно часто используются владельцами компьютеров, работающих под этой операционной системой. Некоторые из них более популярны среди специалистов — программистов и разработчиков. Другие приходятся по вкусу тем, кто пользуется подобным ПО лишь от случая к случаю. Тем не менее, можно сказать, что все они достаточно гибкие и функциональные для того, чтобы удовлетворить потребности всех пользователей.

Нет похожих записей

Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.