Documentação
/
Ofuscação VM
/

VM Debug Protection

VM Debug Protection

Pro

Assistir

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

Assistir no YouTube

A opção vmDebugProtection adiciona medidas antidepuração ao runtime da VM, tornando significativamente mais difícil fazer engenharia reversa do seu código protegido. A forma como cada detecção reage é definida pelas categorias debugger, automation e sandbox de vmDefenseReaction.

Com browserEnvironment.hosting definido como 'remote' (v7.14.1+), o Debug Protection também vincula o build a ser servido a partir de um host remoto: uma cópia servida a partir de um host de desenvolvimento local é tratada como divergência do ambiente de execução, e as defesas contra automação reagem.

Essas defesas também agem contra seus próprios agentes, automações e depuradores. Elas podem interromper a execução, lançar erros sem relação aparente ou produzir resultados incorretos. Use um build de testes separado para os testes funcionais; Testes e CI mostra as opções que esse build sobrescreve.

Detecção de inspetor

A partir do ofuscador 8.0.0, vmDebugProtection aceita um objeto, além de um booleano. Passar um objeto mantém o Debug Protection ativado enquanto relaxa um único detector:

JavaScript

inspectorDetection (ativado por padrão) detecta e reage a um inspetor do Chrome DevTools Protocol conectado ou a um depurador ativo. Abrir as ferramentas de desenvolvedor do navegador conecta uma sessão desse tipo, então um inspetor aberto é detectado e provoca uma reação. Mantenha-o ativado em produção; desative-o apenas se os seus usuários abrirem as ferramentas de desenvolvedor de forma legítima. No painel, esta é a subchave Inspector Detection em VM Debug Protection (v8.0.0+), que aparece quando o Debug Protection está ativado.

Frameworks de automação. Com inspectorDetection ativado (o padrão), controlar a página protegida com uma ferramenta baseada em CDP (Puppeteer, Playwright, Selenium/ChromeDriver) é detectado como um inspetor conectado. vmDebugProtection: { inspectorDetection: false } desativa apenas o detector de inspetor; o detector de automação do Debug Protection ainda pode reagir a um navegador controlado. Para builds de testes automatizados, siga Testes e CI, que desativa vmDebugProtection e vmSelfDefending.

Content Security Policy

Se a sua Content Security Policy proíbe a avaliação dinâmica (sem unsafe-eval), use o target browser-no-eval e valide a saída sob essa política. Esse target usa uma alternativa para as verificações que, de outra forma, dependeriam de avaliação dinâmica. O mesmo vale para extensões de navegador com uma CSP restritiva: use browser-no-eval para ter a melhor compatibilidade.