Сейчас будет большой материал на тему того, из чего состоят данные и как их можно редактировать. Многие знают, что любой файл на компьютере (картинка, текстовый или мультимедийный) представляет собой двоичный код – нули и единицы. Для редактирования таких файлов используются 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-редакторы и зачем они используются. В будущем постараюсь написать статьи по работе с ними, например, когда необходимо отредактировать какой-то файл.
$ echo 1234567890ABCDEF > test.bin
Теперь посмотрим, что записалось внутрь файла:
$ hexdump -C test.bin
00000000 31 32 33 34 35 36 37 38 39 30 41 42 43 44 45 46 |1234567890ABCDEF|
00000010 0a |.|
00000011
$
Здесь три колонки: первая — смещения внутри файла, вторая — шестнадцатеричные коды символов, третья — сами символы (обычно непечатаемые символы в третьей колонке заменяются точками) .
Доброго всем дня.
Многие почему-то считают, что работа с hex-редакторами — это удел профессионалов и начинающим пользователям соваться в них не следует. Но, на мой взгляд, если иметь хотя бы базовые навыки работы с ПК, и представлять за чем вам нужен hex-редактор — то почему нет?!
С помощью программы подобного рода можно изменить любой файл, вне зависимости от его типа (многие руководства и гайды содержат в себе информацию по изменению того или иного файла с помощью hex-редактора)! Правда, пользователю необходимо иметь хотя бы основное понятие о шестнадцатеричной системе (данные в hex-редакторе представляются именно в ней). Впрочем, базовые знания по ней дают на уроках информатике в школе, и наверное, многие слышали и имеют представление о ней (поэтому ее комментировать в этой статье я не стану). Итак, приведу лучшие hex-редакторы для начинающих (на мой скромный взгляд).
1) Free Hex Editor Neo
Один из самых простых и распространенных редакторов шестнадцатеричных, десятичных и бинарных файлов под ОС Windows. Программа позволяет открыть любой тип файлов, произвести изменения (история изменений сохраняется), удобно выделять и редактировать файл, производить отладку и вести анализ.
Так же стоит отметить и весьма хороший уровень производительности вкупе с низкими системными требованиями к машине (например, программа позволяет открывать и редактировать довольно большие файлы, в то время как другие редакторы просто зависают и отказываются работать).
Кроме всего прочего, программа поддерживает русский язык, имеет продуманный и интуитивно-понятный интерфейс. Даже начинающий пользователь сможет разобраться и начать работать с утилитой. В общем, рекомендую всем, кто начинает свое знакомство с hex-редакторами.
2) WinHex
Этот редактор, к сожалению, условно-бесплатен, зато он — один из самых универсальных, поддерживает кучу разнообразных опций и возможностей (часть из которых сложно найти у конкурентов).
В режиме редактора дисков позволяет работать с: HDD, дискетками, флешками, DVD, ZIP-дисками и пр. Поддерживает файловые системы: NTFS, FAT16, FAT32, CDFS.
Не могу не отметить удобные инструменты для анализа: кроме основного окна, можно подключить дополнительные с различными калькуляторами, инструментами для поиска и анализирования структуры файла. В общем, подойдет как новичкам, так и опытным пользователям. Программа поддерживает русский язык ( выбрать следующее меню: Help / Setup / Russian ).
WinHex, кроме своих самых обычных функций (которые поддерживают аналогичные программы), позволяет производить «клонирование» дисков и удалять информацию с них так, чтобы ее уже никто и никогда не смог восстановить!
3) HxD Hex Editor
Бесплатный и довольно мощный редактор бинарных файлов. Поддерживает все основные кодировки (ANSI, DOS/IBM-ASCII и EBCDIC), файлы практически любого размера (кстати, редактор позволяет кроме файлов редактировать оперативную память, напрямую записывать изменения на винчестер!).
Так же можно отметить продуманный интерфейс, удобную и простую функцию поиска и замены данных, ступенчатую и многоуровневую систему резервных копий и откатов.
После запуска, программа представляет из себя два окна: слева шестнадцатеричный код, а справа — показано текстовый перевод и содержание файла.
Из минусов я бы выделил отсутствие русского языка. Впрочем, многие функции будут понятны даже тем, кто никогда не учил английский…
4) HexCmp
HexCmp — эта небольшая утилита совмещает в себе сразу 2 программы: первая позволяет сравнивать бинарные файлы между собой, а вторая — это hex-редактор. Это очень ценная опция, когда нужно найти различия в разных файлах, помогает исследовать различную структуру самых разных типов файлов.
Кстати, места после сравнения могут быть закрашены в различный цвет, в зависимости от того, где все совпадает и где данные различны. Сравнение происходит на лету и очень быстро. Программа поддерживает файлы, размер которых не превышает 4 Гб (для большинстве задач вполне достаточно).
Кроме обычного сравнения, можно вести сравнение и в текстовом варианте (или даже в обоих сразу!). Программа достаточно гибка, позволяет настроить под себя цветовую гамму, указать кнопки быстрого вызова. Если настроить программу подобающим образом — то работать с ней можно вообще без мышки! В общем, рекомендую к ознакомлению всем начинающим «проверяльщикам» hex-редакторов и структуры файлов.
5) Hex Workshop
Hex Workshop — простой и удобный редактор бинарных файлов, который отличается прежде всего своими гибкими настройками и низкими системными требованиями. Благодаря этому, в нем можно вести редактирование достаточно больших файлов, которые в других редакторах просто не открываются или зависают.
В арсенале редактора есть все самые нужные функции: редактирование, поиск и замена, копирование, вставка и пр. В программе можно выполнять логические операции, вести бинарное сравнение файлов, смотреть и генерировать различные контрольные суммы файлов, экспортировать данные в популярные форматы: rtf и html.
Так же в арсенале редактора есть конвертер между бинарной, двоичной и шестнадцатеричной системами. В общем-то, неплохой арсенал для hex-редактора. Пожалуй, единственный минус — программа условно-бесплатная…