VM Self Defending
Tonton
Obfuscator.io Advanced Defenses: Self-Defending, Debug Protection, Domain Lock
Opsi vmSelfDefending menambahkan deteksi pengutakatikan berlapis, pemeriksaan integritas kode, anti-hooking, dan proteksi anti-rekayasa balik ke runtime VM. Jika dikombinasikan dengan vmDebugProtection, opsi ini membuat analisis manual maupun analisis berbantuan AI jauh lebih sulit.
Opsi ini secara paksa mengaktifkan vmBytecodeArrayEncoding dan menambah overhead pada eksekusi VM. Ukur dampaknya pada jalur yang sering dieksekusi di kode Anda sendiri.
Cara setiap deteksi bereaksi - dan cara melaporkan deteksi ke backend Anda alih-alih hanya merusak eksekusi - dibahas di Telemetri & Reaksi Pertahanan VM; vmSelfDefending menghasilkan deteksi dalam kategori reaksi automation, debugger, tamper, dan integrity.
Direkomendasikan: Gunakan bersama vmDebugProtection, vmBytecodeArrayEncodingKey, dan vmBytecodeArrayEncodingKeyGetter untuk proteksi maksimal.
Kompatibilitas runtime
Deteksi lingkungan sensitif
Opsi ini mengikat kode hasil obfuskasi ke lingkungan runtime targetnya dan menggunakan fingerprinting peramban tingkat lanjut untuk mendeteksi alat otomasi. Kode yang dilindungi dengan opsi ini sengaja akan rusak ketika dijalankan di:
- Peramban headless (Chrome/Chromium headless, PhantomJS)
- Alat otomasi peramban (Puppeteer, Playwright, Cypress, Selenium/ChromeDriver, Nightmare)
- Node.js (ketika
targetdisetel kebrowser) - jsdom atau emulasi DOM sisi server serupa
- Lingkungan tempat built-in native peramban telah dipasangi hook atau diganti (kecuali dideklarasikan dengan
browserEnvironment.hookedBuiltins)
Kode akan berfungsi dengan benar di peramban biasa (Chrome, Firefox, Safari, Edge), termasuk ketika dimuat di dalam iframe, ekstensi peramban (content script), dan Web Worker.
Pilih target sesuai runtime sebenarnya. Build peramban dan build Node berisi pertahanan yang berbeda: target node menghilangkan pertahanan yang bergantung pada API khusus peramban, dan build browser yang dijalankan di Node akan rusak seperti yang dijelaskan di atas.
Dengan browserEnvironment.hookedBuiltins disetel ke true (v7.15.0+), Self Defending menoleransi runtime yang secara sah mengganti built-in native dengan pembungkus JavaScript alih-alih memperlakukannya sebagai pengutakatikan, sehingga kode yang dilindungi tetap berjalan di sana. Ini sengaja melonggarkan deteksi hook pada built-in; virtualisasi VM, anti-debugging, dan proteksi integritas tidak terpengaruh. Field transport pada opsi yang sama mengikat build ke skema yang digunakan untuk menyajikannya.
Self Defending memeriksa integritas keluarannya sendiri, jadi jangan meminifikasi, memformat, atau menulis ulang kode hasil obfuskasi setelahnya. Jalankan alat-alat tersebut pada kode sumber Anda sebelum langkah obfuskasi.
Pengujian dan CI
Pertahanan ini juga bekerja terhadap agen, otomasi, dan debugger milik Anda sendiri. Pertahanan tersebut dapat menghentikan eksekusi, melempar error yang tidak berkaitan, atau menghasilkan hasil yang salah. Opsi ini dirancang untuk mencegah analisis otomatis dan tidak dapat digunakan dengan aman bersama framework otomasi apa pun, jadi jalankan pengujian fungsional terhadap build pengujian terpisah dengan vmSelfDefending dinonaktifkan. Pengujian dan CI mencantumkan daftar lengkap opsi yang ditimpa untuk build tersebut.
