Работа в Hex-редакторе Free Hex Editor Neo, на примере патча файла BkEnd.dll для работы 1С:Предприятие 7.7 с Microsoft SQL Server 2008 R2

1C_V7_logoВ данной статье будет рассказано о работе в бесплатном hex-редакторе Free Hex Editor Neo, на примере правки файла BkEnd.dll из поставки 1С:Предприятие 7.7 для корректной работы этой системы с Microsoft SQL Server 2008 R2.

0. Оглавление

  1. Немного о hex-редакторах и файлах
  2. Установка Free Hex Editor Neo
  3. Работа с файлом hex-редакторе

1. Немного о hex-редакторах и файлах

Как известно, любой файл, хранясь на жестком диске компьютера, представляет собой последовательность машинных слов — байтов. Байт, в свою очередь, состоит из 8 битов, каждый из которых может принимать значение «0» или «1» ,  а это означает, что один байт может принимать 28=256 значений в диапазоне от 0 до 255. Число 25610, записанное в шестнадцатеричной системе, является круглым трёхзначным числом — 10016, т. е.  для представления любого числа из диапазона 0—255 потребуется не более 2 разрядов. А это значит, что значение каждого байта очень удобно записать двузначным числом в шестнадцатеричной системе счисления.

Hex-редактор (англ. hex-editor) показывает нам файл, так, как его «видит» машина, а именно, последовательностью байтов. Например, открыв файл в редакторе, мы увидим матрицу, состоящую из 16 колонок и числа строк зависящего от размера файла. Каждое значение матрицы соответствует одному байту, записанному двузначным шестнадцатеричным числом. Изменяя значение нужного байта, мы можем, соответственно, изменить сам файл.

Кроме того, рядом с таблицей можем увидеть:

  • Слева от матрицы отображается линейка из чисел: каждой строчке соответствует число, означающее адрес/смещение первого байта этой строчки. Шаг адресов при этом равен количеству колонок.
  • Сверху от матрицы отображается другая линейка: над каждой колонкой отображается смещение байта, стоящего в этой колонке, относительно первого байта соответствующей строчки. Сумма числа, соответствующего i-той строке, и числа, соответствующего j-той колонке является адресом/смещением байта (i;j), стоящего на пересечении взятой строки и взятого столбца.
  • Справа от матрицы отображаются те же данные, но в другой интерпретации. Чаще всего используется альтернативное отображение данных как текста в кодировке ASCII , при этом байты, значения которых соответствуют непечатным символам, отображаются как точки (·). Редактировать значения можно и в этой области.

Patch_BkEnd_02

Подробнее о Hex-редакторах можно прочитать здесь.

2. Установка Free Hex Editor Neo

Скачиваем Free Hex Editor Neo с официального сайта. Программа бесплатна, на момент написания статьи последней была версия 5.14. Устанавливаем, следуя инструкциям инсталлятора, не меняя настроек по умолчанию. При первом запуске программа предложит выбрать режим интерфейса. Выбираем «Novice user» , этого более чем достаточно.

Patch_BkEnd_01

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», кликаю два раза по нужной ячейке и забиваю новое значение.

Patch_BkEnd_03

Действуя аналогично, я вношу следующие изменения:

  1. Для исправления ошибки «Требуется MS SQL Server 6.5 + Service Pack 5a или более старшая версия!» изменяем поля:
    по смещению 000d9cca значение 83 меняем на eb
    по смещению 000d9ccb значение e8 меняем на 15
    по смещению 000db130 значение 83 меняем на eb
    по смещению 000db131 значение e8 меняем на 10
  2. Для исправления ошибки «Порядок сортировки, установленный для базы, отличается от системного!»:
    по смещению 0018a79d значение 75 меняем на eb
  3. Для исправления ошибки «Неправильный синтаксис около ключевого слова «TRANSACTION»
    Фразу DUMP TRANSACTION %s WITH TRUNCATE_ONLY , которая находится по смещению 002856B0 заменяем на фразу ALTER DATABASE %s SET RECOVERY SIMPLE
  4. Для исправления ошибки «База данных не может быть открыта в однопользовательском режиме», изменяем поля:
    по смещению 0028549c значение 64 меняем на 6b
    по смещению 0028549d значение 62 меняем на 70

После того, как все изменения сделаны, сохраним файл, нажав «File» — «Save» .

Помогла ли Вам данная статья?
Да, спасибо, все получилось.
Немного помогла.
Совсем не помогла.
Не то, что я искал(а).
Смотреть результаты
Запись опубликована в рубрике 1С 7, Софт сисадмину с метками , , , . Добавьте в закладки постоянную ссылку.


4 Responses to Работа в Hex-редакторе Free Hex Editor Neo, на примере патча файла BkEnd.dll для работы 1С:Предприятие 7.7 с Microsoft SQL Server 2008 R2

  1. Петр говорит:

    как мне сменить приветственное сообщение с помощью программы HEX-редактор Free Hex Editor Neo?

  2. Аноним говорит:

    0030004a002f00520067004e0043002b0030004c0054005100760074004300370030004c0062005100740064004300390030004c006a00510074005300340075004c0067003d003d Как расшифровывается?

Добавить комментарий для Петр Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *