Documentazione
/
Offuscamento VM
/

VM Debug Protection

VM Debug Protection

Pro

Guarda

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

Guarda su YouTube

L'opzione vmDebugProtection aggiunge al runtime della VM misure anti-debugging che rendono molto più difficile il reverse engineering del codice protetto. Il modo in cui reagisce ciascun rilevamento è stabilito dalle categorie debugger, automation e sandbox di vmDefenseReaction.

Con browserEnvironment.hosting impostato su 'remote' (v7.14.1+), Debug Protection vincola inoltre la build a essere servita da un host remoto: una copia servita da un host di sviluppo locale viene trattata come una discrepanza dell'ambiente di esecuzione e le difese contro l'automazione reagiscono.

Queste difese agiscono anche contro i tuoi agenti, la tua automazione e i tuoi debugger. Possono interrompere l'esecuzione, generare errori non correlati o produrre risultati errati. Usa una build di test separata per i test funzionali; Test e CI mostra le opzioni che quella build sovrascrive.

Rilevamento dell'inspector

Dalla versione 8.0.0 dell'offuscatore, vmDebugProtection accetta un oggetto oltre a un booleano. Passando un oggetto, Debug Protection resta attiva mentre un singolo rilevatore viene allentato:

JavaScript

inspectorDetection (attivo per impostazione predefinita) rileva un inspector del Chrome DevTools Protocol collegato o un debugger attivo e reagisce di conseguenza. Aprire gli strumenti per sviluppatori del browser collega una sessione di questo tipo, quindi un inspector aperto viene rilevato e provoca una reazione. Tienilo attivo in produzione; disattivalo solo se i tuoi utenti aprono legittimamente gli strumenti per sviluppatori. Nella dashboard corrisponde al sotto-interruttore Inspector Detection sotto VM Debug Protection (v8.0.0+), che compare una volta attivata Debug Protection.

Framework di automazione. Con inspectorDetection attivo (il comportamento predefinito), pilotare la pagina protetta con uno strumento basato su CDP (Puppeteer, Playwright, Selenium/ChromeDriver) viene rilevato come un inspector collegato. vmDebugProtection: { inspectorDetection: false } disattiva solo il rilevatore dell'inspector; il rilevatore di automazione di Debug Protection può comunque reagire a un browser pilotato. Per le build di test automatizzati, segui Test e CI, che disattiva vmDebugProtection e vmSelfDefending.

Content Security Policy

Se la tua Content Security Policy vieta la valutazione dinamica (senza unsafe-eval), usa il target browser-no-eval e convalida l'output con quella policy. Questo target usa un'alternativa per i controlli che altrimenti si basano sulla valutazione dinamica. Lo stesso vale per le estensioni del browser con una CSP restrittiva: usa browser-no-eval per la massima compatibilità.