Dokumentasi
/

Browser Environment

Browser Environment

Pro
v7.9.0+

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:

JavaScript

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.

Build yang dideklarasikan transport: 'https' berjalan benar hanya di tempat yang benar-benar menyajikannya melalui https:. Setiap skema lain merusaknya, jadi deklarasikan hanya jika setiap konteks yang memuat build produksi Anda menggunakan HTTPS. Itu mengecualikan:

  • http:// biasa, termasuk http://localhost saat pengembangan;
  • file:// - Electron, Cordova, dan aplikasi terpaket lainnya;
  • penyematan blob: dan about: - bundle yang berjalan di dalam iframe about:blank atau srcdoc.

Pengalihan HTTP→HTTPS di sisi klien tetap merender halaman HTTP terlebih dahulu, sehingga bundle tidak boleh berjalan sebelum pengalihan selesai.

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.

Build yang mendeklarasikan hosting: 'remote' hanya berjalan dengan benar saat dimuat dari host jarak jauh. Bundle yang dibuka dari lingkungan lokal - localhost, server dev, file:// - memang sengaja diperlakukan sebagai ketidaksesuaian, jadi deklarasikan hanya jika setiap konteks yang memuat build produksi Anda disajikan dari jarak jauh, dan jauhkan dari build yang Anda pakai untuk pengembangan lokal, pengujian, dan CI.

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.

JavaScript

hookedBuiltins dengan sengaja melonggarkan deteksi pengutakatikan: begitu disetel, analis yang membungkus builtin yang sama untuk memeriksa kode Anda juga tidak lagi dihentikan. Virtualisasi VM, anti-debugging, dan perlindungan integritas tidak terpengaruh. Aktifkan hanya jika runtime produksi Anda diketahui melakukan hook pada builtin dan jaminan yang lebih lemah itu dapat diterima.

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.

Di dasbor, kontrol Transport, Hosting, dan Hooked Builtins berada di panel Advanced Protection. Masing-masing baru dapat diedit setelah perlindungan pasangannya aktif - VM Self Defending untuk Transport dan Hooked Builtins, VM Debug Protection untuk Hosting - dan target mendukungnya.

Persyaratan

  • transport dan hookedBuiltins berlaku bersama vmSelfDefending, hosting bersama vmDebugProtection; selain itu tak satu pun melakukan apa pun.
  • Target browser, browser-no-eval, atau service-worker (browser atau browser-no-eval untuk hosting).
  • Obfuscator versi 7.9.0 atau lebih baru untuk transport, 7.14.0 atau lebih baru untuk hosting, 7.15.0 atau lebih baru untuk hookedBuiltins.

Contoh

JavaScript