Как расшифровать HEX-коды и преобразовать их в читаемый текст. Какие существуют способы и инструменты для работы с шестнадцатеричными данными. Где применяется HEX-кодировка и зачем она нужна. Как научиться эффективно работать с HEX-редакторами.
Что такое HEX-кодировка и зачем она нужна
HEX-кодировка (от англ. hexadecimal — шестнадцатеричный) — это способ представления данных в шестнадцатеричной системе счисления. В ней для записи чисел используются 16 цифр от 0 до 9 и буквы от A до F. HEX-кодировка широко применяется в информатике и программировании для компактного представления двоичных данных.
Основные области применения HEX-кодов:
- Представление цветов в веб-дизайне (например, #FF0000 — красный цвет)
- Отображение содержимого двоичных файлов
- Кодирование символов в некоторых кодировках (например, UTF-8)
- Представление MAC-адресов сетевых устройств
- Отладка программ на низком уровне
Преимущества использования HEX-кодировки:
- Компактность записи по сравнению с двоичной системой
- Удобство для восприятия человеком
- Простота преобразования в двоичный код и обратно
Методы расшифровки HEX-кодов
Существует несколько основных способов расшифровки HEX-кодов и преобразования их в читаемый текст:
1. Ручное декодирование с помощью таблиц соответствия
Этот метод подходит для коротких последовательностей. Нужно использовать таблицу соответствия HEX-кодов и ASCII-символов. Например, код 48 65 6C 6C 6F соответствует слову «Hello».
2. Онлайн-декодеры HEX
В интернете доступно множество бесплатных сервисов для преобразования HEX в текст. Достаточно вставить HEX-код и получить результат. Популярные декодеры: RapidTables, ConvertString, CyberChef.
3. Программирование на Python
Python имеет встроенные инструменты для работы с HEX. Пример декодирования:
hex_string = "48656C6C6F20776F726C64"
bytes_object = bytes.fromhex(hex_string)
ascii_string = bytes_object.decode("ASCII")
print(ascii_string) # Выведет "Hello world"
4. Использование HEX-редакторов
Специализированные программы для просмотра и редактирования двоичных данных позволяют работать с HEX-кодами. Популярные редакторы: HxD, WinHex, Hex Workshop.
Инструменты для работы с HEX-данными
Для эффективной работы с шестнадцатеричными данными используются следующие инструменты:
HEX-редакторы
Это специальные программы для просмотра и редактирования двоичных файлов в шестнадцатеричном представлении. Они позволяют:
- Просматривать содержимое файлов в HEX и ASCII-форматах
- Редактировать отдельные байты
- Выполнять поиск по HEX-значениям
- Сравнивать файлы
- Работать с большими объемами данных
Популярные HEX-редакторы:
- HxD — бесплатный редактор для Windows
- Hex Fiend — бесплатный редактор для macOS
- wxHexEditor — кроссплатформенный редактор с открытым исходным кодом
- Hex Workshop — профессиональный платный редактор
Программы-конвертеры
Эти утилиты позволяют быстро преобразовывать данные между различными форматами, включая HEX. Примеры:
- Rapid Tables — онлайн-конвертер с множеством форматов
- CyberChef — многофункциональный инструмент для работы с данными
- Advanced Renamer — программа для пакетного переименования файлов с поддержкой HEX
Инструменты командной строки
Для автоматизации работы с HEX удобно использовать консольные утилиты:
- xxd — стандартная Unix-утилита для создания шестнадцатеричного дампа
- hexdump — утилита для просмотра содержимого файлов в различных форматах
- od — инструмент для форматированного вывода данных из файла
Применение HEX-кодировки в различных областях
Веб-дизайн и цветовые модели
В веб-дизайне HEX-коды широко используются для задания цветов. Каждый цвет кодируется 6 символами, по два на каждый канал RGB. Например:
- #FF0000 — чистый красный
- #00FF00 — чистый зеленый
- #0000FF — чистый синий
- #FFFFFF — белый
- #000000 — черный
Такой формат позволяет задать 16 777 216 различных цветов.
Программирование на низком уровне
При разработке программ, взаимодействующих с оборудованием напрямую, часто используются HEX-коды для задания адресов памяти, портов ввода-вывода и других низкоуровневых параметров.
Анализ сетевого трафика
Специалисты по информационной безопасности анализируют содержимое сетевых пакетов в шестнадцатеричном представлении с помощью программ-анализаторов трафика.
Криптография
В криптографических алгоритмах часто используются операции над данными в шестнадцатеричном формате для упрощения вычислений.

Как научиться эффективно работать с HEX-кодами
Для освоения работы с шестнадцатеричными данными рекомендуется:
- Изучить основы шестнадцатеричной системы счисления
- Освоить преобразования между двоичной, десятичной и шестнадцатеричной системами
- Научиться пользоваться HEX-редактором (например, HxD)
- Попрактиковаться в декодировании простых HEX-последовательностей вручную
- Изучить программирование на Python для автоматизации работы с HEX
- Решать практические задачи по анализу двоичных файлов
Регулярная практика позволит быстро освоить работу с HEX-кодами и эффективно применять их в различных областях.
Заключение
HEX-кодировка — мощный инструмент для работы с двоичными данными, который широко применяется в информационных технологиях. Освоение методов расшифровки HEX-кодов и работы с шестнадцатеричными данными открывает новые возможности в программировании, веб-разработке, анализе данных и других областях. Использование специализированных инструментов и регулярная практика позволяют быстро научиться эффективно работать с HEX-форматом.

Text To Hex / Hex To Text
Описание: Text в Hex / Hex в Text — преобразование текста в шестнадцатеричные коды его символов и обратно. Работает для текста в кодировках Windows-1251, UTF-16. Декодирует UTF-8 текст с кириллицей, который при закодировании в JSON переводится штатной php функцей json_encode() в \uXXXX кодировку.
В математике и вычислениях шестнадцатеричная (также базовая 16, или шестнадцатеричная) — это позиционная система счисления с основанием 16. Он использует шестнадцать различных символов, чаще всего символы 0-9 для представления значений от нуля до девяти, и A, B, C, D, E, F (или альтернативно a, b, c, d, e, f) для представления значений от десяти до пятнадцати.
Шестнадцатеричные цифры широко используются разработчиками компьютерных систем и программистами. Поскольку каждая шестнадцатеричная цифра представляет собой четыре двоичные цифры (биты), она позволяет более удобное для человека представление двоичных кодированных значений. Одна шестнадцатеричная цифра представляет собой кусочек (4 бита), который составляет половину октета или байта (8 бит). Например, один байт может иметь значения в диапазоне от 00000000 до 11111111 в двоичном виде, но это может быть более удобно представлено как 00 до FF в шестнадцатеричном виде.
В контексте, не относящемся к программированию, индекс обычно используется, чтобы дать rix, например, десятичное значение 10,995 было бы выражено в шестнадцатеричном виде как 2AF316. Несколько обозначений используются для поддержки шестнадцатеричного представления констант в языках программирования, обычно включающих префикс или суффикс. Префикс «0x» используется в языках C и связанных языках, где это значение может быть обозначено как 0x2AF3.
Ресурсы:
Hex в ASCII | Конвертер шестнадцатеричной в текстовую строку
Введите шестнадцатеричные байты с любым префиксом / постфиксом / разделителем и нажмите кнопку Convert
(например, 45 78 61 6d 70 6C 65 21):
folder_open Открыть файл search
Вставить шестнадцатеричные числа или удалить файл
autorenew Перерабатывать clear Сброс настроек swap_vert Замена
content_copy Копировать save_alt Сохранить
Конвертер ASCII в шестнадцатеричный ►
Кодировка текста ASCII использует фиксированный 1 байт для каждого символа.
Кодировка текста UTF-8 использует переменное количество байтов для каждого символа. Это требует разделителя между каждым шестнадцатеричным числом.
Как преобразовать шестнадцатеричный код в текст
Преобразуйте шестнадцатеричный код ASCII в текст:
- Получить шестнадцатеричный байт
- Преобразовать шестнадцатеричный байт в десятичный
- Получить символ кода ASCII из таблицы ASCII
- Продолжить со следующего байта
пример
Преобразовать шестнадцатеричный код ASCII «50 6C 61 6E 74 20 74 72 65 65 73» в текст:
Решение:
Используйте таблицу ASCII, чтобы получить символ из кода ASCII.
50 16 = 5 × 16 1 + 0 × 16 0 = 80 + 0 = 80 = «P»
6C 16 = 6 × 16 1 + 12 × 16 0 = 96 + 12 = 108 = «l»
61 16 = 6 × 16 1 + 1 × 16 0 = 96 + 1 = 97 = «а»
⁝
Для всех шестнадцатеричных байтов вы должны получить текст:
«Сажать деревья»
Как преобразовать Hex в текст?
- Получить шестнадцатеричный байтовый код
- Преобразовать шестнадцатеричный байт в десятичный
- Получить символ десятичного кода ASCII из таблицы ASCII
- Продолжить со следующего шестнадцатеричного байта
Как использовать конвертер текста из шестнадцатеричного в ASCII?
- Вставьте шестнадцатеричные байтовые коды в текстовое поле ввода. 0 = 48 = символ ‘0’
Таблица преобразования текста из шестнадцатеричного в ASCII
Шестнадцатеричный Двоичный ASCII-
символ00 00000000 NUL 01 00000001 SOH 02 00000010 STX 03 00000011 ETX 04 00000100 EOT 05 00000101 ENQ 06 00000110 ACK 07 00000111 БЕЛ 08 00001000 BS 09 00001001 HT 0A 00001010 LF 0B 00001011 VT 0C 00001100 FF 0D 00001101 CR 0E 00001110 SO 0F 00001111 SI 10 00010000 DLE 11 00010001 DC1 12 00010010 DC2 13 00010011 DC3 14 00010100 DC4 15 00010101 НАК 16 00010110 SYN 17 00010111 ETB 18 00011000 CAN 19 00011001 EM 1A 00011010 SUB 1B 00011011 ESC 1С 00011100 FS 1D 00011101 GS 1E 00011110 RS 1F 00011111 США 20 00100000 Космос 21 00100001 ! 22 00100010 « 23 00100011 # 24 00100100 $ 25 00100101 % 26 00100110 & 27 00100111 ‘ 28 00101000 ( 29 00101001 ) 2A 00101010 * 2B 00101011 + 2C 00101100 , 2D 00101101 — 2E 00101110 . 2F 00101111 / 30 00110000 0 31 00110001 1 32 00110010 2 33 00110011 3 34 00110100 4 35 00110101 5 36 00110110 6 37 00110111 7 38 00111000 8 39 00111001 9 3A 00111010 : 3B 00111011 ; 3C 00111100 < 3D 00111101 = 3E 00111110 / 3F 00111111 ? 40 01000000 @ 41 01000001 А 42 01000010 B 43 01000011 C 44 01000100 D 45 01000101 E 46 01000110 F 47 01000111 G 48 01001000 H 49 01001001 Я 4A 01001010 J 4B 01001011 K 4C 01001100 L 4D 01001101 M 4E 01001110 N 4F 01001111 O 50 01010000 P 51 01010001 Q 52 01010010 R 53 01010011 S 54 01010100 Т 55 01010101 U 56 01010110 V 57 01010111 W 58 01011000 X 59 01011001 Y 5A 01011010 Z 5B 01011011 [ 5C 01011100 \ 5D 01011101 ] 5E 01011110 ^ 5F 01011111 _ 60 01100000 ` 61 01100001 а 62 01100010 б 63 01100011 c 64 01100100 d 65 01100101 е 66 01100110 f 67 01100111 г 68 01101000 h 69 01101001 я 6A 01101010 j 6B 01101011 k 6C 01101100 л 6D 01101101 м 6E 01101110 п 6F 01101111 о 70 01110000 p 71 01110001 q 72 01110010 г 73 01110011 с 74 01110100 т 75 01110101 u 76 01110110 v 77 01110111 w 78 01111000 х 79 01111001 y 7A 01111010 z 7B 01111011 { 7C 01111100 | 7D 01111101 } 7E 01111110 ~ 7F 01111111 DEL
Смотрите также
Как работают hex-коды для обозначения цветов
Перевод статьи «How Hex Code Colors Work – and How to Choose Colors Without A Color Picker».
Каким бы проектом вы ни занимались, скорее всего на каком-то этапе вы начнете работать с цветами. Особенно, если вы (как и многие другие) начинаете изучение программирования с HTML и создания веб-страниц.
Приступая к планированию цветовой палитры для сайта, вы скорее всего будете пользоваться каким-нибудь графическим интерфейсом. Эти инструменты помогают подобрать желаемые цвета для разных элементов веб-страницы.
По мере накопления опыта вы начнете смотреть скорее на сами коды цветов, а не просто полагаться на редактор. Вы заметите, что выбираемые вами цвета обозначаются какими-то странными кодами, вроде #ff0000.
Это hex-коды цветов. Они — фундаментальная часть работы HTML и CSS. Если вы разберетесь в том, как они функционируют, это не только поможет вам сэкономить массу времени, но и позволит создавать более элегантный и надежный код, причем гораздо быстрее.
В этой статье я расскажу вам обо всем, что вам нужно знать о hex-кодировке цветов.4. В общем, конвертировать числа шестнадцатеричной системы в двоичные (и обратно) просто удобно. Но сейчас мы этим заниматься не будем.
Это была просто дополнительная информация. Она вам не нужна для применения hex-кодов цветов, но может пригодиться, если захотите произвести впечатление на кого-нибудь.
Из каких компонентов состоит цвет?
Как шестнадцатеричные коды используются для обозначения RGB-цветов? (RGB — цветовая модель, описывающая способ кодирования цвета для цветовоспроизведения с помощью трёх цветов, которые принято называть основными. Сама аббревиатура RGB расшифровывается как red, green, blue — красный, зелёный, синий. — Прим. ред. Techrocks).
Каждый пиксель цветного монитора состоит из трех светящихся элементов красного, зелёного и синего цвета. Если рассмотрите экран в большом приближении, вы их увидите (если экран древний, слишком напрягаться не придется). Цвета, которые вы видите на экране, образуются благодаря управлению яркостью каждого из этих элементов.8. Просто еще один факт, который знать не обязательно).
К этому моменту внимательные читатели могли уже понять, насколько просто работать с цветами, представленными в такой форме. Черный цвет представляется как RGB (0,0,0), а белый — RGB (255,255,255). Ну а зеленый, соответственно, — RGB (0,255,0).
Hex-кодировка цветов
Теперь, зная, что в принципе означают коды цветов, давайте посмотрим на hex-коды. Возьмем, к примеру, #ff0000, и попробуем разобраться, что этот код означает.
Посмотрите на таблицу перевода чисел из шестнадцатеричной системы в десятичную, и вы увидите, что «FF» — это 255 в десятичной системе.
Это подсказка. Два первых символа в нашем hex-коде (да и во всех остальных тоже) относятся к красному цвету, и в данном случае его значение — 255. Следующие два символа отвечают за зеленый, а последние — за синий цвет.
Исходя из этого, вы можете понять, что #ff0000 — то же самое, что RGB (255,0,0). То есть, чистый красный. Аналогично, #ff00ff — это максимум красного и одновременно синего, а вместе они дают пурпурный (magenta).
На этом этапе вы, вероятно, уже осознали значение и элегантность hex-кодов. Поскольку они шестнадцатеричные, а максимальное значение каждого компонента — 255, при помощи всего 6 символов можно передать практически любой цвет.
Эта система также означает, что вам доступна очень широкая палитра цветов, потому что каждый компонент может иметь любое значение, от 0 до 255. Попробуйте прикинуть количество вариантов, и вы поймете, что вам доступны 16777216 цветов.
Как использовать сокращенные обозначения цвета
Разобравшись с hex-кодами, вы можете начать использовать их в своих веб-проектах — вместо пипетки в программе для выбора цвета.
Но сначала будет полезным узнать, что это не единственные опции.
Поскольку HTML проектировался так, чтобы им было удобно пользоваться, он допускает использование сокращенной записи hex-кодов. Например, код чистого красного цвета #FF0000 можно сократить до #F00. Одна цифра для красного, одна для зеленого и одна для синего. Браузеры интерпретируют #FF0000 и #F00 одинаково.
Такая запись сокращает доступное количество цветов до примерно 4 тысяч, но ее применение дает некоторые преимущества.
Сокращенный формат записи цветов может улучшить производительность ваших веб-страниц. Это может быть незаметно в маленьких проектах, но будет иметь большое значение, когда ваши проекты станут более сложными.
Почему стоит использовать hex-коды
Большинство конструкторов сайтов позволяют вводить hex-код вместо выбора цвета при помощи мыши. Такой подход имеет ряд преимуществ.
Во-первых, так легче отслеживать, какие цвета используются. Пользуясь пипеткой, очень легко ошибиться и выбрать не тот цвет, пускай даже и очень близкий к желаемому. Вы и не заметите, как в оформлении двух разных страниц появятся два оттенка красного. Применение кодов вместо пипетки гарантирует, что каждый раз вы получите именно тот цвет, который хотели получить.
Во-вторых, использование hex-кодов позволяет подбирать цвета куда более точно. Никакой графический инструмент не содержит 16 миллионов доступных цветов. Если вы пользуетесь кодами, вам доступны любые оттенки.
В-третьих, понимание того, как получаются цвета на экране, очень полезно при проектировании веб-страниц (да и любых программ). Зная, как разные устройства интерпретируют и выводят цвета, вы можете начать использовать hex-коды для смешивания цветов, и при этом быть уверенным, что на экране отобразится именно то, что вы хотели.
Дополнительные преимущества
Hex-коды применяются при работе с HTML, но не только. Практически все программы для работы с изображениями пользуются той же кодировкой. Таким образом, разобравшись, как работают hex-коды, вы получаете полезный и переносимый навык.
python — Расшифровка hex (ASCII) в Python
Я пытаюсь создать программу, которая взаимодействует с оболочкой Windows , поэтому я попробовал следующие команды:
output = subprocess.run('ipconfig', stdout = subprocess.PIPE) output.stdout output = os.popen('ipconfig','r',1).read()Но часть вывода (на русском языке) представлена в шестнадцатеричном виде (ASCII):
Wireless LAN adapter \x81\xa5\xe1\xaf\xe0\xae\xa2\xae\xa4\xad\xa0\xef \xe1\xa5\xe2\xec 4:Должно быть
Wireless LAN adapter Беспроводная сеть 4:Мне нужно, чтобы вся выходная информация была текстовой.
Кстати, когда я использую os.popen (‘ipconfig’, ‘w’) в режиме записи, вывод выводится правильно и нет шестнадцатеричных значений, только текст, но я не могу сохранить это целое число.
Некоторые уже задаваемые вопросы, которые я нашел …
Какая кодировка использует префикс \ x (обратная косая черта x)?
Расшифровать шестнадцатеричную строку в Python 3
Спасибо, 4 помогите!
0
SeriousJokes 20 Дек 2019 в 13:07
1 ответ
Лучший ответ
Попробуй это
output.decode('cp866')Результатом подпроцесса должен быть объект
bytes(в Python 3), используя ваш пример:b'Wireless LAN adapter \x81\xa5\xe1\xaf\xe0\xae\xa2\xae\xa4\xad\xa0\xef \xe1\xa5\xe2\xec 4:'.decode('cp866') > 'Wireless LAN adapter Беспроводная сеть 4:'В общем, вам нужно знать, какую кодировку использует ваша система,
cp866используется для русского языка, проверьте https://docs.python.org/3/library/codecs. html # standard-encodingsВы также можете запросить кодировку по умолчанию для вашей системы с помощью
sys.getdefaultencoding()И если он совпадает, вам даже не нужно указывать его при вызове
bytes.decode.1
JoseKilo 20 Дек 2019 в 10:22
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? -определения HEX
Вы ищете значения HEX? На следующем изображении вы можете увидеть основные определения HEX. При желании вы также можете загрузить файл изображения для печати или поделиться им со своим другом через Facebook, Twitter, Pinterest, Google и т. Д. Чтобы увидеть все значения HEX, пожалуйста, прокрутите вниз. Полный список определений приведен в таблице ниже в алфавитном порядке.
Основные значения HEX
На следующем изображении представлены наиболее часто используемые значения HEX. Вы можете записать файл изображения в формате PNG для автономного использования или отправить его своим друзьям по электронной почте.Если вы являетесь веб-мастером некоммерческого веб-сайта, пожалуйста, не стесняйтесь публиковать изображение определений HEX на вашем веб-сайте.Все определения HEX
Как упомянуто выше, вы увидите все значения HEX в следующей таблице. Пожалуйста, знайте, что все определения перечислены в алфавитном порядке.Вы можете щелкнуть ссылки справа, чтобы увидеть подробную информацию о каждом определении, включая определения на английском и вашем местном языке.Что означает HEX в тексте
В общем, HEX является аббревиатурой или аббревиатурой, которая определяется простым языком. Эта страница иллюстрирует, как HEX используется в обмена сообщениями и чат-форумах, в дополнение к социальным сетям, таким как VK, Instagram, Whatsapp и Snapchat. Из приведенной выше таблицы, вы можете просмотреть все значения HEX: некоторые из них образовательные термины, другие медицинские термины, и даже компьютерные термины. Если вы знаете другое определение HEX, пожалуйста, свяжитесь с нами. Мы включим его во время следующего обновления нашей базы данных. Пожалуйста, имейте в информации, что некоторые из наших сокращений и их определения создаются нашими посетителями. Поэтому ваше предложение о новых аббревиатур приветствуется! В качестве возврата мы перевели аббревиатуру HEX на испанский, французский, китайский, португальский, русский и т.д. Далее можно прокрутить вниз и щелкнуть в меню языка, чтобы найти значения HEX на других 42 языках.Просто о протоколе Modbus RTU
Из данной статьи вы узнаете о протоколе Modbus RTU, который широко применяется в АСУ ТП. Англоязычная версия статьи доступна на сайте ipc2u.com. Описание протокола Modbus TCP можно найти в статье.
Оглавление:
Описание протокола Modbus RTU
Modbus — коммуникационный протокол, основан на архитектуре ведущий-ведомый (master-slave). Использует для передачи данных интерфейсы RS-485, RS-422, RS-232, а также Ethernet сети TCP/IP (протокол Modbus TCP).
Сообщение Modbus RTU состоит из адреса устройства SlaveID, кода функции, специальных данных в зависимости от кода функции и CRC контрольной суммы.
SlaveID Код функции Специальные данные CRC Если отбросить SlaveID адрес и CRC контрольную сумму, то получится PDU, Protocol Data Unit.
SlaveID – это адрес устройства, может принимать значение от 0 до 247, адреса с 248 до 255 зарезервированы.
Данные в модуле хранятся в 4 таблицах.
Две таблицы доступны только для чтения и две для чтения-записи.
В каждой таблице помещается 9999 значений.
Номер регистра Адрес регистра HEX Тип Название Тип 1-9999 0000 до 270E Чтение-запись Discrete Output Coils DO 10001-19999 0000 до 270E Чтение Discrete Input Contacts DI 30001-39999 0000 до 270E Чтение Analog Input Registers AI 40001-49999 0000 до 270E Чтение-запись Analog Output Holding Registers AO В сообщении Modbus используется адрес регистра.
Например, первый регистр AO Holding Register, имеет номер 40001, но его адрес равен 0000.
Разница между этими двумя величинами есть смещение offset.
Каждая таблица имеет свое смещение, соответственно: 1, 10001, 30001 и 40001.
Ниже приведен пример запроса Modbus RTU для получения значения AO аналогового выхода (holding registers) из регистров от #40108 до 40110 с адресом устройства 17.
11 03 006B 0003 7687
11 Адрес устройства SlaveID (17 = 11 hex) 03 Функциональный код Function Code (читаем Analog Output Holding Registers) 006B Адрес первого регистра (40108-40001 = 107 =6B hex) 0003 Количество требуемых регистров (чтение 3-х регистров с 40108 по 40110) 7687 Контрольная сумма CRC В ответе от Modbus RTU Slave устройства мы получим:
11 03 06 AE41 5652 4340 49AD
Где:
11 Адрес устройства (17 = 11 hex) SlaveID 03 Функциональный код Function Code 06 Количество байт далее (6 байтов идут следом) Byte Count AE Значение старшего разряда регистра (AE hex) Register value Hi (AO0) 41 Значение младшего разряда регистра (41 hex) Register value Lo (AO0) 56 Значение старшего разряда регистра (56 hex) Register value Hi (AO1) 52 Значение младшего разряда регистра (52 hex) Register value Lo (AO1) 43 Значение старшего разряда регистра (43 hex) Register value Hi (AO2) 40 Значение младшего разряда регистра (40 hex) Register value Lo (AO2) 49 Контрольная сумма CRC value Lo AD Контрольная сумма CRC value Hi Регистр аналогового выхода AO0 имеет значение AE 41 HEX или 44609 в десятичной системе.
Регистр аналогового выхода AO1 имеет значение 56 52 HEX или 22098 в десятичной системе.
Регистр аналогового выхода AO2 имеет значение 43 40 HEX или 17216 в десятичной системе.
Значение AE 41 HEX — это 16 бит 1010 1110 0100 0001, может принимать различное значение, в зависимости от типа представления.
Значение регистра 40108 при комбинации с регистром 40109 дает 32 бит значение.
Пример представления.
Тип представления Диапазон значений Пример в HEX Будет в десятичной форме 16-bit unsigned integer 0 до 65535 AE41 44,609 16-bit signed integer -32768 до 32767 AE41 -20,927 two character ASCII string 2 знака AE41 ® A discrete on/off value 0 и 1 0001 0001 32-bit unsigned integer 0 до 4,294,967,295 AE41 5652 2,923,517,522 32-bit signed integer -2,147,483,648 до 2,147,483,647 AE41 5652 -1,371,449,774 32-bit single precision IEEE floating point number 1,2·10−38 до 3,4×10+38 AE41 5652 -4.395978 E-11 four character ASCII string 4 знака AE41 5652 ® A V R Наверх к оглавлению
Какие бывают команды Modbus RTU?
Приведем таблицу с кодами функций чтения и записи регистров Modbus RTU.
Код функции Что делает функция Тип значения Тип доступа 01 (0x01) Чтение DO Read Coil Status Дискретное Чтение 02 (0x02) Чтение DI Read Input Status Дискретное Чтение 03 (0x03) Чтение AO Read Holding Registers 16 битное Чтение 04 (0x04) Чтение AI Read Input Registers 16 битное Чтение 05 (0x05) Запись одного DO Force Single Coil Дискретное Запись 06 (0x06) Запись одного AO Preset Single Register 16 битное Запись 15 (0x0F) Запись нескольких DO Force Multiple Coils Дискретное Запись 16 (0x10) Запись нескольких AO Preset Multiple Registers 16 битное Запись Наверх к оглавлению
Как послать команду Modbus RTU на чтение дискретного вывода? Команда 0x01
Эта команда используется для чтения значений дискретных выходов DO.
В запросе PDU задается начальный адрес первого регистра DO и последующее количество необходимых значений DO. В PDU значения DO адресуются, начиная с нуля.
Значения DO в ответе находятся в одном байте и соответствуют значению битов.
Значения битов определяются как 1 = ON и 0 = OFF.
Младший бит первого байта данных содержит значение DO адрес которого указывался в запросе. Остальные значения DO следуют по нарастающей к старшему значению байта. Т.е. справа на лево.
Если запрашивалось меньше восьми значений DO, то оставшиеся биты в ответе будут заполнены нулями (в направлении от младшего к старшему байту). Поле Byte Count Количество байт далее указывает количество полных байтов данных в ответе.
Пример запроса DO с 20 по 56 для SlaveID адреса устройства 17. Адрес первого регистра будет 0013 hex = 19, т.к. счет ведется с 0 адреса (0014 hex = 20, -1 смещение нуля = получаем 0013 hex = 19).
Байт Запрос Байт Ответ (Hex) Название поля (Hex) Название поля 11 Адрес устройства 11 Адрес устройства 01 Функциональный код 01 Функциональный код 00 Адрес первого регистра Hi байт 05 Количество байт далее 13 Адрес первого регистра Lo байт CD Значение регистра DO 27-20 (1100 1101) 00 Количество регистров Hi байт 6B Значение регистра DO 35-28 (0110 1011) 25 Количество регистров Lo байт B2 Значение регистра DO 43-36 (1011 0010) 0E Контрольная сумма CRC 0E Значение регистра DO 51-44 (0000 1110) 84 Контрольная сумма CRC 1B Значение регистра DO 56-52 (0001 1011) 45 Контрольная сумма CRC E6 Контрольная сумма CRC Состояния выходов DO 27-20 показаны как значения байта CD hex, или в двоичной системе 1100 1101.
В регистре DO 56-52 5 битов справа были запрошены, а остальные биты заполнены нулями до полного байта (0001 1011).
Каналы — — — DO 56 DO 55 DO 54 DO 53 DO 52 Биты 0 0 0 1 1 0 1 1 Hex 1B Модули с дискретным выводом: M-7065, ioLogik R1214, ADAM-4056S
Наверх к оглавлению
Как послать команду Modbus RTU на чтение дискретного ввода? Команда 0x02
Эта команда используется для чтения значений дискретных входов DI.
Пример запроса DI с регистров от #10197 до 10218 для SlaveID адреса устройства 17. Адрес первого регистра будет 00C4 hex = 196, т.к. счет ведется с 0 адреса.
Байт Запрос Байт Ответ (Hex) Название поля (Hex) Название поля 11 Адрес устройства 11 Адрес устройства 02 Функциональный код 02 Функциональный код 00 Адрес первого регистра Hi байт 03 Количество байт далее C4 Адрес первого регистра Lo байт AC Значение регистра DI 10204-10197 (1010 1100) 00 Количество регистров Hi байт DB Значение регистра DI 10212-10205 (1101 1011) 16 Количество регистров Lo байт 35 Значение регистра DI 10218-10213 (0011 0101) BA Контрольная сумма CRC 20 Контрольная сумма CRC A9 Контрольная сумма CRC 18 Контрольная сумма CRC Модули с дискретным вводом: M-7053, ioLogik R1210, ADAM-4051
Наверх к оглавлению
Как послать команду Modbus RTU на чтение аналогового вывода? Команда 0x03
Эта команда используется для чтения значений аналоговых выходов AO.
Пример запроса AO с регистров от #40108 до 40110 для SlaveID адреса устройства 17. Адрес первого регистра будет 006B hex = 107, т.к. счет ведется с 0 адреса.
Байт Запрос Байт Ответ (Hex) Название поля (Hex) Название поля 11 Адрес устройства 11 Адрес устройства 03 Функциональный код 03 Функциональный код 00 Адрес первого регистра Hi байт 06 Количество байт далее 6B Адрес первого регистра Lo байт AE Значение регистра Hi #40108 00 Количество регистров Hi байт 41 Значение регистра Lo #40108 03 Количество регистров Lo байт 56 Значение регистра Hi #40109 76 Контрольная сумма CRC 52 Значение регистра Lo #40109 87 Контрольная сумма CRC 43 Значение регистра Hi #40110 40 Значение регистра Lo #40110 49 Контрольная сумма CRC AD Контрольная сумма CRC Модули с аналоговым выводом: M-7024, ioLogik R1241, ADAM-4024
Наверх к оглавлению
Как послать команду Modbus RTU на чтение аналогового ввода? Команда 0x04
Эта команда используется для чтения значений аналоговых входов AI.
Пример запроса AI с регистра #30009 для SlaveID адреса устройства 17. Адрес первого регистра будет 0008 hex = 8, т.к. счет ведется с 0 адреса.
Байт Запрос Байт Ответ (Hex) Название поля (Hex) Название поля 11 Адрес устройства 11 Адрес устройства 04 Функциональный код 04 Функциональный код 00 Адрес первого регистра Hi байт 02 Количество байт далее 08 Адрес первого регистра Lo байт 00 Значение регистра Hi #30009 00 Количество регистров Hi байт 0A Значение регистра Lo #30009 01 Количество регистров Lo байт F8 Контрольная сумма CRC B2 Контрольная сумма CRC F4 Контрольная сумма CRC 98 Контрольная сумма CRC Модули с аналоговым вводом: M-7017, ioLogik R1240, ADAM-4017+
Наверх к оглавлению
Как послать команду Modbus RTU на запись дискретного вывода? Команда 0x05
Эта команда используется для записи одного значения дискретного выхода DO.
Значение FF 00 hex устанавливает выход в значение включен ON.
Значение 00 00 hex устанавливает выход в значение выключен OFF.
Все остальные значения недопустимы и не будут влиять значение на выходе.
Нормальный ответ на такой запрос — это эхо (повтор запроса в ответе), возвращается после того, как состояние DO было изменено.
Пример записи в DO с регистром #173 для SlaveID адреса устройства 17. Адрес регистра будет 00AC hex = 172, т.к. счет ведется с 0 адреса.
Байт Запрос Байт Ответ (Hex) Название поля (Hex) Название поля 11 Адрес устройства 11 Адрес устройства 05 Функциональный код 05 Функциональный код 00 Адрес первого регистра Hi байт 00 Адрес первого регистра Hi байт AC Адрес первого регистра Lo байт AC Адрес первого регистра Lo байт FF Значение Hi байт FF Значение Hi байт 00 Значение Lo байт 00 Значение Lo байт 4E Контрольная сумма CRC 4E Контрольная сумма CRC 8B Контрольная сумма CRC 8B Контрольная сумма CRC Состояние выхода DO173 поменялось с выключен OFF на включен ON.
Модули с дискретным выводом: M-7053, ioLogik R1210, ADAM-4051
Наверх к оглавлению
Как послать команду Modbus RTU на запись аналогового вывода? Команда 0x06
Эта команда используется для записи одного значения аналогового выхода AO.
Пример записи в AO с регистром #40002 для SlaveID адреса устройства 17. Адрес первого регистра будет 0001 hex = 1, т.к. счет ведется с 0 адреса.
Байт Запрос Байт Ответ (Hex) Название поля (Hex) Название поля 11 Адрес устройства 11 Адрес устройства 06 Функциональный код 06 Функциональный код 00 Адрес первого регистра Hi байт 00 Адрес первого регистра Hi байт 01 Адрес первого регистра Lo байт 01 Адрес первого регистра Lo байт 00 Значение Hi байт 00 Значение Hi байт 03 Значение Lo байт 03 Значение Lo байт 9A Контрольная сумма CRC 9A Контрольная сумма CRC 9B Контрольная сумма CRC 9B Контрольная сумма CRC Модули с аналоговым выводом: M-7024, ioLogik R1241, ADAM-4024
Наверх к оглавлению
Как послать команду Modbus RTU на запись нескольких дискретных выводов? Команда 0x0F
Эта команда используется для записи нескольких значений дискретного выхода DO.
Пример записи в несколько DO с регистрами от #20 до #29 для SlaveID адреса устройства 17. Адрес регистра будет 0013 hex = 19, т.к. счет ведется с 0 адреса.
Байт Запрос Байт Ответ (Hex) Название поля (Hex) Название поля 11 Адрес устройства 11 Адрес устройства 0F Функциональный код 0F Функциональный код 00 Адрес первого регистра Hi байт 00 Адрес первого регистра Hi байт 13 Адрес первого регистра Lo байт 13 Адрес первого регистра Lo байт 00 Количество регистров Hi байт 00 Кол-во записанных рег. Hi байт 0A Количество регистров Lo байт 0A Кол-во записанных рег. Lo байт 02 Количество байт далее 26 Контрольная сумма CRC CD Значение байт DO 27-20 (1100 1101) 99 Контрольная сумма CRC 01 Значение байт DO 29-28 (0000 0001) BF Контрольная сумма CRC 0B Контрольная сумма CRC В ответе возвращается количество записанных регистров.
Модули с дискретным выводом: M-7053, ioLogik R1210, ADAM-4051
Наверх к оглавлению
Как послать команду Modbus RTU на запись нескольких аналоговых выводов? Команда 0x10
Эта команда используется для записи нескольких значений аналогового выхода AO.
Пример записи в несколько AO с регистрами #40002 и #40003 для SlaveID адреса устройства 17. Адрес первого регистра будет 0001 hex = 1, т.к. счет ведется с 0 адреса.
Байт Запрос Байт Ответ (Hex) Название поля (Hex) Название поля 11 Адрес устройства 11 Адрес устройства 10 Функциональный код 10 Функциональный код 00 Адрес первого регистра Hi байт 00 Адрес первого регистра Hi байт 01 Адрес первого регистра Lo байт 01 Адрес первого регистра Lo байт 00 Количество регистров Hi байт 00 Кол-во записанных рег. Hi байт 02 Количество регистров Lo байт 02 Кол-во записанных рег. Lo байт 04 Количество байт далее 12 Контрольная сумма CRC 00 Значение Hi 40002 98 Контрольная сумма CRC 0A Значение Lo 40002 01 Значение Hi 40003 02 Значение Lo 40003 C6 Контрольная сумма CRC F0 Контрольная сумма CRC Модули с аналоговым выводом: M-7024, ioLogik R1241, ADAM-4024
Наверх к оглавлению
Какие бывают ошибки запроса Modbus?
Если устройство получило запрос, но запрос не может быть обработан, то устройство ответит кодом ошибки.
Ответ будет содержать измененный Функциональный код, старший бит будет равен 1.
Пример:
Было Стало Функциональный код в запросе Функциональный код ошибки в ответе 01 (01 hex) 0000 0001 129 (81 hex) 1000 0001 02 (02 hex) 0000 0010 130 (82 hex) 1000 0010 03 (03 hex) 0000 0011 131 (83 hex) 1000 0011 04 (04 hex) 0000 0100 132 (84 hex) 1000 0100 05 (05 hex) 0000 0101 133 (85 hex) 1000 0101 06 (06 hex) 0000 0110 134 (86 hex) 1000 0110 15 (0F hex) 0000 1111 143 (8F hex) 1000 1111 16 (10 hex) 0001 0000 144 (90 hex) 1001 0000 Пример запроса и ответ с ошибкой:
Байт Запрос Байт Ответ (Hex) Название поля (Hex) Название поля 0A Адрес устройства 0A Адрес устройства 01 Функциональный код 81 Функциональный код с измененным битом 04 Адрес первого регистра Hi байт 02 Код ошибки A1 Адрес первого регистра Lo байт B0 Контрольная сумма CRC 00 Количество регистров Hi байт 53 Контрольная сумма CRC 01 Количество регистров Lo байт AC Контрольная сумма CRC 63 Контрольная сумма CRC Расшифровка кодов ошибок
01 Принятый код функции не может быть обработан. 02 Адрес данных, указанный в запросе, недоступен. 03 Значение, содержащееся в поле данных запроса, является недопустимой величиной. 04 Невосстанавливаемая ошибка имела место, пока ведомое устройство пыталось выполнить затребованное действие. 05 Ведомое устройство приняло запрос и обрабатывает его, но это требует много времени. Этот ответ предохраняет ведущее устройство от генерации ошибки тайм-аута. 06 Ведомое устройство занято обработкой команды. Ведущее устройство должно повторить сообщение позже, когда ведомое освободится. 07 Ведомое устройство не может выполнить программную функцию, заданную в запросе. Этот код возвращается для неуспешного программного запроса, использующего функции с номерами 13 или 14. Ведущее устройство должно запросить диагностическую информацию или информацию об ошибках от ведомого. 08 Ведомое устройство при чтении расширенной памяти обнаружило ошибку паритета. Ведущее устройство может повторить запрос, но обычно в таких случаях требуется ремонт. 10
(0A hex)Шлюз неправильно настроен или перегружен запросами. 11
(0B hex)Slave устройства нет в сети или от него нет ответа. Наверх к оглавлению
Программы для работы с протоколом Modbus RTU
Ниже перечислены программы, которые облегчают работу с Modbus.
DCON Utility Pro с поддержкой Modbus RTU, ASCII, DCON. Скачать
Modbus Master Tool с поддержкой Modbus RTU, ASCII, TCP. Скачать
Modbus TCP client с поддержкой Modbus TCP. Скачать
Наверх к оглавлению
Оборудование с поддержкой протокола Modbus RTU
Наверх к оглавлению
За более подробной информацией обращайтесь к специалистам IPC2U по телефону: +7 (495) 232 0207 или по e-mail: [email protected]
Онлайн-инструмент для преобразования шестнадцатеричного формата в строковый
Обратите внимание: все пробелы и двоеточия (:) в шестнадцатеричной строке будут удалены.
Нужно преобразовать текст в шестнадцатеричный формат?
Используйте наш инструмент преобразования текста в шестнадцатеричный формат!
Шестнадцатеричная система счисления используется для удобного представления двоичных значений в компьютерном программировании и цифровой электронике. Большинство языков программирования, таких как Java, ASP.NET, C++, Fortran и т. д., имеют встроенные функции, которые конвертируют в шестнадцатеричный формат и из него.
Что такое шестнадцатеричное число?
Большинство людей знакомы с десятичной системой счисления с основанием 10 (все возможные числа можно записать с помощью 10 цифр: 0,1,2,3,4,5,6,7,8,9). Имея всего 10 цифр, дополнительные цифры необходимо использовать через определенные промежутки времени, чтобы правильно записать число. Например, в числе 423 004 цифр вдвое больше, чем в числе 961.
Шестнадцатеричная система с основанием 16 была создана для имитации некоторых свойств обычной десятичной системы.Общая разница в том, что для обозначения значения числа доступно 16 цифр вместо 10 цифр.
В шестнадцатеричной системе используются 16 символов: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E и F. Таким образом, вместо десятичного символа 10, в шестнадцатеричной системе используется буква A, и так далее, и так далее, пока мы не дойдем до десятичного числа 15, которое обозначается буквой F. Подобно десятичной системе, после того, как было использовано основание из 16 символов, добавляется соответствующая дополнительная цифра и порядок чисел начинается заново.Другими словами, после F мы начинаем с 10 и так далее. Чтобы лучше понять взаимосвязь между десятичной и шестнадцатеричной системами счисления, ознакомьтесь с таблицей ниже.
Как шестнадцатеричное кодирование текста используется в программировании?
Шестнадцатеричная кодировка используется программистами для улучшения читаемости байтов, которые используются для связи с компьютерами. Существует ряд преимуществ использования шестнадцатеричного кодирования, в том числе доступная более высокая плотность информации, поскольку шестнадцатеричное кодирование эффективно сокращает 8 цифр двоичного кода до 2 шестнадцатеричных цифр.Таким образом, 2 шестнадцатеричных цифры выражают любое число от 0 до 255, то есть тот же набор чисел, что и 8 цифр в двоичном формате.
Преобразование текста в шестнадцатеричное кодирование по сравнению с кодировкой Base 64
Хотя шестнадцатеричное кодирование является популярной стратегией кодирования, используемой программистами, шестнадцатеричное кодирование значительно увеличивает объем используемого хранилища, что снижает эффективность вашего взаимодействия с компьютером. Если место для хранения является проблемой, в качестве альтернативы рекомендуется кодирование в Base 64.
Для чего используется шестнадцатеричное кодирование?
Причины использования шестнадцатеричного кодирования в основном те же, что и для кодирования Base64 — оно используется, когда вы хотите отправить или сохранить 8-битные данные на носителе, который принимает только 6 или 7 бит.Шестнадцатеричное кодирование выполняется путем преобразования 8-битных данных в 2 шестнадцатеричных символа. Шестнадцатеричные символы затем сохраняются как двухбайтовые строковые представления символов.
Часто для облегчения чтения закодированных данных используется какой-либо разделитель. С 8 битами, преобразованными в три символа, и каждый символ хранится как 1-4 байта, вы можете использовать до 12 байтов (или даже больше в некоторых случаях) для каждого байта информации.
Опять же, не используйте шестнадцатеричное кодирование, если вам не хватает места для хранения.Однако кодировка довольно легко читается, поэтому, если удобочитаемость для человека является проблемой, то шестнадцатеричная кодировка, вероятно, является лучшим выбором, чем кодировка base64.
Использование бесплатного инструмента для кодирования шестнадцатеричного кода
Приведенный выше конвертер шестнадцатеричного формата в текстовый очень прост в использовании. Введите или вставьте шестнадцатеричное число, которое вы хотите преобразовать в текст, а затем нажмите «Преобразовать» под областью вставки. Закодированная строка появится в поле ниже, откуда ее можно легко скопировать. Для вашего удобства и эффективности мы рекомендуем добавить этот инструмент в закладки для использования в будущем.
String Functions также создала бесплатный онлайн-инструмент для обратного преобразования строки в шестнадцатеричный формат. Попробуйте сегодня!
Политика конфиденциальности Карта сайта
Ключевые слова: шестнадцатеричное декодирование строкового текста, инструмент, онлайн-инструмент, конвертер символов в шестнадцатеричный.
Онлайн-инструмент для шестнадцатеричных кодировщиков и декодеров
В математике и вычислительной технике шестнадцатеричная (также с основанием 16 или шестнадцатеричная) система счисления представляет собой позиционную систему счисления, которая представляет числа с использованием системы счисления (основания) 16.
В отличие от обычного способа представления чисел с использованием 10 символов, шестнадцатеричный использует 16 различных символов, чаще всего символы «0»-«9» для представления значений от 0 до 9 и «A»-«F» (или, альтернативно, «a»- «f») для представления значений от 10 до 15. При передаче используется шестнадцатеричная кодировка Base16, в котором каждый байт открытого текста разбивается на два 4-битных значения и представляется двумя шестнадцатеричными цифрами.Преимущества шестнадцатеричной кодировки —
- В большинстве языков программирования уже есть средства для разбора шестнадцатеричного числа
- в кодировке ASCII. Поскольку 4 бита составляют ровно половину байта, их легче обрабатывать, чем 5 или 6 битов Base32 и Base64 соответственно
- Символы 0–9 и A–F являются универсальными в шестнадцатеричном представлении, поэтому их легко понять с первого взгляда, не полагаясь на таблицу поиска символов
- . Многие архитектуры ЦП имеют специальные инструкции, которые позволяют получить доступ к полубайту (также известному как «полубайт»), что делает его более эффективным в аппаратном отношении, чем Base32 и Base64 .
Шестнадцатеричный кодировщик онлайн
Введите обычный текст, который будет закодирован с помощью Hex —Строка, которая должна быть закодирована с использованием шестнадцатеричного кода
.Онлайн шестнадцатеричный декодер
Введите шестнадцатеричный текст —Значение в шестнадцатеричном коде для декодирования в строку
В следующей таблице каждая шестнадцатеричная цифра представлена с эквивалентными значениями в двоичном и десятичном формате.Денарий Бинарный шестнадцатеричный 0 0000 0 1 0001 1 2 0010 2 3 0011 3 4 0100 4 5 0101 5 6 0110 6 7 0111 7 8 1000 8 9 1001 9 10 1010 А 11 1011 Б 12 1100 С 13 1101 Д 14 1110 Е 15 1111 Ф Декодер шестнадцатеричных пакетов
Декодер шестнадцатеричных пакетов 01 00 5E 00 00 0A C2 02 73 FE 00 00 08 00 45 C0 00 3C 00 00 00 00 02 58 CD 9E 0A 00 00 02 E0 00 00 0A 02 05 EE 68 00 00 0 0 0 00 0 0 00 0 0 00 00 00 64 00 01 00 0С 01 00 01 00 00 00 00 0F 00 04 00 08 0С 04 01 02
10.0.0.2 → 224.0.0.10 EIGRP Hello
0 2 34 4 5 6 7 8 9 10 11 12 13 14 15 01 00 5Е 00 00 0А С2 02 73 ФЭ 00 00 08 00 45 С0 00 3С 00 00 00 00 02 58 CD 9Е 0А 00 00 02 Э0 00 00 0А 02 05 ЕЕ 68 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 00 01 00 0С 01 00 01 00 00 00 00 0Ф 00 04 00 08 0С 04 01 02
3 протокола в пакете:
Ethernet IPv4 EIGRP
HPD v3.6 Салима Гасми. Этот сайт работает на Wireshark. Вы также можете проверить мои другие инструменты.
Здесь мы предлагаем вам API для разбора ваших собственных пакетов.
Хотите иметь локальную копию HPD в своей компании? Связаться с нами.
Страница создана за 19 мс» Понимание двоичного представления данных и представления данных с помощью CyberChef
Значительная часть обратного проектирования и атак на устройства зависит от просмотра и распознавания данных в различных формах и разработки способов их декодирования.
Обычно для этого мы используем инструменты и сценарии Linux, но вы можете сделать первые несколько шагов, используя очень удобный онлайн-инструмент под названием CyberChef.
Что такое двоичный файл?
Все данные хранятся в виде последовательности 1 и 0. Одиночная 1 или 0 называется битом. Мы называем это бинарным, потому что есть два значения.
Следующей по величине общей единицей является байт, состоящий из 8 бит.
Кроме того, используются префиксы СИ. 1 килобайт (КБ) технически составляет 1000 байт, а 1 кибибайт (КиБ) — 1024 байта.Однако килобайты часто используются как для 1000 байтов, так и для 1024 байтов, даже в техническом контексте. В большинстве случаев обратного проектирования кБ означает 1024 байта.
Unit Размер кБ (килобайт) 1024 байт MB (мегабайтах) 1048576 байт или 1024Кб GB (Gigabyte) 1073741824 или 1024MB Чтобы определить, сколько возможных значений может храниться в данных заданной длины, выполните следующие вычисления:
Значения = 2^бит
^ означает «в степени»
Например, один байт (8 бит) может хранить 2^8 или 256 значений.16 или 65536 значений. Увеличение длины бита на 1 бит удвоит количество возможных значений.
Вы видите, что к тому моменту, когда вы достигли 64-битного числа, существует огромное количество возможных значений.
Биты Значения 8 256 16 65535 429496729632 1.84e1964 128 3.4e38 Количество потенциальных значений может иметь значение при расчете пространства поиска для проведения атак методом полного перебора.
Хотя в байте 256 значений, значения обычно начинаются с 0. Таким образом, диапазон составляет 0–255, охватывающий все 256 значений.
Двоичные данные могут кодировать информацию во многих различных формах. Ниже приведены все представления одних и тех же данных
.- 01000001 (двоичный)
- 65 (десятичный)
- 41 (шестнадцатеричный)
- A (ASCII или текст)
- QQ== (основание 64, способ кодирования двоичного кода в виде текста)
Мы будем часто использовать префикс 0x для представления шестнадцатеричного числа, т. е. 0x41. Однако контекст — это все — никогда не предполагайте, как кодируются данные! Это может быть текст, часть числа с плавающей запятой или код.
Вы можете использовать встроенный калькулятор в Windows и OS X для преобразования из одного в другой, если вы переключитесь в режим программиста:
На КиберШеф
Полезный инструмент для понимания многих из этих данных называется CyberChef.Это онлайн-инструмент, который полностью работает в браузере. Ни одна из введенных данных не покидает вашу машину, и их можно сохранить и запустить локально.
Да, это GCHQ. Нет, они не крадут ваши секреты. По крайней мере, не используя этот инструмент.
Несколько операций могут быть объединены в цепочку для формирования конвейера. Это включает в себя простые преобразования, а также сложные вещи, такие как шифрование и дешифрование.
Давайте начнем вводить текст в раздел «Ввод». Это будет дословно скопировано в раздел «Вывод», поскольку «Рецепт» не был создан.7) возможные символы.
Преобразование в ASCII и обратно — очень распространенная задача. Таблицы, показывающие все значения, доступны онлайн.
Диапазоны и значения, с которыми стоит ознакомиться:
- 0x20 – пробел
- 0x30-0x39 – 0-9
- 0x41-0x5A – AZ
- 0x61-0x7A – az
Очень часто используется – для проверки значения A 0x4 –1. буфер переполняется. Вы начнете распознавать длинные строки 41414141, глядя на память!
ASCII — не единственный способ кодирования текста.Юникод — это распространенный формат, который допускает гораздо больше возможных символов, но существуют десятки различных кодировок. Вы можете использовать операцию «Кодировка текста», чтобы увидеть их. UTF-16LE кодирует каждую букву как 2 байта (16 означает 16 бит). Теперь каждый второй символ выглядит как «.».
Если мы теперь добавим операцию «To hex», мы увидим, что каждый второй байт равен 0x00 — ноль. Те «.» просто означает «Я не уверен, как это отобразить».
Мы можем перевернуть этот раунд и сначала взять шестнадцатеричный код, преобразовать его в двоичный с помощью «Из шестнадцатеричного», а затем декодировать текст с помощью «Текстового декодирования».
Вы можете щелкнуть эту ссылку, чтобы увидеть это напрямую.
Если мы используем правильную кодировку (UTF-16LE), то текст выглядит так, как ожидалось. Хоть поменяй на UTF-16BE, а вдруг у нас ерунда.
Это очень важный момент — двоичные данные можно интерпретировать по-разному. Наши операционные системы и программы используют расширения файлов и метаданные, чтобы определить, как обращаться с контентом, но нам, реверс-инженерам, часто приходится догадываться.
До сих пор мы рассматривали только текст.Однако исполняемые файлы на наших машинах также представляют собой просто двоичные данные. Мы можем загрузить их в CyberChef и проанализировать.
Я решил просмотреть файл write.exe из C:\Windows\system32\ — он достаточно мал, чтобы CyberChef мог с ним справиться, но представляет некоторый интерес.
Вы сразу увидите несколько узнаваемых строк. Почти все исполняемые файлы будут иметь их в той или иной форме. Они могут быть невероятно полезны при обратном проектировании программного обеспечения, позволяя нам определять функции, конечные точки, пароли и многое другое.
Другая операция под названием «Строки» будет отфильтровывать длину текста, превышающую определенный предел. Как вы можете видеть, он соответствует некоторым данным, которые не являются текстом — именно здесь двоичные данные правильно декодируются как ASCII.
Мы знаем, что это исполняемый файл Windows, так как мы только что прочитали его из нашей собственной системы. .exe в конце — это просто часть имени файла — это все равно были бы те же двоичные данные, если бы он назывался «сыр.txt».
Но часто мы на самом деле не знаем, для чего на самом деле предназначен файл — это исполняемый файл? Zip-файл? Картинка?
В CyberChef есть операция «Определить тип файла».Это отпечатки пальцев файла и дает вам лучшее предположение о том, что это такое. Это не безошибочно, но полезно.
Давайте проанализируем немного более длинный текстовый файл слов.
Добавить операцию «Энтропия». Что это делает, так это смотрит на «случайность» файла. По умолчанию используется так называемая энтропия Шеннона, вычисляемая по всему файлу. Данные посередине имеют структуру — это либо текст, либо исполняемый файл, либо какая-либо другая форма информации.
Еще одним полезным инструментом для определения содержимого файла является «Распределение частоты».Это подсчитывает, как часто заданные значения байтов встречаются в файле. К сожалению, нижняя ось в десятичном формате, а не в шестнадцатеричном, но вы можете увидеть некоторые четкие пики. Самый высокий — 32 — это 0x20 или пробел. Кластер около 107 — это символы нижнего регистра.
Теперь попробуйте то же самое с write.exe и zip-файлом (> 10 КБ или около того).
Вы увидите, что write.exe на самом деле имеет энтропию, подобную тексту, несмотря на то, что это не текст. Однако он имеет структуру и содержит некоторый текст. Однако распределение частот совсем другое!
Я добавил еще одну операцию — удалить нулевые байты — чтобы огромное количество 0x00 в файле убрали из графика, чтобы было понятнее.
Вы можете увидеть такую же «выпуклость» около 107 — это текст, встроенный в исполняемый файл. Но там гораздо более широкий разброс значений, чем с текстовым файлом.
А вот почтовый индекс — это отдельная история. Энтропия Шеннона составляет 7,99 из 8. Это настолько случайно, насколько это возможно. Почти всегда это признак сжатия или шифрования. Почти любое сжатие работает путем выявления паттернов и их уплотнения, поэтому структура удаляется. Зашифрованные данные должны быть неотличимы от случайного шума.
Это zip-файл, поэтому сжатие приводит к высокой энтропии.
Когда мы смотрим на частотное распределение, мы видим гораздо более равномерное распределение по всем значениям. Опять же признак сжатия или шифрования. Это удобные инструменты для определения того, что находится в файле, особенно прошивки и тому подобное.
Чтобы продемонстрировать это, вы можете зашифровать файл с помощью AES в Cyberchef и проверить распределение энтропии и частоты.
Щелкните эту ссылку, чтобы просмотреть необходимые операции.
Заключение
Я надеюсь, что этот вводный пост помог вам понять двоичный код и некоторые инструменты, которые мы можем использовать для преобразования, декодирования и понимания назначения различных данных.
Декодер пакетов LoRaWAN 1.0.x
Имейте в виду, что пакеты LoRaWAN представляют собой двоичные данные, поэтому не удаляйте ведущие нули. Также обратите внимание, что ошибочные пакеты (включая пакеты, которые являются просто LoRa, а не LoRaWAN), скорее всего, будут показывать неверные результаты без какого-либо предупреждения, поэтому укажите секреты для проверки кода целостности сообщения (MIC).
Если 4-байтовый MIC действителен, то можно с уверенностью предположить, что пакет не был изменен, что это действительно пакет LoRaWAN и что секретный NwkSKey также действителен. Но даже в этом случае нельзя сказать, действителен ли секретный AppSKey; указание неправильного AppSKey просто приводит к другим результатам расшифровки.
В LoRaWAN 1.0.x значение FCnt содержит только 16 младших битов (LSB) фактического счетчика кадров. Но для 32-битного счетчика кадров все 32 бита используются при расчете MIC.Таким образом, сервер LoRaWAN должен угадать или попробовать другие 16 бит при проверке MIC. Такой сервер может использовать свои собственные внутренние счетчики для наилучшего предположения, и, поскольку LoRaWAN определяет максимально допустимый разрыв между последним известным значением и текущим значением (MAX_FCNT_GAP, равное 16 384), сервер, вероятно, попробует только одно дополнительное значение для MSB. Выше смело перебираются все возможные 65 536 значений MSB, пока не будет найден допустимый MIC.
Обратите внимание, что DevAddr не уникален, и провайдер должен попытаться проверить MIC, используя NwkSKey всех устройств, которые он знает для данного DevAddr, пока не найдет действительный MIC.Только когда он находит действительный MIC, он знает, какому устройству принадлежит пакет. Имейте в виду, что в The Things Network о невозможности найти совпадение НЕ будет сообщено в части трассировки на странице трафика шлюза в консоли TTN.
Запросы на присоединение OTAA не шифруются; укажите AppKey в поле AppSKey и оставьте NwkSKey пустым, чтобы проверить MIC.
Принятие присоединения OTAA не может быть проверено или расшифровано выше, так как им нужны дополнительные данные для проверки их MIC и получения секретных ключей сеанса.
Приведенный выше вывод является стандартным выводом lora-packet с некоторыми улучшениями, если секреты известны, чтобы показать, действителен ли MIC, перебором 32-битного счетчика кадров и показать расшифрованную полезную нагрузку.
lora-packet также можно установить как утилиту командной строки, а поскольку 0.7.7 также может проверять/расшифровывать, то:
- установить Node.js и npm
- запуск:
npm install -g lora-packet - запустить:
lora-packet-decode --base64 ADFGUkFEshgAdAoAAACyGADXQ5rzpZs=
илиlora-packet-decode --hex 003146524144B21800740A000000B21800D7439AF90A51B19B
Ведущий этой страницы не связан с lora-packet.Смотрите и помечайте https://github.com/anthonykirby/lora-packet.
Онлайновый декодер шестнадцатеричного кода в строку
Этот онлайн-конвертер можно использовать для декодирования шестнадцатеричного формата в исходный строковый текст. 2 шестнадцатеричных символа на входе преобразуются в 1 исходный символ.
См. также
- Строка онлайн в шестнадцатеричный кодировщик
Дополнительные примечания
- Убедитесь, что в поле ввода нет лишней новой строки. Шестнадцатеричная кодировка
- может использоваться в форме html, где данные могут содержать специальные символы/слова.Иногда эти специальные символы/слова блокируются браузерами.
Шестнадцатеричное значение для печатаемых символов ASCII
Char Hex значение Пробел 20 ! 21 " 22 # 23 $ 24 % 25 & 26 ' 27 ( 28 ) 29 * 2а + 2b , 2c - 2d . 2e / 2f 0 30 1 31 2 32 3 33 4 34 5 35 6 36 7 37 8 38 9 39 : 3а ; 3B 3B 6 3C = 3D > 3E ? 3f @ 40 41 B 42 С 43 D 44 Е 45 F 46 G 47 Н 48 Я 49 J 4а К 4b л 4c М 4d Н 4e О 4f Р 50 В 51 R 52 S 53 T 54 U 91 55 V 56 Вт 57 Х 58 Да 59 Z 5а [ 5b \ 5в ] 5d ^ 5e _ 5f ` 60 61 б 62 с 63 д 64 е 65 F 66 г 67 h 68 i 69 j 6a 1 6b 1 k 2л 6c м 6d н 6e О 6f р 70 кв 71 г 72 сек 73 т 74 U 75 против 76 ж 77 X 78 78 Y 79 Z 7A { 7b | 7c } 7d ~ 7e URL Encode Decode — Процентное кодирование и декодирование URL.
Используйте указанный выше онлайн-инструмент для кодирования или декодирования строки текста. Для всемирной интероперабельности URI должны быть закодированы единообразно. Чтобы сопоставить широкий диапазон символов, используемых во всем мире, с примерно 60 разрешенными символами в URI, используется двухэтапный процесс:
- Преобразование строки символов в последовательность байтов с использованием кодировки UTF-8
- Преобразование каждого байта, который не является буквой или цифрой ASCII, в %HH, где HH — шестнадцатеричное значение байта
Например, строка: François ,будет закодирована как: Fran%C3%A7ois
(«ç» кодируется в UTF-8 как два байта C3 (hex) и A7 (hex), которые затем записываются как три символа «%c3» и «%a7» соответственно.) Это может сделать URI довольно длинным (до 9 символов ASCII для одного символа Unicode), но цель состоит в том, чтобы браузерам нужно было только для отображения декодированной формы, и многие протоколы могут отправлять UTF-8 без экранирования %HH.
Что такое кодировка URL?
Кодирование URL-адреса означает кодирование определенных символов в URL-адресе путем замены их одним или несколькими триплетами символов, состоящими из символ процента "
%", за которым следуют две шестнадцатеричные цифры.Две шестнадцатеричные цифры триплета(ов) представляют числовое значение замененного символа.Термин URL-кодирование немного неточен, поскольку процедура кодирования не ограничивается URL-адреса (унифицированные указатели ресурсов), но также могут применяться к любым другие URI (унифицированные идентификаторы ресурсов) такие как URN (унифицированные имена ресурсов). Следовательно, следует отдать предпочтение термину процентное кодирование.
Допустимые символы в URI: зарезервированы или незарезервированы (или символ процента как часть процентного кодирования). Зарезервированные символов — это те символы, которые иногда имеют особое значение, а незарезервированных символов не имеют такого значения. значение. Используя процентное кодирование, символы, которые в противном случае были бы запрещены, представляются с использованием разрешенных символов. Наборы зарезервированных и незарезервированных символов и обстоятельства, при которых определенные зарезервированные символы имеют особое значение. немного менялись с каждым пересмотром спецификаций, которые управляют URI и схемами URI.
В соответствии с RFC 3986 символы в URL-адресе должны быть взяты из определенного набора незарезервированных и зарезервированных символов ASCII. Любые другие символы не допускаются в URL.
Незарезервированные символы могут быть закодированы, но не должны быть закодированы. Незарезервированные символы:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЫЭЮЯ 0 1 2 3 4 5 6 7 8 9 - _ . ~Зарезервированные символы должны кодироваться только при определенных обстоятельствах.Зарезервированные символы:
! * ' ( ) ; : @ & = + $ , / ? % # [ ]RFC 3986 не определяет, в соответствии с каким символом таблица кодирования символов, отличных от ASCII (например, умлауты ä, ö, ü), должна быть закодирован. Поскольку URL-кодирование включает пару шестнадцатеричных цифр, а пара шестнадцатеричных цифр эквивалентна 8 битам, теоретически можно использовать одну из 8-битных кодовых страниц для символов, отличных от ASCII (например,г. ISO-8859-1 для умлаутов).
С другой стороны, поскольку многие языки имеют свою собственную 8-битную кодовую страницу, обработка всех этих различных 8-битных кодовых страниц была бы довольно сложной задачей. хлопотное дело. Некоторые языки даже не вписываются в 8-битную кодовую страницу (например, китайский). Следовательно, RFC 3629 предлагает использовать Таблица кодировки символов UTF-8 для символов, отличных от ASCII. Следующий инструмент учитывает это и предлагает выбрать между таблицей кодировки символов ASCII и символом UTF-8. кодировочная таблица.Если вы выберете таблицу кодировки символов ASCII, появится предупреждающее сообщение, если URL-адрес кодирует/декодирует текст . содержит символы, отличные от ASCII.
При отправке данных, введенных в HTML-формы, имена и значения полей формы кодируются и отправляются на сервер в Сообщение HTTP-запроса с использованием метода GET или POST или, исторически, по электронной почте. Кодировка, используемая по умолчанию, основана на очень ранней версии. общих правил процентного кодирования URI с рядом модификаций, таких как нормализация новой строки и замена пробелов с «
+» вместо «%20».Тип данных MIME, закодированных таким образом, —application/x-www-form-urlencoded, и в настоящее время он определен (все еще очень устаревшим образом) в спецификациях HTML и XForms. В дополнение Спецификация CGI содержит правила того, как веб-серверы декодируют данные этого типа и делают их доступными для приложений.При отправке в запросе HTTP GET данные application/x-www-form-urlencoded включаются в компонент запроса URI запроса. При отправке в запросе HTTP POST или по электронной почте данные помещаются в тело сообщения, а имя типа мультимедиа включается в заголовок сообщения Content-Type.
.
