Browser Environment
Deklarasikan cara build produksi Anda disajikan agar kode terlindungi dapat mengikatkan integritasnya padanya.
Opsi browserEnvironment mendeklarasikan fakta tentang lingkungan tempat build produksi Anda disajikan, sehingga kode yang dilindungi dapat mengikatkan diri padanya atau bereaksi terhadapnya. Ini objek kecil, dan setiap bidang hanya berlaku bersama satu perlindungan tertentu — dengan sendirinya opsi ini tidak melakukan apa pun:
browserEnvironment: { transport: 'https', hosting: 'remote' }
transport
Skema yang dipakai produksi Anda untuk menyajikan bundle — 'http' atau 'https'. Berlaku bersama vmSelfDefending.
Dengan 'https', salinan yang disajikan lewat HTTP biasa oleh seorang reverse engineer tidak akan berjalan dengan benar. 'http' atau bidang yang tidak diisi tidak menambahkan perlindungan tersebut.
hosting
Dari mana bundle produksi Anda disajikan — 'remote' atau 'local'. Berlaku bersama vmDebugProtection, dan hanya pada target browser dan browser-no-eval. Memerlukan obfuscator versi 7.14.0 atau lebih baru.
Dengan 'remote', salinan yang diambil seorang reverse engineer dan dijalankan di lingkungan lokalnya sendiri diperlakukan sebagai ketidaksesuaian lingkungan runtime, dan pertahanan otomasi bereaksi sesuai konfigurasi vmDefenseReaction. 'local' atau bidang yang tidak diatur tidak menambahkan perlindungan tersebut.
hookedBuiltins
Setel ke true untuk menyatakan bahwa runtime tempat build produksi Anda berjalan secara sah mengganti builtin native dengan wrapper JavaScript — anti-tamper milik aplikasi sendiri, halaman host, atau ekstensi peramban lain yang berbagi realm yang sama. Berlaku bersama vmSelfDefending. Memerlukan obfuscator versi 7.15.0 atau lebih baru.
Biasanya Self Defending memperlakukan builtin native yang diganti sebagai pengutakatikan dan menghentikan build agar tidak berjalan. Dengan hookedBuiltins: true, ia menoleransi lingkungan seperti itu dan kode yang dilindungi tetap berjalan. false atau field yang tidak disetel mempertahankan perilaku ketat.
browserEnvironment: { hookedBuiltins: true }
Target yang didukung
browserEnvironment hanya berlaku untuk target browser, browser-no-eval, dan service-worker. Untuk node, userscript, dan bytenode opsi ini ditolak — obfuskasi gagal dengan galat validasi alih-alih membuang pengaturan secara diam-diam. hosting lebih sempit lagi: diterima pada service worker, tetapi tidak mengikat apa pun di sana.
Persyaratan
transportdanhookedBuiltinsberlaku bersamavmSelfDefending,hostingbersamavmDebugProtection; selain itu tak satu pun melakukan apa pun.- Target
browser,browser-no-eval, atauservice-worker(browserataubrowser-no-evaluntukhosting). - Obfuscator versi 7.9.0 atau lebih baru untuk
transport, 7.14.0 atau lebih baru untukhosting, 7.15.0 atau lebih baru untukhookedBuiltins.
Contoh
JavaScriptObfuscator.obfuscate(code, {
vmObfuscation: true,
vmSelfDefending: true,
vmDebugProtection: true,
target: 'browser',
browserEnvironment: { transport: 'https', hosting: 'remote' }
});