Escolhendo predefinições
Predefinições são configurações iniciais. Escolha uma e depois confira as opções efetivas da versão selecionada do ofuscador.
Assistir
Which Obfuscator.io Preset Should I Use? VM Low vs Default vs High
Na versão 8.0.0 e posteriores, VM Default é o ponto de partida recomendado para produção. VM Low é útil na avaliação inicial porque VM Self Defending e VM Debug Protection ficam desativados. As demais predefinições VM ativam as duas defesas. No plano Free, o painel oferece apenas a VM Low; as demais predefinições VM e suas opções VM exigem um plano pago.
VM (8.0.0 e posteriores)
| optionsPreset | O que muda |
|---|---|
vm-low-obfuscation | VM Low começa com menos defesas da VM e deixa stringArray e vmBytecodeArrayEncoding desativados. Use-a para avaliar a ofuscação VM, não como base de um build de testes. |
vm-default | VM Default combina proteção VM, String Array e defesas avançadas. Comece por ela em produção. |
vm-high-obfuscation | VM High adiciona Stateful Opcodes, Stack Encoding e Compact Dispatcher. Meça o custo no seu código. |
vm-ultra-high-obfuscation | VM Ultra High mantém Stateful Opcodes e Stack Encoding, mas não Compact Dispatcher, e adiciona Control Flow Flattening e outras transformações básicas. Isso reduz significativamente o desempenho em tempo de execução. |
Na versão 8.0.0 e posteriores, vm-anti-llm (VM Anti-LLM) e vm-medium-obfuscation (VM Medium) geram as mesmas opções que vm-default e deixam de ser escolhas separadas no painel. Versões anteriores podem exibi-los separadamente.
Ofuscação básica
| optionsPreset | selfDefending | debugProtection | disableConsoleOutput |
|---|---|---|---|
default | false | false | false |
low-obfuscation | true | false | true |
medium-obfuscation | true | false | true |
high-obfuscation | true | true | true |
Predefinições mais pesadas podem aumentar o tamanho da saída e o tempo de execução. Meça a inicialização, os caminhos frequentes e o tamanho comprimido do seu bundle em vez de confiar em multiplicadores fixos de lentidão. Para proteger funções específicas, consulte Selecionando funções específicas.
Para um build via API, obtenha as opções de uma predefinição integrada para a sua versão do ofuscador no endpoint de predefinições e envie-as como options (veja a Referência da API).
Predefinições personalizadas
As predefinições integradas são pontos de partida. Sempre que ajustar algo a partir de uma delas, salve o resultado em vez de reconstruí-lo da próxima vez: selecione Nova predefinição na biblioteca de predefinições, no topo do painel de opções. A predefinição guarda cada opção exatamente como está definida agora, com o nome que você escolher e uma descrição opcional; ela não guarda a versão do ofuscador, então vale a versão selecionada no momento do build. As predefinições que você salvar ficam listadas em Personalizadas. Predefinições personalizadas estão disponíveis nos planos Pro e superiores, até 20 por conta.
Clique no cartão de uma predefinição para aplicá-la ao painel de opções. Assim que você altera uma opção, a predefinição aplicada é marcada como Editada: Desfazer alterações restaura as opções dela, e nas suas próprias predefinições Atualizar predefinição salva as alterações nela. Antes que outra predefinição substitua alterações não salvas, você precisa confirmar. Editar, duplicar e excluir ficam no menu da predefinição. Uma configuração comum é uma predefinição de produção e uma variante de testes dela que adiciona as sobrescritas de Testes e CI, para que os dois builds executem as mesmas transformações.
Dois campos a mais no diálogo de salvamento levam uma predefinição além do seu próprio painel:
- Compartilhar com minha equipe a publica para a sua equipe, onde ela também pode se tornar a predefinição padrão da equipe. Só o proprietário da equipe vê o interruptor. Veja Predefinições compartilhadas.
- Alias da API permite que um build use a predefinição pelo nome: no pacote
javascript-obfuscator(5.8.0+), comoptionsPresetdefinido com o alias, as opções da predefinição são buscadas no momento do build, então a configuração vive no painel e uma alteração ali chega ao próximo build sem commit. Uma requisição direta à API busca as opções no endpoint de predefinições em uma requisição separada (veja a Referência da API). Veja Usando o pacote NPM.
