Documentación
/
Ofuscación VM
/

VM Debug Protection

VM Debug Protection

Pro

Ver

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

Ver en YouTube

La opción vmDebugProtection añade medidas antidepuración al runtime de la VM, lo que hace mucho más difícil aplicar ingeniería inversa a tu código protegido. Cómo reacciona cada detección se define con las categorías debugger, automation y sandbox de vmDefenseReaction.

Con browserEnvironment.hosting establecido en 'remote' (v7.14.1+), Debug Protection también vincula la compilación a que se sirva desde un host remoto: una copia servida desde un host de desarrollo local se trata como una discrepancia del entorno de ejecución, y las defensas contra la automatización reaccionan.

Estas defensas también actúan contra tus propios agentes, herramientas de automatización y depuradores. Pueden detener la ejecución, lanzar errores sin relación aparente o producir resultados incorrectos. Usa una compilación de pruebas separada para las pruebas funcionales; Pruebas y CI muestra las opciones que esa compilación sobrescribe.

Detección del inspector

Desde el ofuscador 8.0.0, vmDebugProtection acepta un objeto además de un booleano. Pasar un objeto mantiene Debug Protection activada mientras relaja un único detector:

JavaScript

inspectorDetection (activado de forma predeterminada) detecta un inspector de Chrome DevTools Protocol conectado o un depurador activo, y reacciona ante ellos. Abrir las herramientas de desarrollo del navegador conecta una sesión de este tipo, así que un inspector abierto se detecta y provoca una reacción. Mantenlo activado en producción; desactívalo solo si tus usuarios abren legítimamente las herramientas de desarrollo. En el panel es el subinterruptor Inspector Detection de VM Debug Protection (v8.0.0+), que aparece una vez que Debug Protection está activada.

Frameworks de automatización. Con inspectorDetection activado (el valor predeterminado), controlar la página protegida con una herramienta basada en CDP (Puppeteer, Playwright, Selenium/ChromeDriver) se detecta como un inspector conectado. vmDebugProtection: { inspectorDetection: false } desactiva solo el detector del inspector; el detector de automatización de Debug Protection todavía puede reaccionar ante un navegador controlado. Para las compilaciones de pruebas automatizadas, sigue Pruebas y CI, que desactiva vmDebugProtection y vmSelfDefending.

Content Security Policy

Si tu Content Security Policy prohíbe la evaluación dinámica (sin unsafe-eval), usa el target browser-no-eval y valida la salida bajo esa política. Este target usa una alternativa para las comprobaciones que, de otro modo, dependen de la evaluación dinámica. Lo mismo se aplica a las extensiones de navegador con una CSP restrictiva: usa browser-no-eval para obtener la mejor compatibilidad.