Перевірте HTML- чи SVG-вкладення на приховані корисні навантаження, ланцюжки atob/eval і форми, що надсилають дані на сторонні сайти.
Багатошаровий декодер
Сам інструмент доступний англійською мовою; на цій сторінці наведено пояснення вашою мовою.
Використовуйте Багатошаровий декодер
Як це працює
Вставте закодований або замаскований текст, і декодер зніматиме шар за шаром, показуючи кожен крок, доки не залишиться читабельний текст або відомий формат файлу. Усе виконується у вашому браузері.
Програма працює повністю у вашому браузері: жодні введені вами дані не завантажуються.
Як користуватися Багатошаровий декодер
- Вставте закодований текст. Вставте рядок у поле Encoded text (закодований текст): блок Base64 зі скрипту, довгий hex-рядок, текст з URL-кодуванням або список String.fromCharCode.
- Декодуйте. Натисніть Decode layers (декодувати шари) або Ctrl+Enter. Кожен розпізнаний шар знімається по черзі, до 12.
- Прочитайте ланцюжок. Заголовок перелічує шари по порядку. Кожен крок показує метод, розмір до і після та попередній перегляд.
- Використайте результат. Скопіюйте декодований текст, прочитайте Indicators in the result (індикатори в результаті) або скористайтеся Send to для HTML Attachment Analyzer, Link Unwrapper, IOC Converter чи URL Defanger.
- Втрутьтеся вручну. Якщо шар пропущено, виберіть метод у Decode as і застосуйте його. Undo last layer (скасувати останній шар) повертає на крок назад.
Приклад
URL-кодований Base64 від gzip
H4sIAAAAAAACA7MpTi7KLCixK8%2FMS8kv18vJT04syczP08soSk1TsFVQyigpKSi20tdPrUjMLchJ1UvOz9UvSy3KTKu0L04tLgYqtTVPM05UsrbRh5oEACvqcc1SAAAA3 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-адреси, знайдені в декодованому тексті, у знешкодженому (defanged) вигляді, з кнопкою, щоб скопіювати їх як є. |
| Повідомлення про зупинку | Подальше кодування не розпізнано, досягнуто ліміту в 12 шарів або крок повторив би попередній результат. На ліміті шарів може бути більше. |
| Параметр знешкодження | Увімкнено за замовчуванням: URL і адреси електронної пошти в результаті показуються знешкодженими. Copy завжди дає текст як є. |
| Параметр продовження декодування | Після ручного кроку Decode as декодування продовжується автоматично, якщо ви не знімете цю позначку. |
| Список Decode as | Base64, URL-safe Base64, hex, URL-кодування з відсотками, HTML-сутності, escape-послідовності, коди символів, quoted-printable, gzip, zlib, raw deflate і UTF-16LE — для кроків, які автоматичний прохід пропускає. |
| Кнопки копіювання | Copy (копіювати) дає декодований текст як є. Для двійкового результату натомість є Copy as hex і Copy as Base64. |
Ще кілька прикладів
Тестовий вектор RFC 4648
Zm9vYmFy1 шар: Base64, 8 → 6 байтів. Результат — текст foobar, значення, опубліковане в RFC 4648.
Hex навколо Base64 навколо URL
6148523063484d364c793973623264706269356c654746746347786c4c6d356c644339795a584e6c64413d3d2 шари: Hex → Base64 (88 → 44 → 31 байт). Результат — https://login.example.net/reset, показаний у знешкодженому вигляді й внесений до Indicators in the result.
Закодована команда PowerShell
UwB0AGEAcgB0AC0AUAByAG8AYwBlAHMAcwAgACcAaAB0AHQAcABzADoALwAvAGUAeABhAG0AcABsAGUALgBvAHIAZwAvAHUAcABkAGEAdABlACcA2 шари: Base64 → текст UTF-16LE з приміткою, що це типово для PowerShell -EncodedCommand. Результат — Start-Process 'https://example.org/update', а URL внесено до індикаторів.
Часті запитання
Які кодування він розпізнає?
Base64 (стандартний і URL-safe, вирівнювання необов'язкове), 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 і URL-кодування з відсотками?
Обидва записують байт як знак, за яким ідуть дві шістнадцяткові цифри. Quoted-printable походить із тіла листів, де =3D означає =. Кодування з відсотками походить з URL, де %2F означає /.