Primeiros passos
O Obfuscator.io transforma seu código-fonte legível em uma versão protegida, difícil de entender e de submeter a engenharia reversa. É perfeito para proteger algoritmos proprietários, lógica de licenciamento e código crítico para o negócio.
Bem-vindo ao Obfuscator.io
Este guia mostra como ofuscar seu primeiro arquivo, escolher uma predefinição e entender o painel de opções. Para se aprofundar, veja as seções Ofuscação VM, Ofuscação básica e Boas práticas.
Início rápido
1. Cole seu código
Insira seu código JavaScript no painel do editor à esquerda. Você pode colar o código diretamente ou usar o recurso de envio de arquivos para processamento em lote.
2. Escolha uma predefinição
Selecione uma predefinição na lista suspensa do painel de opções. Comece com
Low Obfuscationpara mudanças mínimas ouMedium Obfuscationpara uma proteção equilibrada. As predefinições VM oferecem a segurança mais forte.3. Clique em "Obfuscate"
Pressione o botão Obfuscate para transformar seu código. A saída protegida aparece no painel à direita.
4. Copie ou baixe
Use o botão Copiar ou Baixar para obter seu código ofuscado. A saída está pronta para uso em produção.
Compatibilidade do código Importante
A ofuscação (tanto VM quanto não VM) transforma seu código de maneiras que afetam certos comportamentos do JavaScript em tempo de execução. Seu código não pode depender destes recursos:
function.toString()/class.toString()A ofuscação muda completamente a representação do código-fonte. Código que analisa ou compara o código-fonte de funções vai quebrar.
function.name/class.nameNomes de funções e classes são renomeados para identificadores aleatórios. Código que depende de
.namepara logs, serialização ou reflexão vai receber nomes ofuscados.
// Before obfuscation
function calculatePrice() { return 100; }
console.log(calculatePrice.name); // "calculatePrice"
console.log(calculatePrice.toString()); // "function calculatePrice() { return 100; }"
// After obfuscation
console.log(calculatePrice.name); // "_0x1a2b3c" (random)
console.log(calculatePrice.toString()); // Completely transformed code
Opções básicas
Antes de ofuscar, configure estas opções básicas de acordo com o ambiente de destino.
Target target
Especifica o ambiente de execução do código ofuscado:
browser(padrão) - ambiente padrão de página web. O código de saída é idêntico ao denode, mas algumas opções específicas de navegador não podem ser usadas com o targetnode.browser-no-eval- igual abrowser, mas a saída não usaeval(). Use quando a página de destino tiver uma Content Security Policy que proíbeeval/unsafe-eval.node- ambiente Node.js. As opções específicas de navegador são desativadas (elas exigemwindow/documente não teriam efeito ou lançariam erro no Node). Algumas defesas dovmSelfDefendingque dependem de APIs exclusivas do navegador - detecção de navegador headless, recuperação de realm limpo via iframe, verificações anti-inspector/DOM - não são geradas para este target.service-worker- contexto de Service Worker. Semwindow, semdocument, com um globalselfdiferente.userscript- sandbox de gerenciador de userscripts (por exemplo, Tampermonkey). As defesas dovmSelfDefendingsão ajustadas de acordo. Requer o obfuscator v6.9.0+.bytenode- para código que será compilado para.jsccom o bytenode. Requer o obfuscator v6.13.0+.
Strict Mode strictMode
Controla como o obfuscator lida com o modo estrito do JavaScript:
Auto(padrão) - Detecta o modo estrito automaticamente a partir do código. O obfuscator analisa seu código em busca de diretivas"use strict"Enable- Força o tratamento em modo estrito para todo o código, independentemente de haver ou não"use strict"Disable- Apenas diretivas"use strict"explícitas no código-fonte são tratadas como modo estrito
Entendendo as predefinições
Predefinições são combinações de opções pré-configuradas. Existem dois grupos separados:
Predefinições VM Pro (virtualização em bytecode)
| Predefinição | Segurança | Desempenho | Recursos |
|---|---|---|---|
VM Low | Boa | ~10x | VM básica, dispatch indireto |
VM Medium | Forte | ~12-15x | + Embaralhamento de opcodes, codificação, iscas |
VM High | Muito forte | ~15-18x | + Dead code, opcodes com estado, codificação da pilha |
VM Ultra High | Máximo | ~20x+ | + Camadas de ofuscação não VM |
Os números de desempenho são médias - o impacto real depende muito do código (por exemplo, código com muita recursão ou com loops críticos fica visivelmente mais lento).
Predefinições não VM (ofuscação padrão)
| Predefinição | Proteção | Desempenho | Recursos |
|---|---|---|---|
Default | Básica | Mínimo | String array, simplify |
Low | Leve | ~1.1x | + Self-defending, desativar console |
Medium | Moderada | ~1.5x | + Control flow, dead code, base64 |
High | Forte | ~2x | + Proteção contra depuração, codificação rc4 |
Visão geral da interface
- Editor de entrada - Cole ou digite seu código-fonte JavaScript. Arraste e solte arquivos ou use o botão de envio. Arquivos HTML com scripts inline também são suportados Pro.
- Painel de saída - Exibe o resultado ofuscado. Use os botões Copiar ou Baixar para obter o código protegido.
- Seletor de predefinição - Escolha predefinições VM ou não VM. As predefinições VM ficam agrupadas no topo. A predefinição determina as opções base que você pode personalizar.
- Painel de opções - Ajuste as configurações de ofuscação em detalhe. Clique no ícone
?ao lado de qualquer opção para ver a documentação dela. - Botão Obfuscate - Transforma seu código usando as opções selecionadas. As predefinições VM são processadas no servidor; as predefinições não VM rodam no seu navegador.
- Envio de vários arquivos Pro - Processe vários arquivos de uma vez e baixe como ZIP.
- Painel de histórico Pro - Acesse suas ofuscações anteriores e restaure a entrada/saída.
