Dokumentasi
/

Memulai

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 Obfuscation untuk perubahan minimal atau Medium Obfuscation untuk 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.name

    Nama fungsi dan kelas diganti menjadi pengenal acak. Kode yang bergantung pada .name untuk 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 dengan node, tetapi beberapa opsi khusus peramban tidak boleh digunakan dengan target node.
  • browser-no-eval - sama seperti browser, tetapi keluarannya tidak menggunakan eval(). Gunakan bila halaman target memiliki Content Security Policy yang melarang eval/unsafe-eval.
  • node - lingkungan Node.js. Opsi khusus peramban dinonaktifkan (opsi tersebut memerlukan window/document dan tidak akan berpengaruh atau justru melempar error di Node). Beberapa pertahanan vmSelfDefending yang 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 ada window, tidak ada document, serta global self yang berbeda.
  • userscript - sandbox pengelola userscript (mis. Tampermonkey). Pertahanan vmSelfDefending disesuaikan dengan konteks tersebut. Memerlukan obfuscator v6.9.0+.
  • bytenode - untuk kode yang akan dikompilasi menjadi .jsc dengan 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)

PresetKeamananPerformaFitur
VM LowBaik~10xVM dasar, dispatch tidak langsung
VM MediumKuat~12-15x+ Pengacakan opcode, encoding, umpan
VM HighSangat Kuat~15-18x+ Kode mati, opcode berstatus, encoding stack
VM Ultra HighMaksimum~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)

PresetProteksiPerformaFitur
DefaultDasarMinimalString array, simplify
LowRingan~1.1x+ Self-defending, nonaktifkan console
MediumSedang~1.5x+ Control flow, kode mati, base64
HighKuat~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.