Documentation
/
Obfuscation VM
/

VM Debug Protection

VM Debug Protection

Pro

Regarder

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

Regarder sur YouTube

L'option vmDebugProtection ajoute des mesures anti-débogage au runtime de la VM, ce qui rend la rétro-ingénierie de votre code protégé nettement plus difficile. La réaction à chaque détection est définie par les catégories debugger, automation et sandbox de vmDefenseReaction.

Lorsque browserEnvironment.hosting vaut 'remote' (v7.14.1+), Debug Protection lie aussi le build au fait d'être servi depuis un hôte distant : une copie servie depuis un hôte de développement local est traitée comme une incohérence de l'environnement d'exécution, et les défenses contre l'automatisation réagissent.

Ces défenses agissent aussi contre vos propres agents, outils d'automatisation et débogueurs. Elles peuvent arrêter l'exécution, lever des erreurs sans rapport ou produire des résultats incorrects. Utilisez un build de test distinct pour les tests fonctionnels ; Tests et CI présente les options que ce build redéfinit.

Détection de l'inspecteur

À partir de la version 8.0.0 de l'obfuscateur, vmDebugProtection accepte un objet en plus d'un booléen. Passer un objet laisse Debug Protection activée tout en assouplissant un seul détecteur :

JavaScript

inspectorDetection (activé par défaut) détecte un inspecteur Chrome DevTools Protocol attaché ou un débogueur actif, et y réagit. Ouvrir les outils de développement du navigateur attache une telle session : un inspecteur ouvert est donc détecté et déclenche une réaction. Laissez-le activé en production ; désactivez-le uniquement si vos utilisateurs ouvrent légitimement les outils de développement. Dans le tableau de bord, il s'agit du sous-interrupteur Inspector Detection sous VM Debug Protection (v8.0.0+), qui apparaît une fois Debug Protection activée.

Frameworks d'automatisation. Lorsque inspectorDetection est activé (par défaut), piloter la page protégée avec un outil basé sur CDP (Puppeteer, Playwright, Selenium/ChromeDriver) est détecté comme un inspecteur attaché. vmDebugProtection: { inspectorDetection: false } ne désactive que le détecteur d'inspecteur ; le détecteur d'automatisation de Debug Protection peut toujours réagir à un navigateur piloté. Pour les builds de tests automatisés, suivez Tests et CI, qui désactive vmDebugProtection et vmSelfDefending.

Content Security Policy

Si votre Content Security Policy interdit l'évaluation dynamique (pas de unsafe-eval), utilisez la cible browser-no-eval et validez la sortie sous cette politique. Cette cible utilise une solution de repli pour les vérifications qui reposeraient sinon sur l'évaluation dynamique. Il en va de même pour les extensions de navigateur dotées d'une CSP restrictive : utilisez browser-no-eval pour une compatibilité optimale.