Pindai lampiran HTML atau SVG untuk payload tersembunyi, rantai atob/eval, dan form ke situs luar.
Dekoder Berlapis-lapis
Alat ini sendiri tersedia dalam bahasa Inggris; halaman ini menjelaskannya dalam bahasa Anda.
Gunakan Dekoder Berlapis-lapis
Fungsinya
Tempelkan teks yang telah dienkripsi atau disamarkan, lalu dekoder akan mengupasnya lapis demi lapis, menampilkan setiap langkahnya, hingga tersisa teks yang dapat dibaca atau format file yang dikenal. Semuanya berjalan di browser Anda.
Aplikasi ini sepenuhnya berjalan di browser Anda: tidak ada data yang Anda masukkan yang diunggah.
Cara menggunakan Dekoder Berlapis-lapis
- Tempelkan teks yang telah dienkripsi. Tempelkan string tersebut ke dalam "Teks yang Dienskripsi": sebuah blob Base64 dari skrip, string heksadesimal panjang, teks yang dienkode dengan tanda persen, atau daftar String.fromCharCode.
- Menguraikan. Tekan "Decode layers" atau Ctrl+Enter. Setiap lapisan yang terdeteksi akan dilepas satu per satu, hingga maksimal 12 lapisan.
- Baca rantai tersebut. Judul tersebut mencantumkan lapisan-lapisan tersebut secara berurutan. Setiap langkah menampilkan metode yang digunakan, ukuran sebelum dan sesudah, serta pratinjau.
- Gunakan hasilnya. Salin teks yang telah diterjemahkan, baca Indikator pada hasil, atau gunakan opsi "Kirim ke" untuk HTML Attachment Analyzer, Link Unwrapper, IOC Converter, atau URL Defanger.
- Masukkan secara manual. Jika ada lapisan yang terlewat, pilih metode di bawah "Decode as" dan terapkan. Batalkan langkah terakhir pada lapisan tersebut.
Contoh
Base64 yang dikodekan URL dari 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)Tiga lapisan: pengkodean persentase URL (%2F), Base64 yang setelah didekode menghasilkan data gzip, dan gzip itu sendiri, yang diakhiri dengan skrip yang mengarahkan browser ke https://example.com/verify.
Apa yang diperiksa
| Sinyal | Apa artinya |
|---|---|
| Rantai lapisan | Proses pengkodean secara berurutan, misalnya Hex → Base64. Adanya beberapa lapisan di sekitar URL pendek atau perintah biasanya menandakan bahwa ada pihak yang ingin menyembunyikannya. |
| Ukuran per langkah | Jumlah byte yang masuk dan keluar dari setiap lapisan. Lapisan gzip atau deflate yang ukurannya bertambah secara signifikan merupakan proses dekompresi biasa. |
| Teks UTF-16LE | Dua byte per karakter, seperti yang biasa ditemukan pada PowerShell -EncodedCommand. Perintah yang telah didekode dan berfungsi untuk mengunduh atau menjalankan sesuatu merupakan tanda bahaya. |
| Hasil biner | Jika hasil akhirnya bukan berupa teks, maka akan ditampilkan dump heksadesimal dari 512 byte pertama beserta format yang terdeteksi. Salinlah dalam format heksadesimal atau Base64; jangan pernah menjalankannya. |
| Indikator dalam hasil | URL, alamat email, dan alamat IPv4 yang ditemukan dalam teks yang telah diterjemahkan, ditampilkan dalam bentuk yang telah dihilangkan bagian sensitifnya, disertai tombol untuk menyalinnya dalam bentuk mentah. |
| Pesan penghentian | Tidak ada pengkodean lain yang dikenali, batas 12 lapisan, atau langkah yang akan mengulangi hasil sebelumnya. Pada batas tersebut, mungkin terdapat lebih banyak lapisan. |
| Opsi penonaktifan | Aktif secara default: URL dan alamat email dalam hasil ditampilkan dalam bentuk yang telah disamarkan. Opsi "Salin" selalu menampilkan teks mentah. |
| Pilihan "Terus mengupas" | Setelah langkah "Decode as" dilakukan secara manual, proses dekode akan berlanjut secara otomatis kecuali jika Anda menghapus centang pada opsi tersebut. |
| Ubah menjadi daftar | Base64, Base64 yang aman untuk URL, heksadesimal, pengkodean persentase URL, entitas HTML, karakter pelarian, kode karakter, quoted-printable, gzip, zlib, deflate mentah, dan UTF-16LE, untuk langkah-langkah yang dilewati oleh proses otomatis. |
| Tombol Salin | Fungsi "Salin" menampilkan teks yang telah didekode dalam bentuk mentah. Hasil biner justru menampilkan opsi "Salin sebagai heksadesimal" dan "Salin sebagai Base64". |
Contoh lainnya
Vektor uji RFC 4648
Zm9vYmFyLapisan 1: Base64, 8 → 6 byte. Hasilnya adalah teks "foobar", nilai yang ditetapkan dalam RFC 4648.
Enkripsi Hex ke Base64 pada sebuah URL
6148523063484d364c793973623264706269356c654746746347786c4c6d356c644339795a584e6c64413d3d2 lapisan: Hex → Base64 (88 → 44 → 31 byte). Hasilnya adalah https://login.example.net/reset, yang ditampilkan dalam bentuk yang telah dinonaktifkan dan tercantum di bawah bagian "Indicators" pada hasil.
Perintah PowerShell yang dikodekan
UwB0AGEAcgB0AC0AUAByAG8AYwBlAHMAcwAgACcAaAB0AHQAcABzADoALwAvAGUAeABhAG0AcABsAGUALgBvAHIAZwAvAHUAcABkAGEAdABlACcA2 lapisan: Base64 → teks UTF-16LE, yang dikenal sebagai ciri khas perintah PowerShell -EncodedCommand. Hasilnya adalah Start-Process 'https://example.org/update', dengan URL tersebut dicantumkan sebagai penanda.
Pertanyaan yang Sering Diajukan
Enkoding apa saja yang didukung?
Base64 (standar dan aman untuk URL, pengisian spasi opsional), format heksadesimal biasa, 0x, \x, dengan spasi, atau dipisahkan dengan tanda titik dua, pengkodean persentase URL, entitas HTML, karakter pelarian \x, \u, \u{…}, dan %u, daftar String.fromCharCode, quoted-printable, gzip, zlib, dan deflate mentah, serta teks UTF-16LE seperti perintah PowerShell yang dienkode (-EncodedCommand). Panggilan seperti atob('…') atau base64_decode('…') serta data: URI juga akan diurai.
Mengapa hal itu berhenti, atau membiarkan teks saya tetap seperti semula?
Sebuah lapisan hanya akan diterima jika hasilnya berupa teks yang dapat dibaca, format file yang dikenal, atau aliran data yang dapat didekompresi dengan lancar; sehingga kata-kata biasa yang kebetulan merupakan kode Base64 yang valid tidak akan diubah. Oleh karena itu, pengkodean yang pendek atau tidak biasa mungkin terlewatkan: gunakan "Decode" untuk menerapkan metode secara manual dan "Undo" untuk kembali ke langkah sebelumnya. Proses ini berhenti setelah 12 lapisan.
Apakah konten yang telah didekode tersebut dijalankan atau dikirim ke suatu tempat?
Tidak. Proses dekoding menggunakan JavaScript biasa dan DecompressionStream dari browser; hasilnya ditampilkan dalam bentuk teks atau dump heksadesimal dan tidak pernah dieksekusi, ditampilkan, atau diunggah.
Dari mana asal string-string seperti ini?
Halaman phishing dan lampiran menyembunyikan URL serta kode dalam format Base64 atau heksadesimal; halaman ClickFix menyalin perintah PowerShell yang telah dikodekan ke papan klip Anda; dan email dikirim dalam format quoted-printable. Tempelkan string tersebut di sini, jangan dijalankan.
Bisakah saya mendekode satu lapisan pada satu waktu?
Ya. Hapus centang pada opsi “Setelah langkah manual, lanjutkan pengupasan secara otomatis”, lalu pilih metode di bawah “Decode as” dan tekan “Apply to the current result” untuk setiap langkah.
Berapa banyak teks yang bisa saya tempelkan?
Maksimal 5 MB. Hasil yang panjangnya melebihi 200.000 karakter akan dipersingkat di layar, tetapi opsi "Salin" akan menampilkan teks lengkapnya.
Apa itu quoted-printable dan percent-encoding?
Keduanya menuliskan satu byte berupa tanda yang diikuti oleh dua digit heksadesimal. Quoted-printable berasal dari isi email, di mana =3D mewakili =. Percent-encoding berasal dari URL, di mana %2F mewakili /.