Расшифровка 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

Вставить шестнадцатеричные числа или удалить файл

Кодировка символов ASCIIUnicodeUTF-8UTF-16UTF-16 с прямым порядком байтовUTF-16 с прямым порядком байтовОкна-1252Big5 (китайский)CP866 (русский)EUC-JP (японский)EUC-KR (корейский)GB 18030 (китайский)GB 2312 (китайский)ISO-2022-CN (китайский)ISO-2022-JP (японский)ISO-8859-1 (Latin1 / Западноевропейский)ISO-8859-2 (Latin2 / Восточноевропейский)ISO-8859-3 (Latin3 / Южноевропейский)ISO-8859-4 (Latin4 / Северо-Европейский)ISO-8859-5 (латиница / кириллица)ISO-8859-6 (латинский / арабский)ISO-8859-7 (латинский / греческий)ISO-8859-8 (латиница / иврит)ISO-8859-8-I (латиница / иврит)ISO-8859-10 (Latin6 / Nordic)ISO-8859-13 (Latin7 / Baltic Rim)ISO-8859-14 (Latin8 / кельтский)ISO-8859-15 (Latin9 / Западноевропейский)ISO-8859-16 (Latin10 / Юго-Восточная Европа)КОИ8-Р (Русский)КОИ8-У (украинский)Macintosh (x-mac-roman)Кириллица Mac OS (x-mac-cyrillic)Shift JIS (японский)Windows-874 (тайский)Windows-1250 (Восточноевропейская)Windows-1251 (кириллица)Windows-1252 (западноевропейская)Windows-1253 (греческий)Windows-1254 (Турецкий)Windows-1255 (иврит)Windows-1256 (арабский)Окна-1257 (Прибалтика)Windows-1258 (вьетнамский)X-пользовательский

autorenew Перерабатывать clear Сброс настроек swap_vert Замена

content_copy Копировать

save_alt Сохранить

Конвертер ASCII в шестнадцатеричный ►

Кодировка текста ASCII использует фиксированный 1 байт для каждого символа.

Кодировка текста UTF-8 использует переменное количество байтов для каждого символа. Это требует разделителя между каждым шестнадцатеричным числом.

Как преобразовать шестнадцатеричный код в текст

Преобразуйте шестнадцатеричный код ASCII в текст:

  1. Получить шестнадцатеричный байт
  2. Преобразовать шестнадцатеричный байт в десятичный
  3. Получить символ кода ASCII из таблицы ASCII
  4. Продолжить со следующего байта
пример

Преобразовать шестнадцатеричный код 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 в текст?

  1. Получить шестнадцатеричный байтовый код
  2. Преобразовать шестнадцатеричный байт в десятичный
  3. Получить символ десятичного кода ASCII из таблицы ASCII
  4. Продолжить со следующего шестнадцатеричного байта

Как использовать конвертер текста из шестнадцатеричного в ASCII?

  1. Вставьте шестнадцатеричные байтовые коды в текстовое поле ввода. 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
    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-редакторы помогают проанализировать любой файл, возможно:

    1. работать с дисковыми образами;
    2. редактировать разделы;
    3. изменять содержимое ОЗУ;
    4. изменять виртуального адресного пространства процесса и прочее.

    К примеру, утилиты подобного типа используют в разработке ПО. Когда необходимо внести данные уже после компиляции программы, но перекомпилировать ее не хочется. Любой код программы можно изменить с помощью 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-99990000 до 270EЧтение-записьDiscrete Output CoilsDO
    10001-199990000 до 270EЧтениеDiscrete Input ContactsDI
    30001-399990000 до 270EЧтениеAnalog Input RegistersAI
    40001-499990000 до 270EЧтение-записьAnalog Output Holding RegistersAO

    В сообщении 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 integer0 до 65535AE4144,609
    16-bit signed integer-32768 до 32767AE41-20,927
    two character ASCII string2 знакаAE41® A
    discrete on/off value0 и 100010001
    32-bit unsigned integer0 до 4,294,967,295AE41 56522,923,517,522
    32-bit signed integer-2,147,483,648 до 2,147,483,647AE41 5652-1,371,449,774
    32-bit single precision IEEE floating point number1,2·10−38 до 3,4×10+38AE41 5652-4.395978 E-11
    four character ASCII string4 знакаAE41 5652® A V R

    Наверх к оглавлению

    Какие бывают команды Modbus RTU?

    Приведем таблицу с кодами функций чтения и записи регистров Modbus RTU.

    Код функцииЧто делает функцияТип значенияТип доступа
    01 (0x01)Чтение DORead Coil StatusДискретноеЧтение
    02 (0x02)Чтение DIRead Input StatusДискретноеЧтение
    03 (0x03)Чтение AORead Holding Registers16 битноеЧтение
    04 (0x04)Чтение AIRead Input Registers16 битноеЧтение
    05 (0x05)Запись одного DOForce Single CoilДискретноеЗапись
    06 (0x06)Запись одного AOPreset Single Register16 битноеЗапись
    15 (0x0F)Запись нескольких DOForce Multiple CoilsДискретноеЗапись
    16 (0x10)Запись нескольких AOPreset Multiple Registers16 битноеЗапись

    Наверх к оглавлению

    Как послать команду 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Контрольная сумма CRC0EЗначение регистра DO 51-44 (0000 1110)
    84Контрольная сумма CRC1BЗначение регистра DO 56-52 (0001 1011)
    45Контрольная сумма CRC
    E6Контрольная сумма CRC

    Состояния выходов DO 27-20 показаны как значения байта CD hex, или в двоичной системе 1100 1101.

    В регистре DO 56-52 5 битов справа были запрошены, а остальные биты заполнены нулями до полного байта (0001 1011).

    КаналыDO 56DO 55DO 54DO 53DO 52
    Биты00011011
    Hex1B

    Модули с дискретным выводом: 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Контрольная сумма CRC20Контрольная сумма CRC
    A9Контрольная сумма CRC18Контрольная сумма 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Контрольная сумма CRC52Значение регистра Lo #40109
    87Контрольная сумма CRC43Значение регистра 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Контрольная сумма CRCF4Контрольная сумма 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Контрольная сумма CRC4EКонтрольная сумма CRC
    8BКонтрольная сумма CRC8BКонтрольная сумма 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Контрольная сумма CRC9AКонтрольная сумма CRC
    9BКонтрольная сумма CRC9BКонтрольная сумма 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 4000298Контрольная сумма 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 0001129 (81 hex) 1000 0001
    02 (02 hex) 0000 0010130 (82 hex) 1000 0010
    03 (03 hex) 0000 0011131 (83 hex) 1000 0011
    04 (04 hex) 0000 0100132 (84 hex) 1000 0100
    05 (05 hex) 0000 0101133 (85 hex) 1000 0101
    06 (06 hex) 0000 0110134 (86 hex) 1000 0110
    15 (0F hex) 0000 1111143 (8F hex) 1000 1111
    16 (10 hex) 0001 0000144 (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
    2 3
    0 4 4 5 6 7 8 9 10 11 12 13 14 15
    01 00 00 00 С2 02 73 ФЭ 00 00 08 00 45 С0
    00 00 00 00 00 02 58 CD 00 00 02 Э0 00
    00 02 05 ЕЕ 68 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 64 00 01 00 01 00 01 00 00 00
    00 00 04 00 08 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-битного числа, существует огромное количество возможных значений.

    4294967296 1.84e19
    Биты Значения
    8 256
    16 65535
    32
    64
    128 3.4e38

    Количество потенциальных значений может иметь значение при расчете пространства поиска для проведения атак методом полного перебора.

    Хотя в байте 256 значений, значения обычно начинаются с 0. Таким образом, диапазон составляет 0–255, охватывающий все 256 значений.

    Двоичные данные могут кодировать информацию во многих различных формах. Ниже приведены все представления одних и тех же данных

    .
    • 01000001 (двоичный)
    • 65 (десятичный)
    • 41 (шестнадцатеричный)
    • A (ASCII или текст)
    • QQ== (основание 64, способ кодирования двоичного кода в виде текста)
    7
  2. Ну, вместо того, чтобы каждая цифра представляла 10 значений (0-9, как в десятичной системе), каждая цифра представляет 16 значений (0-15).4 = 16).Чтобы представить байт, нам нужно использовать 2 шестнадцатеричных цифры, таких как D4 или 8E.

    Мы будем часто использовать префикс 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 003146524144B21800740A000000B21800D7439AF90A51B

      19B

    Ведущий этой страницы не связан с lora-packet.Смотрите и помечайте https://github.com/anthonykirby/lora-packet.

    Онлайновый декодер шестнадцатеричного кода в строку

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

    См. также

    1. Строка онлайн в шестнадцатеричный кодировщик

    Дополнительные примечания

    1. Убедитесь, что в поле ввода нет лишней новой строки.
    2. Шестнадцатеричная кодировка
    3. может использоваться в форме html, где данные могут содержать специальные символы/слова.Иногда эти специальные символы/слова блокируются браузерами.

    Шестнадцатеричное значение для печатаемых символов ASCII

    6 U 91 55 1 6b 1 k 2
    Char Hex значение
    Пробел 20
    ! 21
    " 22
    # 23
    $ 24
    % 25
    & 26
    ' 27
    ( 28
    ) 29
    *
    + 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
    :
    ; 3B 3B
    3C
    = 3D
    > 3E
    ? 3f
    @ 40
    41
    B 42
    С 43
    D 44
    Е 45
    F 46
    G 47
    Н 48
    Я 49
    J
    К 4b
    л 4c
    М 4d
    Н 4e
    О 4f
    Р 50
    В 51
    R 52
    S 53
    T 54
    V 56
    Вт 57
    Х 58
    Да 59
    Z
    [ 5b
    \
    ] 5d
    ^ 5e
    _ 5f
    ` 60
    61
    б 62
    с 63
    д 64
    е 65
    F 66
    г 67
    h 68
    i 69
    j 6a
    л 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.

Добавить комментарий

Ваш адрес email не будет опубликован.