Deobfuscator sederhana namun kuat untuk menghapus teknik kebingungan JavaScript yang umum. Buka masalah jika ada fitur yang menurut Anda harus diterapkan.
Versi online di deobfuscate.io
Instal melalui npm install js-deobfuscator
Mencari deobfuscator khusus untuk Obfuscator.io/javascript-obfuscator? Coba repo ini
Jika Anda ingin berdiskusi/mempelajari tentang kebingungan dan deobfuscation JavaScript, Anda dapat bergabung dengan server Discord
Membongkar array yang berisi literal (string, angka, dll) dan mengganti semua referensi ke dalamnya
Menghapus fungsi proxy sederhana (panggilan ke fungsi lain), fungsi proxy array, dan fungsi proxy aritmatika (ekspresi biner)
Menyederhanakan ekspresi aritmatika
Menyederhanakan penggabungan string
Mengganti nama pengidentifikasi heksadesimal yang tidak dapat dibaca (misalnya _0xca830a)
Mengonversi komputasi menjadi ekspresi anggota statis dan mempercantik kode
Lihat bagian bawah untuk contoh yang lebih rumit dengan fitur-fitur yang dirangkai menjadi satu.
Sebelum
const a = ['x20', 'x57x6fx72x6cx64', 'x48x65x6cx6cx6f'];console.log(a[2] + a[0] + sebuah[1]);
Setelah
console.log('Halo' + ' ' + 'Dunia');
Sebelum
fungsi a(b, c) { return someFunction(b, c);}hasil const = a(5, 6);
Setelah
hasil const = someFunction(5, 6);
Sebelum
fungsi a(b, c) { return c + 2 * b;}hasil const = a(5, 6);
Setelah
hasil const = 6 + 2 * 5;
Sebelum
fungsi a(b, c) { kembalikan c + 2 * b;}fungsi b(c, d) { kembalikan a(c, d);}fungsi c(d, e) { kembalikan b(d, e);} hasil const = c(5, 6);
Setelah
hasil const = 6 + 2 * 5;
Sebelum
misalkan total = 0x2 * 0x109e + -0xc * -0x16a + -0x3234;untuk (misalkan i = 0x1196 + 0x97b * 0x3 + -0x2e07; i < -0x95 * -0x38 + -0x1a75 + -0x619; i++) { total += Saya;}
Setelah
misalkan total = 0;untuk (misalkan i = 0; i < 10; i++) { total += i;}
Sebelum
console.log('Dia' + 'akan' + 'o' + ' Wo' + 'r' + 'ld');
Setelah
console.log('Halo Dunia');
Semua fitur ini dapat digabungkan untuk menyederhanakan kode.
Sebelum
konstanta ar = [ 'x48x65x6cx6cx6f', 0x95, 'x20', 0x1a75, 'x57x6fx72x6cx64', -0x53, 'x6cx6fx67' ];const a = fungsi (b, c) { kembalikan c + 2 * b; }, b = fungsi (c, d) { kembalikan a(c, d); }, c = fungsi (d, e) { kembalikan b(d, e); };pesan const = ar[0] + ar[2] + ar[4];hasil const = c(ar[1] * 0x38 + ar[3] + 0x619, 0x12 * ar[5] + 0x1a13 + 0x621) ;console[ar[6]](pesan + ' ' + hasil);
Setelah
const message = 'Halo Dunia';const hasil = 40106;console.log(pesan + ' ' + hasil);
antarmuka Konfigurasi { array: { unpackArrays: boolean; hapusArray: boolean; }; proxyFunctions: { replaceProxyFunctions: boolean; hapusFungsi Proxy: boolean; }; ekspresi: { menyederhanakanEkspresi: boolean; hapusDeadBranches: boolean; }; bermacam-macam: { mempercantik: boolean; menyederhanakanProperti: boolean; ganti namaHexIdentifiers: boolean; };}
Instal modul secara lokal melalui npm install js-deobfuscator
dan impor seperti biasa atau instal secara global npm install -g js-deobfuscator
dan gunakan CLI js-deobfuscator
:
> js-deobfuscator -h Penggunaan: jalankan [pilihan] Membatalkan penyamaran file javascript Pilihan: -i, --input [input_file] File input yang akan di-deobfuscate (default: "input/source.js") -o, --output [output_file] File keluaran yang tidak dikaburkan (default: "output/output.js") -f, --force Apakah akan menimpa file keluaran atau tidak -h, --help menampilkan bantuan untuk perintah>
Alternatifnya gunakan versi online di deobfuscate.io