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

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

Діючи аналогічно, я вношу такі зміни:

  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».

Ссылка на основную публикацию