В данной статье будет рассказано о работе в бесплатном hex-редакторе Free Hex Editor Neo, на примере правки файла BkEnd.dll из поставки 1С:Предприятие 7.7 для корректной работы этой системы с Microsoft SQL Server 2008 R2.
0. Оглавление
1. Немного о hex-редакторах и файлах
Как известно, любой файл, хранясь на жестком диске компьютера, представляет собой последовательность машинных слов — байтов. Байт, в свою очередь, состоит из 8 битов, каждый из которых может принимать значение «0» или «1» , а это означает, что один байт может принимать 28=256 значений в диапазоне от 0 до 255. Число 25610, записанное в шестнадцатеричной системе, является круглым трёхзначным числом — 10016, т. е. для представления любого числа из диапазона 0—255 потребуется не более 2 разрядов. А это значит, что значение каждого байта очень удобно записать двузначным числом в шестнадцатеричной системе счисления.
Hex-редактор (англ. hex-editor) показывает нам файл, так, как его «видит» машина, а именно, последовательностью байтов. Например, открыв файл в редакторе, мы увидим матрицу, состоящую из 16 колонок и числа строк зависящего от размера файла. Каждое значение матрицы соответствует одному байту, записанному двузначным шестнадцатеричным числом. Изменяя значение нужного байта, мы можем, соответственно, изменить сам файл.
Кроме того, рядом с таблицей можем увидеть:
- Слева от матрицы отображается линейка из чисел: каждой строчке соответствует число, означающее адрес/смещение первого байта этой строчки. Шаг адресов при этом равен количеству колонок.
- Сверху от матрицы отображается другая линейка: над каждой колонкой отображается смещение байта, стоящего в этой колонке, относительно первого байта соответствующей строчки. Сумма числа, соответствующего
i
-той строке, и числа, соответствующегоj
-той колонке является адресом/смещением байта(i;j)
, стоящего на пересечении взятой строки и взятого столбца. - Справа от матрицы отображаются те же данные, но в другой интерпретации. Чаще всего используется альтернативное отображение данных как текста в кодировке ASCII , при этом байты, значения которых соответствуют непечатным символам, отображаются как точки (
·
). Редактировать значения можно и в этой области.
Подробнее о Hex-редакторах можно прочитать здесь.
2. Установка Free Hex Editor Neo
Скачиваем Free Hex Editor Neo с официального сайта. Программа бесплатна, на момент написания статьи последней была версия 5.14. Устанавливаем, следуя инструкциям инсталлятора, не меняя настроек по умолчанию. При первом запуске программа предложит выбрать режим интерфейса. Выбираем «Novice user» , этого более чем достаточно.
3. Работа с файлом hex-редакторе
Теперь откроем файл, который нам необходимо «подправить» выбрав «File» — «Open» — «Open File» в меню Free Hex Editor Neo. В моем случае это файл BkEnd.dll, находящийся в папке с установленной 1С:Предприятие 7.7 (По умолчанию «C:\Program Files\1Cv77\BIN» ) для статьи Установка 1С:Предприятие 7.7 на Microsoft SQL Server 2008 R2.
Например, мне нужно в байт со смещением 000d9cca записать значение eb. Для этого я нахожу строку «000d9cco» и столбец «0a», кликаю два раза по нужной ячейке и забиваю новое значение.
Действуя аналогично, я вношу следующие изменения:
- Для исправления ошибки «Требуется MS SQL Server 6.5 + Service Pack 5a или более старшая версия!» изменяем поля:
по смещению 000d9cca значение 83 меняем на eb
по смещению 000d9ccb значение e8 меняем на 15
по смещению 000db130 значение 83 меняем на eb
по смещению 000db131 значение e8 меняем на 10 - Для исправления ошибки «Порядок сортировки, установленный для базы, отличается от системного!»:
по смещению 0018a79d значение 75 меняем на eb - Для исправления ошибки «Неправильный синтаксис около ключевого слова «TRANSACTION»
Фразу DUMP TRANSACTION %s WITH TRUNCATE_ONLY , которая находится по смещению 002856B0 заменяем на фразу ALTER DATABASE %s SET RECOVERY SIMPLE - Для исправления ошибки «База данных не может быть открыта в однопользовательском режиме», изменяем поля:
по смещению 0028549c значение 64 меняем на 6b
по смещению 0028549d значение 62 меняем на 70
После того, как все изменения сделаны, сохраним файл, нажав «File» — «Save» .
как мне сменить приветственное сообщение с помощью программы HEX-редактор Free Hex Editor Neo?
0030004a002f00520067004e0043002b0030004c0054005100760074004300370030004c0062005100740064004300390030004c006a00510074005300340075004c0067003d003d Как расшифровывается?
0J/RgNC+0LTQvtC70LbQtdC90LjQ
Это base64