Deobfuscator JavaScript
Tampilkan sepotong kode JavaScript yang telah disamarkan, meliputi string berformat heksadekimal, nama variabel berupa satu huruf, serta loop pemecah kode di bagian atas, lalu alat ini akan mengurai lapisan-lapisannya secara bertahap: menghilangkan tanda khusus (escape), menyisipkan array pencarian ke dalam kode, mengganti nama variabel menjadi penanda yang mudah dibaca, menyederhanakan struktur pengemasan yang tidak penting, serta memperindah hasil akhirnya. Alat ini sangat berguna untuk menganalisis fragmen kode mencurigakan yang Anda ambil dari sebuah halaman atau tautan pastebin yang ditampilkan.
Cara mendekripsi kode JavaScript
-
1
Tempelkan sumber yang telah difusi
Data yang telah diminifikasi, dikemas, atau dihasilkan dari alat berformat `javascript-obfuscator.io`.
-
2
Biarkan parser menjelajahinya.
Matriks string didekodekan, urutan numerik dievaluasi, dan cabang-cabang kode mati dipangkas.
-
3
Menerapkan Nama Baru
Variabel dengan huruf tunggal `a`/`b`/`c` diubah nama menjadi `var1`, `var2`, dan seterusnya, merupakan penanda yang dapat dibaca, bukan nama yang memiliki makna tertentu.
-
4
Perindah
Identifikasi kode, tambahkan baris baru, dan hasilkan kode yang benar-benar dapat dibaca serta dipahami secara logis.
Teknik-teknik yang digunakan oleh deobfuscator untuk membalikkan hasil analisis
| Obfusi | Pembalikan |
|---|---|
| Literatur string yang telah di-escape menggunakan format hex | Dekode \x48\x69 menjadi "Hi" |
| Identifikasi yang telah di-escape menggunakan Unicode | \u006E\u0061\u006D\u0065 -> name |
| Array string + fungsi decoder | Menyusun array secara inline dan memanggil fungsi decoder saat proses parsing |
| Folding konstanta numerik | 0x1F3 + 5 -> 504 |
eval(...) wrappers |
Angkat kode internal ke tingkat tertinggi |
| Penyederhanaan alur kontrol (mesin keadaan) | Deteksi kondisi pergantian kasus dan rekonstruksi alur proses |
| Kode mati / ekspresi ternary yang tidak berguna | Hapus cabang-cabang yang tidak pernah dieksekusi |
Nama gaya _0x1a2b3c() |
Ganti dengan nama yang bertambah secara berurutan, misalnya var1, var2 |
Batasan: hal-hal yang tidak dapat dilakukan oleh alat tersebut
- Memulihkan nama variabel asli. Setelah
userEmaildiubah menjadia, tidak ada alat yang dapat menebaknya kembali. Hasilnya adalah struktur yang mudah dibaca, bukan makna semantik aslinya. - Membuka paket virtualizer khusus. Obfuser komersial berbasis teknologi canggih (seperti JScrambler atau versi tingkat perusahaan dari Obfuscator.io) menyediakan virtual machine (VM) khusus yang mampu mentafsir kode bytecode; untuk mengatasinya diperlukan analisis rekursif manual.
- Eksekusi kode sembarang. Deobfuscator mengevaluasi ekspresi murni secara statis; alat ini tidak mengakses sumber daya jarak jauh, membuat elemen DOM, maupun berkomunikasi dengan jaringan.
Kasus penggunaan tipikal
- Penelitian keamanan: menganalisis secara mendalam skrip mencurigakan yang masuk melalui email atau disediakan oleh CDN yang telah tercompromi.
- Arkeologi kode: pemulihan kode lama di mana satu-satunya sisa yang tersisa hanyalah paket kode yang telah diminifikasi.
- Belajar: memahami secara mendalam apa sebenarnya fungsi teknik pengaburan pada tingkat tutorial dari segi kerjaannya di balik layar.
Keselamatan dan Etika
Jangan pernah menjalankan kode JavaScript yang tidak terpercaya di tab peramban yang sedang terhubung ke sistem penting, kode tersebut dapat membaca cookie, memanggil API internal, dan mengakses data status sistem. Alat deobfuscator sendiri hanya bekerja pada teks sumber; ia tidak menjalankan kode yang Anda masukkan.
Hanya deobfuscasi kode yang Anda berwenang analisis. Teknik rekayasa balik pada perangkat lunak berlisensi dapat dibatasi di yurisdiksi Anda.
Pertanyaan yang Sering Diajukan
Tidak. Setelah alat pengabur mengganti nama userEmail menjadi _0x1a2b3c, nama aslinya akan hilang. Alat de-abur memberikan nama pengganti yang dapat dibaca (var1, var2) serta struktur yang benar, tetapi tidak menyediakan nama semantik asli.
Tidak. Sistem ini memproses kode sebagai AST dan menerapkan transformasi statis. Ekspresi murni (seperti 0x1F3 + 5) akan difolding, namun tidak ada komponen yang berinteraksi dengan jaringan, cookie, maupun DOM.
Ya, namun hasil pengelompokan kode (bundling) hanya diminimalkan, bukan sengaja disulitkan; akibatnya, yang dihasilkan hanyalah kode yang lebih rapi dengan penambahan kembali elemen pelindung modulnya. Peta sumber, jika tersedia secara terpisah, memberikan nama yang jauh lebih baik.
Alat komersial canggih (seperti Enterprise JScrambler atau mesin virtual khusus) dilengkapi interpreter bytecode yang tidak dapat diurai melalui analisis statis. Alat tersebut hanya mampu menangkap lapisan permukaan kode, sedangkan logika intinya tetap tidak transparan tanpa proses pembalikan manual.
Alat Terkait
Referensi Tabel ASCII
Tabel ASCII lengkap dari 0 sampai 127 dengan desimal, heksadesimal, oktal, biner, dan referensi karakter numerik HTML untuk setiap karakter, termasuk kode kontrol seperti NUL, LF, dan DEL.
Referensi Karakter HTML
Daftar entitas HTML yang dapat dicari, beserta kode bernama dan kode numeriknya, serta fitur salin dengan satu klik untuk karakter khusus dan simbol.
Referensi pintasan papan ketik
Cari pintasan bawaan terdokumentasi untuk VS Code, Chrome, dan Bash dengan GNU Readline di macOS, Windows, dan Linux.
Pemformat HTML
Format HTML secara lokal di browser dengan inden dua atau empat spasi. HTML tidak diunggah atau divalidasi.
Generator EditorConfig
Buat file .editorconfig dengan gaya dan ukuran indentasi, akhir baris, charset, dan aturan spasi Anda untuk format yang konsisten di berbagai IDE dan editor.
Validator Email
Validasi alamat email: pemeriksaan sintaks RFC 5322, pengecekan live record MX, serta detail bagian lokal, domain, dan panjang. Tidak ada email yang dikirim.
Alat ini tersedia dalam bahasa lain
- JavaScript-deobfuscator [SV]
- أداة إزالة التشفير في لغة جافا سكريبت (JavaScript Deobfuscator) [AR]
- JavaScript-deobfuscator [NL]
- Deobfuskator JavaScriptu [PL]
- Trình giải mã mã JavaScript (JavaScript Deobfuscator) [VI]
- เครื่องถอดรหัส JavaScript [TH]
- Desofuscador de JavaScript [ES]
- JavaScriptデオブファスカータ [JA]
- Déobfuscateur JavaScript [FR]
- JavaScript-Deobfuscator [DE]
- Desofuscador de JavaScript [PT]
- 자바스크립트 디오프스버커 [KO]
- JavaScript-деобфускатор [RU]
- JavaScript Deobfuscator [TR]
- JavaScript反混淆工具 [ZH]
- JavaScript Deobfuscator [EN]
- Deobfuscator JavaScript [IT]