Просмотр и редактирование шестнадцатеричного исходного кода в macOS

Когда вы имеете дело с необычными файлами, просмотр фактических битов, из которых состоит файл, может быть очень ценным. По крайней мере, вы можете прочитать заголовки файла и расшифровать его назначение. Редактирование шестнадцатеричного кода - сложное дело, но это можно сделать с помощью различных шестнадцатеричных редакторов в macOS. Что такое шестнадцатеричный код и почему его стоит изучить?

Что такое шестнадцатеричный код?

В вычислениях шестнадцатеричный формат обеспечивает более сжатый способ представления двоичных значений. Он использует систему счисления с основанием 16 вместо двоичной системы счисления 2. Благодаря большему пространству чисел несколько двоичных цифр могут быть выражены одной шестнадцатеричной цифрой. Каждая шестнадцатеричная цифра выражает четыре двоичных цифры. Если вы помните свой двоичный код, то знаете, что полбайта имеет ровно 16 возможных значений - такое же количество значений, которое может иметь шестнадцатеричная цифра. Изучите приведенную ниже таблицу, чтобы увидеть эквиваленты.

шестнадцатеричные десятичные двоичные эквивалентные значения

Объедините два шестнадцатеричных числа, и вы сможете выразить восемь бит информации. Это эквивалентно одному байту с тридцатью двумя возможными значениями. Один байт находится в диапазоне от 0000 0000 до 1111 1111. В шестнадцатеричном формате это от 00 до FF соответственно. Записывая шестнадцатеричные значения в виде серии пар, вы можете легко "разбить" двоичные данные файла на байты.

По сути, шестнадцатеричный и двоичный файлы предоставляют разные "фреймы" для одних и тех же базовых данных. Люди могут легко читать шестнадцатеричный код, в то время как компьютеры могут легко читать двоичный код.

Условные обозначения для чтения и записи шестнадцатеричных значений

При записи шестнадцатеричных значений символы 0x могут начинать значение. Эти символы обозначают следующие значения как шестнадцатеричные. Поскольку на первый взгляд шестнадцатеричный, двоичный и восьмеричный числа могут выглядеть одинаково, этот зарезервированный префикс позволяет избежать путаницы и уменьшить количество ошибок.

Например, 0x2FF0C4 описывает шестнадцатеричный адрес в памяти, эквивалентный двоичному значению 0010 1111 1111 0000 1100 0100 и десятичному значению 3,141,828. Только 2FF0C4 считается частью значения. Начальные символы 0x указывают только систему счисления.

Когда весь документ обрабатывается как шестнадцатеричный, значения отображаются в виде пар, например FF A0 2D CE. Это помогает разделить значения на строки длиной в байты, что упрощает синтаксический анализ для людей.

Просмотр и редактирование шестнадцатеричного кода в macOS

Для просмотра шестнадцатеричного кода в macOS вам понадобится приложение для просмотра шестнадцатеричного кода. Доступно несколько бесплатных вариантов.

  • 0xED - это бесплатный и простой кодировщик, который предлагает некоторые параметры настройки. Приложение ориентировано на четкую и быструю интерпретацию шестнадцатеричных значений. Это элементарное, но полезное введение в шестнадцатеричные редакторы.

шестнадцатеричный-редактор-0xed-герой

  • Synalyze It! - платный шестнадцатеричный интерпретатор профессионального уровня со встроенной цветовой кодировкой значений для визуального анализа файлов. Он также включает в себя огромное хранилище "грамматик". Они применяют известные файловые структуры к шестнадцатеричному коду. Эти фреймы помогают понять, интерпретировать поиск и редактировать шестнадцатеричный код.

шестнадцатеричный редактор synalyze-it-hero

Когда у вас есть любое приложение, вы можете вообще открыть любой файл, чтобы просмотреть базовый двоичный код, представленный в шестнадцатеричных значениях. Это более полезно для определенных типов файлов, чем для других, но в большинстве случаев вы увидите шестнадцатеричные значения слева, а их интерпретацию ASCII - справа. Таким образом вы сможете "прочитать" файл и начать понимать, что происходит.

Шестнадцатеричные редакторы также могут редактировать шестнадцатеричный код. Однако это не так просто, как редактирование текста, и при этом не прощает ошибок. Шестнадцатеричные редакторы редактируют код парами байтов, перезаписывая и заменяя два значения одновременно. Если не проявить особую осторожность, можно мгновенно испортить работающий файл. Чтобы защититься от этой уязвимости, всегда дублируйте файл перед редактированием его шестнадцатеричного кода.

Заключение: для чего используются шестнадцатеричные редакторы?

Просто открывать случайные файлы в шестнадцатеричном редакторе может быть весело. Однако это не очень полезно. Есть узкий круг обстоятельств, в которых шестнадцатеричные редакторы показывают свое качество. Если вам нужно просматривать и редактировать двоичный код, то шестнадцатеричные редакторы - лучший инструмент для этой работы.

Например, при написании программы, выводящей двоичные данные, вы должны вручную проверять качество файлов. Они также могут помочь восстановить или проанализировать поврежденные сторонние файлы. Редакторы Hex могут открывать любой файл, поврежденный или недействительный. Это означает, что иногда вы можете "исправить" поврежденный файл с помощью шестнадцатеричного редактора или, по крайней мере, определить причину ошибки. Если вам нужно внести точные изменения в системный файл, например изменить адрес памяти в kext, шестнадцатеричный редактор - единственный инструмент для этой работы. Благодаря их широко распространенной полезности, любой, кто интересуется мельчайшими подробностями вычислений и программирования, преуспел бы, если бы познакомился с шестнадцатеричным редактором.