Skip to main content

Protecao de codigo VBA

Quatro camadas em torno do seu VBA.
Empilhe o que o seu modelo de ameacas exige.

A protecao VBA nao e binaria. O XLS Padlock oferece quatro camadas independentes: senha do projeto, ocultar e bloquear, compilacao em bytecode e negacao de acesso a VBE. Empilhe uma ou empilhe todas as quatro. A escolha certa depende de para quem voce distribui e com que agressividade voce espera que tentem a engenharia reversa.

Do codigo-fonte legivel ao bytecode compilado.

A camada 3 e a mais dificil de vencer. Voce move os procedimentos que seleciona para o editor VBA do XLS Padlock, que os compila em bytecode armazenado no aplicativo. A logica 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 legivel com formulas Range.
Antes: o seu codigo-fonte VBA original, totalmente legivel no editor.
O mesmo modulo apos a compilacao: o corpo do procedimento e substituido por uma chamada CallXLSPadlockVBA ao bytecode compilado.
Depois: o corpo desapareceu, substituido por uma chamada CallXLSPadlockVBA. O bytecode e armazenado no aplicativo seguro e nunca e distribuido como codigo-fonte.

Cada camada derrota uma classe de ataque diferente.

Camada 1

Senha do projeto VBA

Bloqueio visual rapido contra a abertura acidental. Muitas ferramentas gratuitas conseguem remove-lo. Util apenas diante de usuarios honestos.

Camada 2

Ocultar e bloquear o VBA

O gerenciador do XLS Padlock bloqueia o projeto VBA para que ele nao possa ser visualizado, acessado ou modificado. Quem o abrir vera uma mensagem Project is unviewable e, como a planilha esta criptografada dentro do EXE, as ferramentas de remocao de senha nao conseguem alcancar a fonte.

Camada 3 (carro-chefe)

VBA Compiler

Voce move as partes criticas das suas macros para o editor VBA do XLS Padlock e as compila em bytecode. Em seguida, substitui o codigo original por uma chamada ao auxiliar CallXLSPadlockVBA, de modo que a logica de origem sai da planilha e so e executada dentro do aplicativo seguro.

Uma caixa de dialogo Project Locked exibindo Project is unviewable, mostrada ao abrir o projeto VBA de uma planilha compilada.
A camada 2 em acao: o projeto VBA bloqueado se declara nao visualizavel.

Tres modelos de ameacas, tres niveis de protecao.

Apenas ocultar o codigo-fonte dos usuarios honestos

Use a senha do projeto VBA junto com ocultar e bloquear. A configuracao mais rapida, sem refatoracao de codigo. Suficiente se os seus clientes nao tentarem ativamente a engenharia reversa.

Compilar a propriedade intelectual, manter as ligacoes

Mova os seus procedimentos sensiveis para o editor VBA do XLS Padlock e compile-os, deixando os manipuladores de eventos e o codigo dos UserForm em VBA simples. O melhor equilibrio entre seguranca e ergonomia para o desenvolvedor.

Compilar de forma agressiva, refatorar conforme necessario

Mova o maximo possivel de logica de negocio para o editor VBA e compile-a: bibliotecas matematicas, motores de calculo, exportadores, tudo o que nao depende dos eventos da interface do Excel. Conte com adaptar parte do codigo (objeto Application explicito, apenas objetos suportados), mas voce maximiza a superficie protegida.

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

Para a maioria das planilhas comerciais, a base correta sao as camadas 2, 3 e 4: oculte o projeto da interface do Excel, mova o codigo sensivel para o editor VBA do XLS Padlock para compila-lo, negue o acesso a VBE em tempo de execucao. Ignore a camada 1 (a senha do projeto), pois ela nao acrescenta nada uma vez que o EXE se recusa de qualquer forma a abrir o editor.

Free trial · No credit card · No time limit

Protect your Excel workbook in minutes.

One license, every feature included. Lifetime ownership, no subscription.