UTF-16LE
UTF-16 (англ. Unicode Transformation Format ) в информатике — один из способов кодирования символов из Unicode в виде последовательности 16-битных слов. Символы с кодами меньше 0x10000 ( 2 16 ) представляются как есть, а символы с кодами 0x10000–0x10FFFE — в виде последовательности двух 16-битных слов, первое из которых лежит в диапазоне 0xD800–0xDBFF, а второе — 0xDC00–0xDFFF. Легко видеть, что имеется как раз 2 10 * 2 10 = 2 20 таких комбинаций.
| DC00 | … | DFFE | DFFF | |
|---|---|---|---|---|
| D800 | 010000 | … | 0103FE | 0103FF |
| D801 | 010400 | … | 0107FE | 0107FF |
| … | … | |||
| DBFF | 10FC00 | … | 10FFFE | |
Следует отметить, что по стандарту никакие символы не могут иметь коды собственно из диапазона 0xD800–0xDFFF (отмечены рыжим и голубым цветами на диаграмме), так что расшифровка кодировки всегда однозначна. Впрочем, в подавляющем большинстве случаев текст в UTF-16 является просто последовательностью символов из UCS-2 (BMP), т.к. символы Unicode после кода 0x10000 используются крайне редко.
UTF-16LE и UTF-16ВE
Т.к. в современных компьютерах размер байта равен 8 битам, то один «байт» кодировки UTF-16 приходится представлять последовательностью двух 8-битных байтов. Который из двух идёт впереди, старший или младший, зависит от порядка байтов. Систему, совместимую с процессорами UTF-16LE ( little endian ), а с процессорами m68k и UTF-16ВE ( big endian ).
UTF-16 в ОС Windows
Основная статья: Юникод в Microsoft Windows
В API Win32, распространённом в современных версиях операционной системы Microsoft Windows, имеется два способа представления текста: в форме традиционных 8-битных кодовых страниц, и в виде UTF-16.
В файловых системах FAT с поддержкой длинных имён, имена файлов записываются в UTF-16LE.
Ссылки
Wikimedia Foundation . 2010 .
Кодировка/расшифровка файла
Делал тут одно очень интересное задание. Оно представлено было в виде 4-ех файлов с расширением .rar, которые не открывались и были «повреждены». Решил подумать в чем тут дело. Пришла только одна мысль — поменять расширение. Среди этих четырех файлов был файл с названием description.rar, расширение которого я потом изменил на .txt. В последствии, открыв его, он мне выдал следующее:
곹쪱ʫ븻춫춦춫춫춫ꊤﴻ쪫춁カ춟쾫䈣湝菠ﺶ춠춋춫곿ꛘ曆ꦅ껄췓⤛풿Ყ᳧趾첾䘼듦䲞깆埽恪ᬍꒈ綍鏸̜遾馜∁猷癶⋗ꍋ惜毥嗢庐ꆯ팾䶯췪쒉銨ⳬ霩햓䖋ﶫ▬䶥 袼䶛鹔ﱖᖤ填ᜤ阱ꓢᲖ䰆괒刊ﭸ즣¬즫㊪窖瑸훸ث闛亱챾か騦䀱蓵뺖𥳐ඹછ칳궡䰹끻꺒ꩊꔇ韫냊ⓜᱯঢ়肕턷撑䩣鷓ﱙ巎剧ﺐ棷녂䛳什⼘뇐㯏걥꧈➆척튇甁༠엥壡堷� ⛸㢫訸旯혻䛶튭ທ베慝㲈ᮬᵭ狌㒮ὡ
и так далее (там больше 5000 слов, как я понял). Проверив гугл-переводчиком я точно выяснил, что это не какой-либо язык азиатского происхождения. Заметив, что кодировка у текстового документа стоит необычная — UTF-16 LE, я перекодировал её в UTF-8, но результат остался тем же.
Так вот, может кто-нибудь знает как хотя бы данный фрагмент расшифровать? И нормально вообще подобное, например, для .rar файлов после изменения их расширения на .txt (а то возможно я вообще не в ту сторону шел).
p.s. Модеры простите, нужного раздела под подобное я не нашел.
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Расшифровка логов сбоя
В консоли разработчика PlayMarket отображаются логи сбоя. com.myapplication.MainActivity.onCreate.
Кодировка и расшифровка текста
помогите,пожалуйста,кто может. программа на тему "Шифрующая таблица". Файл шифрует,но шифрует не.
Расшифровка файла
Друзья, добрый день. Есть некий файл. Предположительно там текстовая информация. Можно его как-то.

Расшифровка файла
Привет.Ребят, помогите пожалуйста расшифровать 1 маленький файлик.Прикрепил его к посту.Очень нужно.
Расшифровка файла
Помогите расшифровать файл install.dat. Файл создается после установки FreeFileSync. Без этого.
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Расшифровка файла
Здравствуйте форумчане, нужна ваша помочь. У меня есть зашифрованый txt файл (с вопросами для.
Расшифровка бинарного файла
Необходимо расшифровать бинарный файл в Си (расширение bin). Из начальный данных имеется только сам.
Расшифровка и зашифровка файла
Есть файл с базой "base.mdb" Его нужно зашифровать, чтобы он не открывался через access Далее.
Расшифровка текстового файла
Многоуважаемые форумчане! Пожалуйста помогите с этим заданием, препод зверь, сказал за 2 дня.
Расшифровка текстового файла
Помогите с расшифровкой.Конфиг игры в формате txt. возможно бинарник. Есть ли какой нибудь способ.
Расшифровка .pak файла
Нашел интересное приложение которое запаковывает ресурсы в .pak файл. Как моя допустим игра сможет.
Какие кодировки работают в XML
Спецификация обязывает парсеры понимать две кодировки: UTF-8 и UTF-16. Парсеры поддерживают больше, но для атаки хватит и этих.
UTF-8 и UTF-16 отображают одни и те же символы — из таблицы Юникода.
Разница между кодировками в том, как они хранят номер символа.
UTF-8
Один символ — от одного до четырех байт.
Код символа хранится по шаблону:
| Количество байт | Значащих бит | Бинарный код |
| 1 | 7 | 0xxxxxxx |
| 2 | 11 | 110xxxxx 10xxxxxx |
| 3 | 16 | 1110xxxx 10xxxxxx 10xxxxxx |
| 4 | 21 | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx |
Кодировать символы избыточно нельзя. Самый короткий способ — верный.
UTF-16
Один символ — два или четыре байта.
Код символа хранится по шаблону:
| Количество байт | Значащих бит | Бинарный код |
| 2 | 16 | xxxxxxxx xxxxxxxx |
| 4 * | 20 | 110110xx xxxxxxxx 110111xx xxxxxxxx |
* Из кода предварительно вычитается 0x010000
Запись символа с помощью 4-х байт называется суррогатной парой. Пара состоит из двух обычных символов, но из зарезервированного диапазона: от U+D800 до U+DFFF. Половинки пары сами по себе недействительны.
UTF-16 бывает двух видов: UTF-16BE и UTF-16LE (big-endian / little-endian). В них разный порядок байт.
Big-endian — «естественный» порядок байт, как у арабских цифр.
Little-endian — обратный порядок байт.
Примеры записи символов в UTF-16BE и UTF-16LE
| Кодировка | Символ | Бинарный код |
| UTF-16BE | U+003F | 00000000 00111111 |
| UTF-16LE | U+003F | 00111111 00000000 |
| UTF-16BE * | U+1D6E5 | 11011000 00110101 11011110 1100101 |
| UTF-16LE * | U+1D6E5 | 00110101 11011000 11100101 11011110 |
* В четырех-байтовых символах группы из 2-х байт переворачиваются отдельно. Это сделано для обратной совместимости с Unicode 1.0, где все символы состояли только из двух байт.
Как парсеры определяют кодировку
Парсеры определяют кодировку четырьмя способами:
Внешняя информация о кодировке
В некоторых сетевых протоколах есть специальное поле для кодировки:

Передача кодировки в протоколе WebDav
Чаще всего это протоколы, которые построены по стандарту MIME: например SMTP, HTTP и WebDAV.
Byte Order Mark (BOM)
BOM — символ с кодом U+FEFF.
Если парсер найдет его в начале, то он определит кодировку по тому, как он записан.
Популярные кодировки и их BOM
| Кодировка | BOM | Пример | |
| UTF-8 | EF BB BF | EF BB BF 3C 3F 78 6D 6C | . |
| UTF-16BE | FE FF | FE FF 00 3C 00 3F 00 78 00 6D 00 6C | . <. x.m.l |
| UTF-16LE | FF FE | FF FE 3C 00 3F 00 78 00 6D 00 6C 00 | .. <. x.m.l. |
BOM работает только в начале документа. В середине он считывается как специальный пробел или вызывает ошибку.
По первым символам документа
Спецификация разрешает парсеру взглянуть на первые четыре байта и определить кодировку по ним:
| Кодировка | Начало документа | |
| UTF-8 ISO 646 ASCII |
3C 3F 78 6D | |
| UTF-16BE | 00 3C 00 3F | . |
| UTF-16LE | 3C 00 3F 00 |
Это работает только для документов, которые начинаются с декларации XML.
Из декларации XML
Кодировку можно задать в декларации XML:
Декларация XML — строка, которую пишут в самое начало. По ней парсер понимает, в каком формате составлен документ.
Документ в кодировке ISO-8859-1
Чтобы прочитать декларацию, парсер, по-видимому, уже должен знать кодировку. Но декларация полезна для уточнения между схожими кодировками: например, между совместимыми с ASCII.
Стандартный обход WAF
Самый простой вариант — сменить кодировку на несовместимую с ASCII и надеяться, что WAF ее не поймет.
Этот способ работал на конкурсе WAF Bypass в 2015 году. Там от участников требовалось прочитать флаг через уязвимость XXE:
Запрос на эксплуатацию XXE с конкурса
POST / HTTP/1.1 Host: d3rr0r1m.waf-bypass.phdays.com Connection: close Content-Type: text/xml User-Agent: Mozilla/5.0 Content-Length: 166 %xxe; ]> test
Один из вариантов решения — перекодировать тело запроса в UTF-16BE без BOM:
cat original.xml | iconv -f UTF-8 -t UTF-16BE > payload.xml
В этом документе WAF не видел опасности и пропускал запрос.
Обход с помощью двух кодировок
Ещё один способ запутать WAF — закодировать XML сразу в две кодировки.
Когда парсер читает кодировку из декларации, он тут же на нее переключается. Даже если она несовместима с кодировкой, в которой записана сама декларация.
Если составить документ и декларацию в разных кодировках, то WAFы ничего не поймут.
Xerces2 Java Parser
Декларация — в ASCII, затем UTF-16BE:
| 00000000 | 3C3F 786D 6C20 7665 7273 696F 6E3D 2231 | .. |
| 00000030 | 3100 3300 3300 3700 3C00 2F00 6100 3E | 1.3.3.7.<./.a.> |
Команды для формирования:
echo -n '' > payload.xml echo '1337' | iconv -f UTF-8 -t UTF-16BE >> payload.xml
libxml2 переключает кодировку сразу же, как прочитает атрибут. Поэтому, кодировку меняем ещё до закрытия декларации:
| 00000000 | 3C3F 786D 6C20 7665 7273 696F 6E3D 2231 | . |
| 00000030 | 3E00 3100 3300 3300 3700 3C00 2F00 6100 | >.1.3.3.7. <./.a. |
| 00000040 | 3E | > |
Команды для формирования:
echo -n ' payload.xml echo '?>1337' | iconv -f UTF-8 -t UTF-16BE >> payload.xml
Utf 16le как расшифровать
Доброго времени суток, товарищи!
У меня проблема:
Начал писать программу. За исходник решил взять некоторые элементы из сторонней программы(в ней все необходимые для разработки и модификации функции имеются), но одно но.
Программа была написана на NET, файлы в обычном текстовом формате и в формате *cfg. Все бы да ничего, но кодировка там — utf-16. Выдает кракозябры, а при декодировании набор Японских иероглифов.
С данным вопросом сталкиваюсь впервые.
Если есть сведущие умы в перекодировке, подскажите программы, или какие либо плагины для того же, например нотепада++, что бы расшифровать, отредактировать и сохранить в нужном мне формате файл.
файл пример прилагается
Вложения
| 11221.txt (208.0 Кб, 128 просмотров) |
Последний раз редактировалось сергей сгб; 26.04.2012 в 00:03 .
| сергей сгб |
| Посмотреть профиль |
| Найти ещё сообщения от сергей сгб |
Регистрация: 28.01.2009
Сообщений: 20,999
файл точно не зашифрован?
посмотрел начало файла, слишком много нолей, файл точно не текстовый уже.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Последний раз редактировалось Пепел Феникса; 26.04.2012 в 00:13 .
| Пепел Феникса |
| Посмотреть профиль |
| Найти ещё сообщения от Пепел Феникса |