Memulai
Obfuscator.io mengubah kode sumber Anda yang mudah dibaca menjadi versi terlindungi yang sulit dipahami dan direkayasa balik. Sangat cocok untuk melindungi algoritma proprietari, logika lisensi, dan kode yang krusial bagi bisnis.
Selamat Datang di Obfuscator.io
Panduan ini memandu Anda mengobfuskasi berkas pertama, memilih preset, dan memahami panel opsi. Untuk pembahasan yang lebih mendalam, lihat bagian Obfuskasi VM, Obfuskasi Dasar, dan Praktik Terbaik.
Mulai Cepat
1. Tempelkan kode Anda
Masukkan kode JavaScript Anda di panel editor sebelah kiri. Anda dapat menempelkan kode secara langsung atau menggunakan fitur unggah berkas untuk pemrosesan massal.
2. Pilih preset
Pilih preset dari menu dropdown di panel Opsi. Mulailah dengan
Low Obfuscationuntuk perubahan minimal atauMedium Obfuscationuntuk proteksi yang seimbang. Preset VM memberikan keamanan terkuat.3. Klik "Obfuscate"
Tekan tombol Obfuscate untuk mentransformasi kode Anda. Keluaran yang terlindungi akan muncul di panel sebelah kanan.
4. Salin atau unduh
Gunakan tombol Copy atau Download untuk mengambil kode hasil obfuskasi Anda. Keluarannya siap digunakan di produksi.
Kompatibilitas Kode Penting
Obfuskasi (baik VM maupun non-VM) mentransformasi kode Anda dengan cara yang memengaruhi perilaku runtime JavaScript tertentu. Kode Anda tidak boleh bergantung pada fitur-fitur berikut:
function.toString()/class.toString()Obfuskasi sepenuhnya mengubah representasi kode sumber. Kode yang mengurai atau membandingkan sumber fungsi akan rusak.
function.name/class.nameNama fungsi dan kelas diganti menjadi pengenal acak. Kode yang bergantung pada
.nameuntuk logging, serialisasi, atau refleksi akan menerima nama hasil obfuskasi.
// Before obfuscation
function calculatePrice() { return 100; }
console.log(calculatePrice.name); // "calculatePrice"
console.log(calculatePrice.toString()); // "function calculatePrice() { return 100; }"
// After obfuscation
console.log(calculatePrice.name); // "_0x1a2b3c" (random)
console.log(calculatePrice.toString()); // Completely transformed code
Opsi Dasar
Sebelum mengobfuskasi, konfigurasikan opsi dasar berikut agar sesuai dengan lingkungan target Anda.
Target target
Menentukan lingkungan eksekusi untuk kode hasil obfuskasi:
browser(bawaan) - lingkungan halaman web standar. Kode keluarannya identik dengannode, tetapi beberapa opsi khusus peramban tidak boleh digunakan dengan targetnode.browser-no-eval- sama sepertibrowser, tetapi keluarannya tidak menggunakaneval(). Gunakan bila halaman target memiliki Content Security Policy yang melarangeval/unsafe-eval.node- lingkungan Node.js. Opsi khusus peramban dinonaktifkan (opsi tersebut memerlukanwindow/documentdan tidak akan berpengaruh atau justru melempar error di Node). Beberapa pertahananvmSelfDefendingyang bergantung pada API khusus peramban - deteksi headless browser, pemulihan clean realm berbasis iframe, pemeriksaan anti-inspector/DOM - tidak dihasilkan untuk target ini.service-worker- konteks Service Worker. Tidak adawindow, tidak adadocument, serta globalselfyang berbeda.userscript- sandbox pengelola userscript (mis. Tampermonkey). PertahananvmSelfDefendingdisesuaikan dengan konteks tersebut. Memerlukan obfuscator v6.9.0+.bytenode- untuk kode yang akan dikompilasi menjadi.jscdengan bytenode. Memerlukan obfuscator v6.13.0+.
Strict Mode strictMode
Mengatur bagaimana obfuscator menangani strict mode JavaScript:
Auto(bawaan) - Deteksi strict mode secara otomatis dari kode. Obfuscator menganalisis kode Anda untuk mencari direktif"use strict"Enable- Paksa semua kode diperlakukan sebagai strict mode, terlepas dari ada tidaknya"use strict"Disable- Hanya direktif"use strict"yang eksplisit di kode sumber yang diperlakukan sebagai strict mode
Memahami Preset
Preset adalah kombinasi opsi yang sudah dikonfigurasi sebelumnya. Ada dua kelompok terpisah:
Preset VM Pro (virtualisasi bytecode)
| Preset | Keamanan | Performa | Fitur |
|---|---|---|---|
VM Low | Baik | ~10x | VM dasar, dispatch tidak langsung |
VM Medium | Kuat | ~12-15x | + Pengacakan opcode, encoding, umpan |
VM High | Sangat Kuat | ~15-18x | + Kode mati, opcode berstatus, encoding stack |
VM Ultra High | Maksimum | ~20x+ | + Lapisan obfuskasi non-VM |
Angka performa di atas adalah rata-rata - dampak sebenarnya sangat bergantung pada kodenya (mis. kode dengan banyak rekursi atau perulangan yang sering dijalankan akan terasa jauh lebih lambat).
Preset Non-VM (obfuskasi standar)
| Preset | Proteksi | Performa | Fitur |
|---|---|---|---|
Default | Dasar | Minimal | String array, simplify |
Low | Ringan | ~1.1x | + Self-defending, nonaktifkan console |
Medium | Sedang | ~1.5x | + Control flow, kode mati, base64 |
High | Kuat | ~2x | + Debug protection, encoding rc4 |
Sekilas Antarmuka
- Editor Masukan - Tempelkan atau ketik kode sumber JavaScript Anda. Seret & letakkan berkas atau gunakan tombol unggah. Berkas HTML dengan skrip inline juga didukung Pro.
- Panel Keluaran - Menampilkan hasil obfuskasi. Gunakan tombol Copy atau Download untuk mengambil kode yang terlindungi.
- Pemilih Preset - Pilih preset VM atau Non-VM. Preset VM dikelompokkan di bagian atas. Preset menentukan opsi dasar yang dapat Anda sesuaikan.
- Panel Opsi - Atur pengaturan obfuskasi secara detail. Klik ikon
?di samping opsi mana pun untuk melihat dokumentasinya. - Tombol Obfuscate - Mentransformasi kode Anda menggunakan opsi yang dipilih. Preset VM diproses di sisi server; preset non-VM berjalan di peramban Anda.
- Unggah Multi-berkas Pro - Proses beberapa berkas sekaligus dan unduh sebagai ZIP.
- Panel Riwayat Pro - Akses hasil obfuskasi Anda sebelumnya dan pulihkan masukan/keluarannya.
