Skip to main content

Proteção de código VBA

Quatro camadas em torno do seu VBA.
Empilhe o que o seu modelo de ameaças exige.

A proteção VBA não é binária. O XLS Padlock oferece quatro camadas independentes: senha do projeto, ocultar e bloquear, compilação em bytecode e negação de acesso à VBE. Empilhe uma ou empilhe todas as quatro. A escolha certa depende de para quem você distribui e com que agressividade você espera que tentem a engenharia reversa.

Do código-fonte legível ao bytecode compilado.

A camada 3 é a mais difícil de vencer. Você move os procedimentos que seleciona para o editor VBA do XLS Padlock, que os compila em bytecode armazenado no aplicativo. A lógica original sai da planilha: onde a macro costumava ser executada, resta apenas uma chamada ao auxiliar CallXLSPadlockVBA.

A macro VBA original no Visual Basic Editor: um procedimento Sub calculate legível com fórmulas Range.
Antes: o seu código-fonte VBA original, totalmente legível no editor.
O mesmo módulo após a compilação: o corpo do procedimento é substituído por uma chamada CallXLSPadlockVBA ao bytecode compilado.
Depois: o corpo desapareceu, substituído por uma chamada CallXLSPadlockVBA. O bytecode é armazenado no aplicativo seguro e nunca é distribuído como código-fonte.

Cada camada derrota uma classe de ataque diferente.

Camada 1

Senha do projeto VBA

Bloqueio visual rápido contra a abertura acidental. Muitas ferramentas gratuitas conseguem removê-lo. Útil apenas diante de usuários honestos.

Camada 2

Ocultar e bloquear o VBA

O gerenciador do XLS Padlock bloqueia o projeto VBA para que ele não possa ser visualizado, acessado ou modificado. Quem o abrir verá uma mensagem Project is unviewable e, como a planilha está criptografada dentro do EXE, as ferramentas de remoção de senha não conseguem alcançar a fonte.

Camada 3 (carro-chefe)

VBA Compiler

Você move as partes críticas das suas macros para o editor VBA do XLS Padlock e as compila em bytecode. Em seguida, substitui o código original por uma chamada ao auxiliar CallXLSPadlockVBA, de modo que a lógica de origem sai da planilha e só é executada dentro do aplicativo seguro.

Uma caixa de diálogo Project Locked exibindo Project is unviewable, mostrada ao abrir o projeto VBA de uma planilha compilada.
A camada 2 em ação: o projeto VBA bloqueado se declara não visualizável.

Três modelos de ameaças, três níveis de proteção.

Apenas ocultar o código-fonte dos usuários honestos

Use a senha do projeto VBA junto com ocultar e bloquear. A configuração mais rápida, sem refatoração de código. Suficiente se os seus clientes não tentarem ativamente a engenharia reversa.

Compilar a propriedade intelectual, manter as ligações

Mova os seus procedimentos sensíveis para o editor VBA do XLS Padlock e compile-os, deixando os manipuladores de eventos e o código dos UserForm em VBA simples. O melhor equilíbrio entre segurança e ergonomia para o desenvolvedor.

Compilar de forma agressiva, refatorar conforme necessário

Mova o máximo possível de lógica de negócio para o editor VBA e compile-a: bibliotecas matemáticas, motores de cálculo, exportadores, tudo o que não depende dos eventos da interface do Excel. Conte com adaptar parte do código (objeto Application explícito, apenas objetos suportados), mas você maximiza a superfície protegida.

Bloqueie o projeto, compile a propriedade intelectual, negue o editor.

Para a maioria das planilhas comerciais, a base correta são as camadas 2, 3 e 4: oculte o projeto da interface do Excel, mova o código sensível para o editor VBA do XLS Padlock para compilá-lo, negue o acesso à VBE em tempo de execução. Ignore a camada 1 (a senha do projeto), pois ela não acrescenta nada uma vez que o EXE se recusa de qualquer forma a abrir o editor.

Avaliação gratuita · Sem cartão de crédito

Proteja sua planilha Excel em poucos minutos.

Uma licença, todos os recursos incluídos. Licença perpétua, sem assinatura.