как редактировать hex код
BlackStar Localizations Studio
Меню навигации
Пользовательские ссылки
Объявление
Информация о пользователе
Статья по работе с Hex для начинающих
Сообщений 1 страница 30 из 62
Поделиться12007-08-17 21:21:38
Статья по работе с Hex для начинающих
Итак начнём:
Например переведём слово «Applications» в программе на снимке ниже.
Лишние знаки:«ns»
Забиваем нулями:
Получаем результат:
Примечание:
Нули принимают не все программы, в этом случае забиваем лишние знаки пробелами. И наоборот, некоторые программы не принимают пробелы, на их месте отображаются вертикальные чёрточки.
4. Удлинение слова:
Переведём на примере слова «Explorer». Это слово переводится как «Проводник», как видим в нём на один знак больше, поэтому нам надо его удлинить. После слова «Explorer» идут нулевые значения, на их место можно вводить дополнительные знаки, главное чтобы между последним знаком и кодом программы (разделитель и т.д.) было не менее одного нуля.
Примечание:
В некоторых программах, при удлинении слова, даже если вы вводите дополнительные буквы на нулевые значения, лишние буквы просто не отображаются. То есть фиксированный размер элемента. В нашем случае нам попалась как раз такая программа результат видим ниже.
И в дополнение:
Не закрывайте WinHex, пока не убедитесь что всё нормально, просто сворачивайте его окно и проверяйте файл, иначе после закрытия редактора вам не удастся отменить изменения и придётся ковыряться вручную, (поиск, редактирование).
Руководство по hex-редакторам
Содержание
Выбор редактора
Самым первым обычно возникает вопрос: какой редактор из всего многообразия существующих выбрать. Для изменения нескольких байт можно cмело использовать любой, но при частом или длительном использовании программа должна поддерживать все требуемые функции, быть удобной, быстрой и надежной. Исходя из этого можно рекомендовать к использованию, например, QView. Кроме перечисленных выше cвойств, он обладает следующими:
Открыть файл в редакторе можно передав его имя в качестве параметра командной строки: qview.exe (в Windows длинные имена файлов необходимо заключать в двойные кавычки) либо через файловую панель, которая вызывается нажатием Alt-F6 или щелчком мыши по имени файла в заголовке. Для выхода из редактора следует нажать Escape.
Простейшее редактирование
Для установки курсора по требуемому смещению требуется нажать клавишу F5 (или щелкнуть в заголовке мышью по ряду цифр, выделенному красным цветом), ввести значение смещения и нажать Enter. Если режим редактирования не был включен, то следует нажать Alt-F3 (при этом в панели клавиш появится надпись «Edit ON»). После этого можно вносить изменения в файл, набирая значения байт в шестнадцатеричном виде или, переместив курсор в правую колонку нажатием TAB, в виде символов. Курсор позиционируется с помощью обычных клавиш управления или мышью.
Для отмены сделанных изменений cледует установить курсор в месте ошибки и несколько раз нажать F3. Сохранить изменения можно при выходе, нажав W, или принудительно, нажав Alt-F9.
Поиск и замена
Создание и использование crack-файлов
Crack-файлы являются самым распространенным способом записи изменений в двоичных файлах. В стандартном формате они состоят из трех колонок: смещения относительно начала редактируемого файла, значения байта до изменения и его значения после изменения:
Иногда в начало добавляется комментарий, начинающийся с символа ‘#’.
В QView для сохранения внесенных в файл изменений в виде crack-файла необходимо нажать Shift-F9, ввести в открывшемся окне имя файла и нажать Enter. Для внесения изменений из готового crack-файла cледует нажать Ctrl-F8, пропустить открывшемся окно, нажав Enter (в нем можно задать дополнительное смещение, что используется редко), в следующем окне ввести имя crack-файла и снова нажать Enter. Важное замечание: сразу после этого изменения будут записаны в файл и он будет автоматически сохранен. Переключать программу в режим редактирования не обязательно. Если при внесении изменений выводится сообщение об ошибке, значит, либо формат файла не соответствует стандартному, либо патч не подходит к файлу (байты «до изменения» не совпадают).
Работа с блоками
Иногда возникает потребность сохранить часть двоичного файла, например, скопировать из него текстовые строки. Для работы с блоками редактор должен находиться в режиме дампа или дизассемблера. Для выделения требуемого блока следует установить курсор в его начало, нажать клавишу Insert, затем установить курсор в конец блока и снова нажать Insert. При этом блок выделяется желтым цветом.
При вставке блока из файла следует аналогичным образом выделить блок, нажать Shift-F3 и в открывшемся окне указать имя файла-источника. При этом размер выделенного блока должен быть равен или меньше размера файла. Альтернативный вариант: установить курсор в позицию, начиная с которой должна быть произведена вставка, нажать Shift-F5 и в открывшемся окне указать имя файла-источника, смещение и длину блока внутри него, откуда требуется взять данные.
Чтобы удалить блок следует отметить его и нажать Shift-F4 или установить курсор в нужную позицию, нажать Ctrl-F5 и указать число удаляемых байт. Для вставки заполненного нулями блока в текущую позицию cледует нажать Ctrl-F4 и указать размер блока. Удалить файла до конца начиная с текущей позиции можно нажав Alt-F10.
При вставке блока, как и в случае с crack-Файлами, изменения сохраняются cразу после внесения.
Ассемблирование и ассемблерный поиск
При необходимости можно, как и в режиме дампа, изменять непосредственно байты во второй колонке. Разрядность кода 16/32 переключается нажатием F2. Отменить изменения можно установив курсор на строку с ошибкой и несколько раз нажав F3.
Для поиска конкретных ассемблерных инструкций следует нажать F6, ввести инструкцию и нажать Enter. Поиск следующего совпадения производится нажатием Shift-F6. Для поиска по шаблону можно использовать следующие специальные символы:
Дополнительные функции
Из полезных дополнительных функций QView можно отметить наличие встроенного калькулятора, который вызывается при нажатии Ctrl-F6. Он поддерживает основные арифметические и логические поразрядные операции, скобки для указания приоритета операций, ввод аргументов и вывод результата в системах счисления с основанием 2, 8, 10, 16.
Просмотреть информацию из заголовка исполнимого файла можно нажав F8 в режиме дампа или дизассемблера. Поддерживаются файлы форматов MZ, PE, NE, LX, LE.
Как редактировать шестнадцатеричные коды в Hex Editor Neo
Далеко не все файлы можно редактировать в текстовых редакторах. Например, при открытии картинки в Word мы увидим только набор случайных символов. А попытка сохранить его приведёт к потере данных. Всё дело в том, что для изменения двоичных файлов необходимо использование специальных редакторов. Hex Editor Neo предоставляет все необходимые функции для редактирования файла в шестнадцатеричном режиме.
К сожалению, спокойную работу в Hex Editor Neo периодически нарушает всплывающее рекламное сообщение с предложением использования платной версии программы. Появляется оно при попытке выделения нескольких символов. Но также быстро его можно закрыть и продолжать работу.
В первую очередь открываем любой файл и видим его шестнадцатеричное представление. В правой части окна программы отображается символьное представление данных в файле.
Слева и сверху от области редактирования указаны адреса, позволяющие быстро определить адрес смещения относительно начала файла.
Для редактирования данных в файле просто ставим курсор на байт в шестнадцатеричном блоке или на символ в текстовом блоке Hex Editor Neo и вводим текст. Чтобы изменить шестнадцатеричный код, необходимо знать, какой код соответствует определённому символу. Для этого достаточно найти таблицу ASCII-кодов. Изменённые байты отображаются красным цветом.
Редактор Hex Editor Neo поддерживает стандартные функции копирования, вставки, вырезания, удаления. Есть в программе режим вставки (Insert Mode), когда при вводе символов все остальные данных отодвигаются относительно текущей позиции. Кнопка [Modify Bits] открывает окно побитного редактирования байта. Здесь можно просто включать/выключать кнопки, соответствующие каждому из восьми битов, присваивая, соответственно, нулевое или единичное значение биту. Кроме того, в битовом редакторе доступны такие операции, как быстрое обнуление или «объединичивание» всех битов, инвертирование битов. Можно изменить байты и вручную, просто введя необходимую последовательность единиц и нулей. А три режима позволяют увидеть шестнадцатеричное, десятичное или восьмеричное представление редактируемого байта.
Функция Fill редактора Hex Editor Neo позволяет заполнить выделенные байты указанными данными. Просто выделяем несколько байтов, жмём кнопку [Fill] и вводим символ, который будет автоматически подставлен. Здесь же есть список типов данных, выбираемых в соответствии с вводимой информацией. Например, если мы хотим заменить выбранные байты на символ «а», выбираем тип String.
Полезна функция Go to offset, помогающая быстро перейти на указанный адрес (байт) в файле. Отметим также возможность изменения размера файла (Change File Size). Можно указать новый размер файла как в шестнадцатеричном представлении, так и в более привычном десятеричном (байты), а также в Килобайтах, Мегабайтах и Гигабайтах. В поле Resulting file size при этом отображается итоговый размер файла. При уменьшении размера лишние байты просто отбрасываются, а при увеличении заполняются нулями.
Мы рассмотрели основные функции Hex Editor Neo. Часть команд в этом редакторе не работает и при попытке их использования открывается уже упомянутое рекламное сообщение. Тем не менее, рассмотренных возможностей программы вполне достаточно для редактирования шестнадцатеричных кодов в файлах.
Характеристики:
Язык интерфейса: английский
ОС: Windows XP, Vista
Размер файла: 8,4 Мб
Лицензия: бесплатная
Что такое HEX редакторы и зачем они нужны
Сейчас будет большой материал на тему того, из чего состоят данные и как их можно редактировать. Многие знают, что любой файл на компьютере (картинка, текстовый или мультимедийный) представляет собой двоичный код – нули и единицы. Для редактирования таких файлов используются HEX-редакторы – приложение, редактирующее данные, состоящие из байтового кода. Байты в редакторе представлены в виде шестнадцатеричной системы.
Расширение файла
Проблема заключается в огромном количестве типов файлов и поначалу не ясно, каким образом операционная система определяет текстовые, мультимедийные или архивные и прочие типы данных. Как известно, определение файла системой осуществляется с помощью расширения, добавляемого после названия, например, «.exe», «.txt» и другие.
Настройки в ОС гибкие, а значит расширение любого файла можно удалить, но тогда операционная система не сможет открыть его, она не поймет, с помощью какой программы его запустить. При этом логическая структура объекта не изменится. На изображении видно текстовый файл, а рядом с ним тот же самое, но без расширения и иконка у него белая.
Если объект без расширения остается тем же самым файлом с логическим набором символом, значит расширение не определяет его тип, но тогда что? Есть такое понятие, как формат – это и определяет тип, также это есть спецификация структуры данных. Расширение же совершенно другой термин. А что делать, если пользователю изначально попался файл без расширения, но его срочно нужно открыть, а чем – неизвестно?
Дескрипторы
Все файлы можно грубо говоря разделить на две составляющие – заголовок, где содержатся данные идентификации объекта, различные метаданные. Вторая составляющая – «тело» объекта, с помощью которого определяется тип объекта и части заголовка, имеющего название дескриптора. Два популярных дескриптора – ASCII и HEX. Второй вариант анализируется при помощи редакторов, о которых было сказано в начале.
Первый метод ASCII определяется с помощью текстового редактора, например, Notepad++, правда, стоит учесть один момент – некоторые наборы байтов не удастся преобразовать в формат ASCII, а значит рекомендуется применять HEX-редакторы. Запустив любой файлик с помощью такой утилиты, в окне отобразится вид матрицы с последовательностью байтов, где один байт содержится в одной из ячеек. Сведения о дескрипторе обычно находятся в первых 3-х ячейках, редко в большем количестве. Ячейки считаются по горизонтали. Данные, отображённые в ячейках представлены в виде шестнадцатеричном коде.
Расшифровка дескриптора
Чтобы понять, что за данные там находятся, нужно код расшифровать. Для этого понадобится специальный сервис, определяющий форматы файлов, например, open-file.ru. Но есть и другие ресурсы, которые легко найти в интернете. После загрузки файла на сайт произойдет анализ данных, а затем вывод результата. Ниже появится таблица с типом, форматом и описанием файла.
То, что мы разобрали выше – использование HEX-редакторов. Теперь разберемся с кодом ASCII. Данный код можно проанализировать при помощи того же open-file.ru. Другими словами, оба кода проверяются на ресурсе и ничего по сути не нужно вводить.
Иногда формат определить не так просто. Это касается ASCII-заголовков. Дело в том, что первые несколько символов могут иметь отношение к расширениям файла, а может и к нескольким форматам.
Конечно, есть вариант определения формата. Для анализа будет использоваться несколько строк, а не одна. Тогда какой-то из элементов, находящийся там, по любому будет указывать на тип объекта.
Что еще можно делать с помощью HEX-редактора
Помимо того, что HEX-редакторы помогают проанализировать любой файл, возможно:
К примеру, утилиты подобного типа используют в разработке ПО. Когда необходимо внести данные уже после компиляции программы, но перекомпилировать ее не хочется. Любой код программы можно изменить с помощью HEX-редактора. Конечно, это нужно уметь делать, находить нужные данные. Таким образом, добиваются исправления ошибок в коде, либо используют для взлома и читерства. Это значит, применение HEX-редакторов очень широкое.
Какие HEX-редакторы использовать
Существует очень много программ для редактирования данных, и вот они представлены ниже:
Free Hex Editor Neo
Популярная утилита для Windows. С помощью неё пользователю не составит открыть любой тип файла и изменить его. Если что-то отредактировано не так, в утилите есть история изменений и всегда можно вернутся к изначальному состоянию.
Инструмент работает очень быстро, при этом не много весит, а сама способна работать с файлами большого объема. Интерфейс простой и подходит для новичков, присутствует русский язык.
WinHex
Данный редактор можно использовать в демо-версии некоторое время, а потом необходимо приобрести. Инструмент универсальный, где обнаружено много интересных опций.
Есть возможность работать не только с файлами, но и с жёсткими дисками, флеш-носителями, оптическим дисками и даже дискетами. Поддерживаются все файловые системы Windows. Поддерживает функции клонирования разделов и полного удаления данных без возможности восстановления
Если вы новичок, то этой программы вам хватит, тем более в разделе Help есть опция переключения на русскоязычный интерфейс.
HexCmp
Утилита 2 в 1, так как имеет функцию сравнения файлов и встроенный HEX-редактор. Иногда может понадобится сравнения данных файлов, для определения отличий и сходств, и анализа структуры объектов различных форматов.
При отличии в двух файлов области на матрице будут окрашены в какой-либо цвет, а само сравнение происходит в считанные секунды. Правда, для анализа подойдут файлы не более 4 GB.
Сама утилита имеет возможности изменения интерфейса. Что значит, пользователь может настроить его под себя. Работа будет происходить быстрее.
HxD Hex Editor
Эта штука поставляется бесплатно, но она способна работать с объемными данными любых форматов и кодировок. Есть возможность изменения оперативной памяти и жёсткого диска.
Программа сочетает в себе вывод шестнадцатеричного кода и текстового ASCII. Интерфейс для англоязычного интерфейса вполне прост, поэтому работа с ним не составит труда, особенно, если вы уже работали в подобных редакторах.
Hex Workshop
Если какой-то файл не открылся в одном редакторе, значит откроется в этом. Поэтому я и привел здесь список из нескольких утилит. Указанный инструмент отвечает за открытие бинарных файлов. Настроек много, а системные требования доступны для любого компьютера.
Работа в этом редакторе проста, как при печати в Word. Есть опции сравнения файлов, их контрольных сумм и экспорт анализа в различные форматы, например, html.
Если необходимо перевести один код в другую систему счисления, то в Hex Workshop присутствует конвертер. Программка условно-бесплатная, что можно считать одним из недостатков.
Вот вы узнали, что такое HEX-редакторы и зачем они используются. В будущем постараюсь написать статьи по работе с ними, например, когда необходимо отредактировать какой-то файл.
Работа в Hex-редакторе Free Hex Editor Neo, на примере патча файла BkEnd.dll для работы 1С:Предприятие 7.7 с Microsoft SQL Server 2008 R2
В данной статье будет рассказано о работе в бесплатном hex-редакторе Free Hex Editor Neo, на примере правки файла BkEnd.dll из поставки 1С:Предприятие 7.7 для корректной работы этой системы с Microsoft SQL Server 2008 R2.
0. Оглавление
1. Немного о hex-редакторах и файлах
Hex-редактор (англ. hex-editor) показывает нам файл, так, как его «видит» машина, а именно, последовательностью байтов. Например, открыв файл в редакторе, мы увидим матрицу, состоящую из 16 колонок и числа строк зависящего от размера файла. Каждое значение матрицы соответствует одному байту, записанному двузначным шестнадцатеричным числом. Изменяя значение нужного байта, мы можем, соответственно, изменить сам файл.
Кроме того, рядом с таблицей можем увидеть:
Подробнее о Hex-редакторах можно прочитать здесь.
2. Установка Free Hex Editor Neo
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С для облегчения их дальнейшей поддержки и обновления. В видео использованы материалы…
Официально, платформа 1С:Предприятие 7.7 работает только с MS SQL Server 2000. Но с помощью небольших манипуляций можно организовать стабильную работу и с последней, на момент написания статьи, версий Microsoft SQL…
Небольшая зарисовка на тему, какие были бы сливные трубы, если бы их делали 1С-ники.