как расшифровать hex код
FoxTools v.2.0
Привет, Гость! Ваш IP: 5.188.119.3
Обработка шестнадцатеричных данных (HEX)
Что такое HEX?
Шестнадцатеричная система счисления (HEX) – это позиционная система счисления по целочисленному основанию 16. В качестве шестнадцатеричных чисел используются цифры от 0 до 9 и латинские буквы от A до F. Значения чисел от 0 до 9 обычны, как и в десятичной системе, далее, от 10 до 16 используются буквы A-F, т.е. буква F = 16, далее 11 = 17, 12 = 18 и т.д и т.п.
Как текст или как число?
Режим кодирования/декодирования «как текст» переводит текст кусками. При кодировании в HEX каждый символ будет преобразован в двухразрядное шестнадцатеричное представление ASC-кода символа. При декодировании, система будет считывать по два символа и преобразовывать их в ASC-код, а затем в соответствующий символ.
Например, если преобразовать число 65535 в HEX в этом режиме, то получится: 3635353335.
Режим кодирования/декодирования «как число» переводит указанный текст весь целиком за один раз, как единое число. Если указанный для кодирования текст невозможно преобразовать в число, то произойдет ошибка.
Например, если преобразовать число 65535 в HEX в этом режиме, то получится: FFFF.
Что такое шаблон подстановки?
Шаблон подстановки предназначен для здания формата вывода шестнадцатеричных данных при кодировании. Это може быть полезно при внедрении шестнадцатеричных данных в программный код.
В шаблоне можно использовать следующие команды: — порядковый номер конвертируемого байта (начиная с нуля); — шестнадцатеричный код байта. Другие символы останутся без изменений.
Например, при шаблоне arr[
Форматы HEX
В разных языках программирования и технологиях используются разные форматы представления шестнадцатеричных чисел (hex).
Обратите отдельное внимание на SQL. В отличие от Си, данные для SQL кодируются одной строкой. Например, строка: «Привет, хитрый мир!«, в Си будет кодирована в: 0xCF0xF00xE80xE20xE50xF20x2C0x200xF50xE80xF20xF00xFB0xE90x200xEC0xE80xF00x21, а в SQL: 0xCFF0E8E2E5F22C20F5E8F2F0FBE920ECE8F021
Какую кодировку использовать?
Кодировку актуально использовать при кодировании/декодировании текстовых данных (опция: «как текст»).
При кодировании, если данный содержат русские символы, лучше всего использовать кодировку Windows-1251. Хотя вы можете использовать и любую другую кодировку. Следует помнить, что кодировки бывают однобайтовыми и двухбайтовыми. В двухбайтовых кодировках на один символ приходится два байта и, следовательно, при кодировании в HEX на один символ будет приходиться четыре символа (например: FF [1 байт] FF [2 байт]).
Декодировать текст из шестнадцатеричного вида нужно в той кодировке, которая использовалась при кодировании, иначе текстовые данные могут быть нечитаемыми.
Сайт построен на HTML5
Для корректной работы данного сайта требуется HTML5.
Пожалуйста, воспользуйтесь браузером, который поддерживает HTML5. Многие современные браузеры поддерживают HTML5. Например:
Конвертер текста из шестнадцатеричного в ASCII
Введите шестнадцатеричные байты с любым префиксом / постфиксом / разделителем и нажмите кнопку Convert
(например, 45 78 61 6d 70 6C 65 21):
Кодировка текста ASCII использует фиксированный 1 байт для каждого символа.
Кодировка текста UTF-8 использует переменное количество байтов для каждого символа. Это требует разделителя между каждым шестнадцатеричным числом.
Как преобразовать шестнадцатеричный код в текст
Преобразуйте шестнадцатеричный код 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?
Как преобразовать шестнадцатеричный код в английский?
Как преобразовать 41 шестнадцатеричный формат в текст?
Используйте таблицу ASCII:
41 = 4 × 16 ^ 1 + 1 × 16 ^ 0 = 64 + 1 = 65 = символ ‘A’
Как преобразовать 30 шестнадцатеричных чисел в текст?
Используйте таблицу ASCII:
30 = 3 × 16 ^ 1 + 0 × 16 ^ 0 = 48 = символ ‘0’
Учимся считать в hex, или реверс-инженеринг будильника
Введение
Недавно у меня появилась мысль научиться считать в шестнадцатеричной системе счисления. Так как я человек ленивый, такие способы, как выучить таблицу умножения меня не устраивали. Немного поразмыслив, я вспомнил, что каждое утро решаю (иногда несколько раз) несложный пример, чтобы отключить будильник. Помогает слабо, со временем я начал решать почти не просыпаясь. Так почему бы не совместить полезное с полезным?
Осталось выбрать способ реализации. Так как я не имею не малейшего представления о разработке под андроид (да и вообще с Java не сильно знаком), да и писать свое приложение ради такой мелочи — это стрельба из пушки по воробьям, было решено модифицировать уже имеющийся будильник.
Под катом вы найдете описание инструментов, процесса и результата перевода примера в hex. А также объяснение синтаксиса smali кода (язык опкодов для виртуальной машины dalvik). Картинок почти нет, буков много.
Получение читабельного кода
Итак, берем файл нашего приложения (в моем случае это AlarmDroid) и разархивируем его. Есть много способов сделать это, я пользовался Apk Manager, о котором я еще напишу чуть ниже. Далее нужно конвертировать classes.dex в jar. Для этого есть dex2jar. Перетаскиваем файл на dex2jar.bat. Теперь нужно научиться читать получившийся jar файл. Используем для этого программу jd-gui (кстати есть одноименный плагин для Eclipse).
Итак мы получили почти читаемый код, хотя кое-где декомпилятор явно плющит.
Первая кровь
Для начала неплохо было бы сделать генерацию чисел не до 10, а до 15. Изучаем код, и находим метод генерации примера. Поискать его придется, классов в деревьях много. Но так как названия методов сохранились, это не очень сложно.
Находим искомый метод в классе RingerActivity.
Ну вроде все, просто: генерируем 3 числа и 2 знака, и кладем результат в this.x (это нам, кстати, пригодится).
Теперь находим этот же метод в smali-коде (к сожалению в онлайне нету хайлайтеров smali кода, а свой писать лениво, поэтому код будет скринами).
(Код метода продолжается дальше)
Код непонятный, но явно видно что константы задаются один раз в начале. Поэтому меняем 0xa на 0xf и пытаемся увидеть изменения, чтобы знать что мы на верном пути. С помощью Apk Manager собираем, подписываем, перекачиваем на телефон (можно тестировать на эмуляторе, если установлен Android SDK), устанавливаем, ставим будильник на минуту вперед, ждем, смотрим. Эту процедуру придется повторять большое количество раз. Числа на экране увеличились, ошибок не возникает. Отлично! Теперь самое время немного разобраться в непонятном smali коде.
Разбираемся в smali коде
В общем-то все довольно хорошо описано вот тут, я лишь вкратце и по-русски перескажу.
Типы, методы, поля
Lpackage / name / ObjectName ;-> MethodName ( III ) Z
method ( I [ [ IILjava / lang / String ; [ Ljava / lang / Object ; ) Ljava / lang / String ;
Lpackage / name / ObjectName ;-> FieldName : Ljava / lang / String ;
Здесь в общем-то все и так ясно.
Регистры
В smali коде все регистры 32 битные и могут содержать любой тип значений. Для 64 битных значений используются 2 регистра.
Определение количества регистров в методе
Передача параметров
в него, помимо двух интов, передается LMyObject; перед обоими интами, и получается, что в методе 3 параметра. И если вы задали общее количество регистров в методе 5 (или локальное количество 2), то в v2 попадет объект, в v3 — первый инт, в v4 — второй.
Именование регистров
Есть 2 схемы именования регистров: общая v-схема, и p-схема для регистров параметров. В вышеизложенном примере у нас будут 5 общих регистров v0-v4, и 3 регистра параметров p0-p2, причем как было сказано выше p0 и v2 (а также p1 и v3, p2 и v4) обозначают один и тот же регистр.
В общем есть еще некоторые тонкости, но нам для изменения будильника они не важны.
Перевод примера в hex
для всех трех чисел.
Изменение поля ввода
и тут тоже добавляем перевод в верхний регистр. Собираем, смотрим. Ура! Все работает.
Заключение
Скоро сказка сказывается, да не скоро дело делается. Из-за отсутствия дебаггера, тестирование очень сложно, для того чтобы запустить приложение и проверить его работоспособность требуется пара минут, и много надоедающих действий.
Также очень хотелось переделать цифровую раскладку моей любимой клавиатуры Swype для ввода в hex. Но их зашифрованные файлы раскладок стали для меня неодолимым препятствием. =(
Вот финальная версия будильника. К сожалению обновляться после модификации он перестал. Ну да мне и нынешнего функционала хватает.
Спасибо за внимание, буду рад любой критике!
HEX-код что это и как работает для обозначения цветов
Работа с цветом — это основной инструмент графического и веб-дизайнера. Каждое приложение и сайт подразумевает использование собственных оттенков, даже если выбран максимально лаконичный стиль.
На этапе создания макетов подсказки по выбору цветовой гаммы есть во многих редакторах, та же компания Adobe предлагает для своих продуктов основные виды гармоний:
Но при переносе цветов в веб-интерфейс потребуются специальные коды. Они есть у каждого оттенка, обозначаются шестизначным номером через знак «решетки». Например, код #000000 — это черный цвет.
Это и есть HEX-коды, комбинации определенных букв и цифр, которые «объясняют» виртуальному интерфейсу, какой именно оттенок нужно передать.
Что такое HEX-коды и как они формируются
HEX-коды подходят для определения практически любого тончайшего нюанса между цветами и переходами. Слово HEX происходит от hexadecimal — в переводе с английского языка «шестнадцатеричный».
Для кодировки цветовых значений используется шестнадцатеричная система, используемая во многих языках программирования. Принцип формирования HEX-кода:
Принцип сочетания цветов, позволяющий получить новый оттенок, основывается на том, что каждый пиксель экрана передает лучи синего, зеленого и красного цвета. В зависимости от регулировки яркости каждого из них получается то, что нужно.
Как шифруются HEX-коды
После значка «решетки» всего 6 символов. Они помогают попарно кодировать информацию для синего, зеленого и красного сигналов, используя такие принципы:
Если известны RGB-оттенки, то можно просто воспользоваться таблицей и «расшифровать» с использованием шестнадцатеричной системы. Например, белый цвет, который в RGB-системе передается как «255», для HEX-формулы станет «FF».
А по сути «означает», что яркость «выкручивается» на полную мощность, не оставляя «места» никаким нюансам синего, зеленого или красного. Соответственно, черный цвет, который передается нулями, обозначает, что на этот пиксель вообще не подается сигнала.
Можно посмотреть на базовые цвета в чистом виде, если задать характеристики:
Все остальные HEX-коды создают какую-либо комбинацию. Преимуществом кодировки служит то, что с ее помощью можно передать оттенки с высочайшей точностью. Всего доступно 16777216 цветов, что соответствует характеристикам самых «топовых» мониторов или экранов мобильных устройств.
Сокращение HEX-кодов
В ряде случаев «формулы» принято сокращать, используя вместо 6 символов всего 3. Это делается для сокращения оттенков, применяется в веб-программировании, когда важно точно воспроизвести цветовую гамму на всех страницах, не сбиваясь в тонкостях настройки.
Например, если цвет обозначается как #FF22AA — это насыщенный ярко-розовый оттенок, то его можно «упростить» до #F2A.
Написание HEX-кодов не зависит от регистра, поэтому #f2a и #F2A — это одно и то же. Допустимо использовать вперемешку заглавные и строчные буквы.
Сокращенные формулы цветов широко используются при верстке сайтов с использованием языка программирования CSS.
Как узнать HEX-код цвета
Большинство графических редакторов передают цветовые значения и их коды в характеристиках и параметрах. Если брать такие широко используемые программные среды, как Photoshop, Illustrator, Gimp и многие другие, то они сами «подскажут» пользователю шестизначный код.
Если вы работаете в Adobe Photoshop, то посмотреть значение HEX не составит труда. Для этого нужно:
Открыть картинку, из которой собираетесь взять оттенок. Это может быть векторная картинка с «простыми» оттенками или растровое изображение, например, фотография. Выбрать инструмент «Пипетка» или Eyedropper в английской версии.
Если цвет планируется брать со сложного и многоцветного рисунка, можно определить «поле», которое будет «считаться» пипеткой за образец. Для настройки нужно открыть панель «Размер образца» (Sample Size) и установить его по мере необходимости.
Далее нажать на нужную область, а потом дважды щелкнуть на «квадратик» двух основных цветов. По умолчанию эти квадраты черно-белые, но пипетка меняет на образец оттенка, который берется по клику.
В открывшемся меню в самом низу, после «типографских» и других кодов, будет и HEX-код, узнать его можно по характерному символу решетки.
Также можно поставить галочку «только веб-цвета» (Only Web Colors). Это служит для упрощения палитры.
Безопасные WEB-цвета
Сложные оттенки хороши для работ художников или фотографов. Когда нужно передать мельчайшие тонкости цветовой гаммы, продемонстрировать красоту пейзажа или богатство новой модной коллекции, потребуется вся «мощь» оттенков.
Однако веб-цвета не настолько комплексные. Более того, специалисты не рекомендуют использовать слишком «тонкие» переходы и оттенки, потому что во время использования разных браузеров или приложений они могут передаваться по-разному. Старые компьютеры или телефоны вообще не всегда «понимают» некоторые оттенки.
Поэтому для корректного отображения рекомендуется использовать «безопасные» веб-цвета. Основные правила, относящиеся к построению HEX-коду «универсальных» оттенков:
Существуют готовые палитры с кодами и цветовым соответствием, чтобы можно было визуально оценить «безопасный» оттенок и использовать его в своем проекте. Если при верстке планируется задействовать корпоративные цвета компании, разумно будет подобрать наиболее подходящий тон из таких таблиц.
Текстовые наименования
Среда программирования CSS предлагает пойти еще дальше и отказаться от кодов. Она умеет распознавать названия оттенков, поэтому достаточно будет просто прописать цвет в коде, чтобы CSS-язык «объяснил» браузеру, какой оттенок имелся в виду.
Для такого кодирования применяются не только базовые (красный, зеленый, желтый, синий), но и достаточно разнообразные тона, включая хаки, коралл, шоколадный и многие другие. Тем не менее, у такого написания есть минусы:
Поэтому большинство веб-кодеров и других специалистов в области дизайна предпочитают HEX-коды в обычном или сокращенном варианте.
Полезные сайты для работы с HEX-цветами
Помимо приложений, таких как Photoshop, с hex-кодами работают многочисленные веб-сервисы. Они достаточно удобны, поскольку не требуют установки, бесплатны, предоставляют различные дополнительные услуги помимо основной.
Adobe Color
Располагается по адресу: https://color.adobe.com/ru
Русифицированный ресурс, русский язык определяется автоматически, если у вас не отключено распознавание местоположения, системы и другие кукиз.
Также можно посмотреть «тренды» и вдохновиться чужими цветовыми решениями, скачать готовые схемы из библиотеки. Это гораздо быстрее и удобнее, чем с нуля разрабатывать собственное решение.
ColorScheme
Располагается по адресу: https://colorscheme.ru/
Универсальная конвертация цветов. Простой и лаконичный веб-ресурс, ничего лишнего, быстро загружается, интуитивно понятный.
Также на сайте есть названия оттенков автомобилей — специфичная информация, но может кому-нибудь потребоваться, имена цветов для CSS, названия экзотических тонов, среди которых можно найти такие примечательные наименования, как «бабушкины яблоки» или «борода Абдель-Керима».
Color-HEX
Располагается по адресу: https://www.color-hex.com/
Англоязычный ресурс, но разобраться с ним будет несложно даже без знания языка. Позволяет получать внешнее отображение любого HEX-кода, а также его аналоги в большинстве форматов, включая CMYK для типографии или LAB — цветового пространства, которое используют фотографы и фоторетушеры.
Простой и удобный инструмент, крайне полезный для веб-верстки и быстрого подбора необходимых оттенков.
Htmlcolorcode
Располагается по адресу: https://htmlcolorcodes.com
Еще один англоязычный ресурс, предлагающий как основной сервис — преобразование цвета в HEX-код и обратно, так и много дополнительных приятных функций, среди которых:
Ресурс выглядит как несколько урезанная версия аналогичного инструмента от Adobe, но работает хорошо, к тому же быстро загружается.
ColorHexa
Располагается по адресу: https://www.colorhexa.com/
На первый взгляд, это еще один англоязычный ресурс, предлагающий поработать с преобразованием кода HEX в цвет и наоборот.
Но у него есть собственные возможности:
Также здесь есть 216 безопасных цветов и названия оттенков.
HexColorTool
Располагается по адресу: https://www.hexcolortool.com/
Главная особенность этого инструмента – не просто подбор тонов, а возможность отметить какой-либо один, а потом сделать его светлее или темнее.
Это крайне удобно, ведь зачастую весь дизайн строится вокруг одного цвета, меняется только подложка, тени и другие нюансы вокруг базового оттенка. Затемнение или осветление начинается от одного процента, максимум – 20%.
Также можно оценить опции:
Простой визуальный ресурс: он состоит из бегунков и квадрата-образца, поэтому не помешает то, что сайт на английском языке.
Заключение
HEX-коды — это то, что необходимо знать даже дизайнеру, который напрямую не работает с веб-ресурсами и программисту, пишущему код, а не разрабатывающему оформление.
Цветовое решение важно для программных оболочек, приложений, любых сайтов, игр, а удобная шестнадцатеричная система делает самые сложные оттенки, градиенты и переходы доступными для записи с помощью математического отображения.
В результате легко получается объединять творчество, эстетику и конкретные выражения для технической обработки.
Лучшие Hex редакторы, калькуляторы и конвертеры
У людей сложилось мнение, что работать с hex редакторами могут лишь профессионалы своего дела и программисты, а для обывателя это нечто ненужное и непонятное. На деле же это удобный инструмент, который определённо пригодится геймерам и простым пользователям, если необходимо устранить ошибку или баг в утилите. По своей сути – редактор является декодером 16-ричного кода. Мы с вами пользуемся для написания чисел 10-ричным, машина для кодирования всей информации использует 2-ичный код, а затем это всё конвертируется в 16-ричный, чтобы пользователю было проще разбираться. На деле редакторы скорее нужны именно новичкам, ведь профессионалы используют мультифункциональные утилиты с возможностью применения сразу нескольких парадигм, если те необходимы им для программирования. Давайте разберёмся, какие калькуляторы и конверторы лучше всего выбирать.
Hex Editor Neo
Простейший и самый популярный hex редактор в мире, притом с возможностью конвертации кода в другие системы кодировки, а также чтения бинарных файлов системы. Весь функционал Hex Editor Neo заключается в открытие файлов, произведение некоторых изменений и сохранение в том же или другом формате, по желанию пользователя. Однако присутствует одно удобство – история изменений, сохраняющаяся даже после закрытия утилиты. Таки, и не придётся вновь доходить до каких-то своих решений. Они будут м образом, вы можете завтра вернуться к той части кода, что сегодня не успели завершить прямо перед вами на экране. Такой Хекс редактор удобен новичкам и профессионалам.
Бесплатный, но всё ещё достаточно мощный редактор для бинарных файлов поддерживающий основные кодировки, вроде ANSI или ASCII, зачастую используется как дополнение к более функциональным калькуляторам и конверторам. Воспринимает файлы без ограничения размеров, а главное – позволяет изменять оперативную память, сразу же записывая любые нововведения на жёсткий диск. А удобный и эргономичный интерфейс, продуманный создателями, лишний раз упрощает работу пользователя. В HxD Hex Editor нет классического нагромождения инструментов и всё устроено за счёт простой системы шторок, уже за это можно скачать hex редактор.
Один из простых редакторов, подходящих для компьютеров с любым железом. Именно его небольшая требовательность к ресурсам системы и удобный интерфейс, пусть и с некоторым наплывом объектного дизайна Майкрософт начала 2000-х, сделала программу столь популярной в качестве переносного редактора. Если вам необходимо подгрузить утилиту на флешку, а затем уже на месте разобраться с проблемой в коде, то лучшего решения просто не найти, ведь приложение имеет в том числе и портативную версию с ещё меньшими системными требованиями. А также имеется мобильная версия, и вы можете hex workshop скачать прямо на свой смартфон.
Данный hex редактор условно-бесплатен, что значит, за основную часть функционала вам придётся заплатить. Однако, базовое редактирование файлов нескольких форматов и конвертирование из одной системы кодировки в другую – доступны без оплаты. Что позволяет опробовать все прелести редактора абсолютно бесплатно, а уже затем решить, покупать ли его. Основное преимущество – сборная солянка функционала, настолько богатой среды для работы вы больше нигде не найдёте.
Это hex editor скачать стоит в том случае, если вам часто приходится сравнивать несколько файлов между собой, дабы найти ошибку или изменение, внесённое вашим коллегой. Помимо удобного отображения несовпадающих частей, утилита предоставляет также простой функционал обычного редактора и конвертора, а также базовый набор джентльмена в такого рода программах.
Если вам необходимо быстро внести пару изменений в hex код и при этом не заморачиваться лишний раз с установкой приложений, то подойдут и онлайн-редакторы. Однако учитывайте, что их функционал крайне скуден. Вот ссылок на подобные онлайн решения:
В качестве конвертера hex to dec, hex to bin подойдёт любая из вышеописанных утилит. Достаточно загрузить в них файл и выбрать пункт «сохранить как», а там подобрать подходящий формат, и утилита сама преобразует все данные в нужное расширение, после чего вы сможете открыть файл уже подходящего типа.
Также есть и специализированное решение:
Конвертер hex to text или его ещё называют hex decoder необходим для перевода 16-ричного кода в нормальный текст, и зачастую используется лишь новичками, так как профессионалы применяют утилиты с параллельным переводом. Подобный функционал имеется во всех описанных выше продуктах.
Подобный калькулятор онлайн бывает крайне полезен, когда вам нужно быстро совершить расчёты в 16-ной системе исчисления. Вот ссылка на удобный и хороший онлайн Hex калькультор:
Вывод
Выбирайте любую описанную утилиту по желанию или пользуйтесь онлайн-аналогами, если необходимость возникает не часто. hex editor neo – станет лучшим выбором как для новичков, так и для профессионалов.