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. 1

    Tempelkan sumber yang telah difusi

    Data yang telah diminifikasi, dikemas, atau dihasilkan dari alat berformat `javascript-obfuscator.io`.

  2. 2

    Biarkan parser menjelajahinya.

    Matriks string didekodekan, urutan numerik dievaluasi, dan cabang-cabang kode mati dipangkas.

  3. 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. 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 userEmail diubah menjadi a, 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

Alat ini tersedia dalam bahasa lain