Dokumentasi
/
Obfuskasi VM
/

Browser Environment

Browser Environment

Pro
v7.9.0+

Deklarasikan cara build produksi Anda disajikan agar kode terlindungi dapat mengikatkan integritasnya padanya.

Tonton

Obfuscator.io Advanced Defenses: Self-Defending, Debug Protection, Domain Lock

Tonton di YouTube

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 field hanya berlaku bersama satu proteksi tertentu - dengan sendirinya opsi ini tidak melakukan apa pun:

JavaScript

transport

Skema yang dipakai situs produksi Anda untuk menyajikan bundel - 'http' atau 'https'. Berlaku bersama vmSelfDefending.

Dengan 'https', salinan yang disajikan lewat HTTP biasa oleh seorang pelaku rekayasa balik tidak akan berjalan dengan benar. 'http' atau field yang tidak diisi tidak menambahkan proteksi tersebut.

Build yang mendeklarasikan 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: - bundel yang berjalan di dalam iframe about:blank atau srcdoc.

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

hosting

Dari mana bundel produksi Anda disajikan - 'remote' atau 'local'. Berlaku bersama vmDebugProtection, dan hanya pada target browser dan browser-no-eval. Memerlukan obfuscator versi 7.14.1 atau lebih baru.

Dengan 'remote', salinan yang disajikan dari host pengembangan lokal diperlakukan sebagai ketidaksesuaian lingkungan runtime, dan pertahanan otomasi bereaksi sesuai konfigurasi vmDefenseReaction (lihat Telemetri & Reaksi Pertahanan VM). 'local' atau field yang tidak disetel tidak menambahkan proteksi tersebut.

Build yang mendeklarasikan hosting: 'remote' hanya berjalan dengan benar saat dimuat dari host jarak jauh. Bundle yang dibuka dari server pengembangan lokal 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 built-in native dengan pembungkus 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 built-in 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 hook pada built-in: begitu disetel, analis yang membungkus built-in yang sama untuk memeriksa kode Anda juga tidak lagi dihentikan. Virtualisasi VM, anti-debugging, dan proteksi integritas tidak terpengaruh. Aktifkan hanya jika runtime produksi Anda diketahui melakukan hook pada built-in 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 tidak berpengaruh. 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 bagian Pertahanan Lanjutan. Masing-masing baru dapat diedit setelah proteksi 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.1 atau lebih baru untuk hosting, 7.15.0 atau lebih baru untuk hookedBuiltins.

Contoh

JavaScript