Файлы и страницы

Многослойный декодер

Работает локальноНовый

Сам инструмент доступен на английском языке; на этой странице приведено его описание на вашем языке.

Используйте Многослойный декодер

Для чего это нужно

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

Приложение работает полностью в браузере: никакие введенные вами данные не передаются на сервер.

Как использовать Многослойный декодер

  1. Вставьте закодированный текст. Вставьте строку в поле Encoded text: Base64-блоб из скрипта, длинную hex-строку, текст в процентном кодировании или список String.fromCharCode.
  2. Декодируйте. Нажмите Decode layers (декодировать слои) или Ctrl+Enter. Каждый распознанный слой снимается по очереди, до 12 слоёв.
  3. Прочитайте цепочку. Заголовок перечисляет слои по порядку. Для каждого шага показаны метод, размер до и после и предпросмотр.
  4. Используйте результат. Скопируйте декодированный текст, посмотрите Indicators in the result или используйте Send to для HTML Attachment Analyzer, Link Unwrapper, IOC Converter или URL Defanger.
  5. Вмешайтесь вручную. Если слой пропущен, выберите метод в Decode as и примените его. Undo last layer возвращает на шаг назад.

Пример

URL-кодированный Base64 от gzip

Ввод
H4sIAAAAAAACA7MpTi7KLCixK8%2FMS8kv18vJT04syczP08soSk1TsFVQyigpKSi20tdPrUjMLchJ1UvOz9UvSy3KTKu0L04tLgYqtTVPM05UsrbRh5oEACvqcc1SAAAA
Результат (зафиксировано 2026-10-20)
3 layers: URL percent-encoding → Base64 → gzip

No further encoding recognised.

1
URL percent-encoding
1 escape · 130 → 128 bytes
H4sIAAAAAAACA7MpTi7KLCixK8/MS8kv18vJT04syczP08soSk1TsFVQyigpKSi20tdPrUjMLchJ1UvOz9UvSy3KTKu0L04tLgYqtTVPM05UsrbRh5oEACvqcc1SAAAA
2
Base64
decodes to gzip · 128 → 96 bytes
00000000  1f 8b 08 00 00 00 00 00  02 03 b3 29 4e 2e ca 2c  |...........)N..,|
00000010  28 b1 2b cf cc 4b c9 2f  d7 cb c9 4f 4e 2c c9 cc  |(.+..K./...ON,..|
00000020  cf d3 cb 28 4a 4d 53 b0  55 50 ca 28 29 29 28 b6  |...(JMS.UP.())(.|
… 48 more bytes
3
gzip
96 → 82 bytes
<script>window.location.href = "hxxps://example[.]com/verify?session=7f3a";</script>
Result

Text, 82 bytes.

<script>window.location.href = "hxxps://example[.]com/verify?session=7f3a";</script>

Indicators in the result (1)
URL
hxxps://example[.]com/verify?session=7f3a
Copy indicators (raw)

Три слоя: процентное URL-кодирование (%2F), Base64, который декодируется в данные gzip, и сам gzip; в итоге — скрипт, который отправляет браузер на https://example.com/verify.

Что проверяется

СигналЧто это означает
Цепочка слоёвКодировки по порядку, например Hex → Base64. Несколько слоёв вокруг короткого URL или команды обычно означают, что кто-то хотел их спрятать.
Размер на каждом шагеБайты на входе и выходе каждого слоя. Сильный рост на слое gzip или deflate — обычная распаковка.
Текст UTF-16LEДва байта на символ, типично для PowerShell -EncodedCommand. Декодированная команда, которая что-то скачивает или запускает, — тревожный сигнал.
Двоичный результатЕсли в итоге получился не текст, показывается hex-дамп первых 512 байт с определённым форматом. Копируйте его как hex или Base64; никогда не запускайте.
Indicators in the result (индикаторы в результате)URL, адреса электронной почты и IPv4-адреса, найденные в декодированном тексте, в обезвреженном виде, с кнопкой для копирования в исходном виде.
Сообщение об остановкеБольше не распознано ни одной кодировки, достигнут предел в 12 слоёв или шаг повторил бы прежний результат. При достижении предела слоёв может быть больше.
Опция обезвреживанияВключена по умолчанию: URL и адреса электронной почты в результате показываются в обезвреженном виде. Copy всегда даёт исходный текст.
Опция продолжения снятия слоёвПосле ручного шага Decode as декодирование продолжается автоматически, если вы не снимете этот флажок.
Список Decode asBase64, URL-безопасный Base64, hex, процентное URL-кодирование, HTML-сущности, escape-последовательности, коды символов, quoted-printable, gzip, zlib, raw deflate и UTF-16LE — для шагов, которые автоматический проход пропускает.
Кнопки копированияCopy даёт декодированный текст как есть. Для двоичного результата вместо этого предлагаются Copy as hex и Copy as Base64.

Еще примеры

Тестовый вектор RFC 4648

Ввод
Zm9vYmFy
Результат

1 слой: Base64, 8 → 6 байт. Результат — текст foobar, значение, опубликованное в RFC 4648.

Hex вокруг Base64 вокруг URL

Ввод
6148523063484d364c793973623264706269356c654746746347786c4c6d356c644339795a584e6c64413d3d
Результат

2 слоя: Hex → Base64 (88 → 44 → 31 байт). Результат — https://login.example.net/reset, показан в обезвреженном виде и указан в Indicators in the result.

Закодированная команда PowerShell

Ввод
UwB0AGEAcgB0AC0AUAByAG8AYwBlAHMAcwAgACcAaAB0AHQAcABzADoALwAvAGUAeABhAG0AcABsAGUALgBvAHIAZwAvAHUAcABkAGEAdABlACcA
Результат

2 слоя: Base64 → текст UTF-16LE с пометкой, что это типично для PowerShell -EncodedCommand. Результат — Start-Process 'https://example.org/update', URL указан как индикатор.

Часто задаваемые вопросы

Какие кодировки он распознаёт?

Base64 (стандартный и URL-безопасный, дополнение необязательно), hex в обычной форме, с 0x, \x, через пробелы или двоеточия, процентное URL-кодирование, HTML-сущности, escape-последовательности \x, \u, \u{…} и %u, списки String.fromCharCode, quoted-printable, gzip, zlib и raw deflate, а также текст UTF-16LE, например PowerShell -EncodedCommand. Вызовы вроде atob('…') или base64_decode('…') и data: URI тоже разворачиваются.

Почему он остановился или оставил мой текст без изменений?

Слой принимается, только если результат — читаемый текст, известный формат файла или поток, который чисто распаковывается, поэтому обычные слова, случайно оказавшиеся допустимым Base64, не трогаются. Из-за этого короткие или необычные кодировки могут быть пропущены: используйте Decode as, чтобы применить метод вручную, и Undo, чтобы вернуться на шаг назад. Декодер останавливается после 12 слоёв.

Запускается ли декодированное содержимое или отправляется ли оно куда-нибудь?

Нет. Декодирование использует обычный JavaScript и DecompressionStream браузера; результат показывается как текст или hex-дамп и никогда не выполняется, не отрисовывается и не загружается.

Откуда берутся такие строки?

Фишинговые страницы и вложения прячут URL и код в Base64 или hex, страницы ClickFix копируют закодированные команды PowerShell в ваш буфер обмена, а письма приходят в кодировке quoted-printable. Вставьте строку сюда вместо того, чтобы её запускать.

Можно ли декодировать по одному слою?

Да. Снимите флажок After a manual step, keep peeling automatically, затем для каждого шага выбирайте метод в Decode as и нажимайте Apply to the current result.

Сколько текста можно вставить?

До 5 МБ. Результаты длиннее 200 000 символов на экране сокращаются, но Copy даёт полный текст.

Что такое quoted-printable и процентное кодирование?

Оба записывают байт как знак и две шестнадцатеричные цифры. Quoted-printable пришёл из тел писем, где =3D означает =. Процентное кодирование пришло из URL, где %2F означает /.

Пояснение терминов

Исследование PhishDestroy