Skip to main content

Protección del código VBA

Cuatro capas alrededor de su VBA.
Apile lo que su modelo de amenazas necesite.

La protección VBA no es binaria. XLS Padlock ofrece cuatro capas independientes: contraseña de proyecto, ocultar y bloquear, compilación a bytecode y denegación de acceso a la VBE. Apile una o apile las cuatro. La elección correcta depende de a quién distribuye y con cuánta agresividad espera que intenten la ingeniería inversa.

Del código fuente legible al bytecode compilado.

La capa 3 es la más difícil de vencer. Usted mueve los procedimientos que selecciona al editor VBA de XLS Padlock, que los compila a bytecode almacenado en la aplicación. La lógica original sale del libro de trabajo: donde se ejecutaba la macro, solo queda una llamada al asistente CallXLSPadlockVBA.

La macro VBA original en el Visual Basic Editor: un procedimiento Sub calculate legible con fórmulas Range.
Antes: su código fuente VBA original, totalmente legible en el editor.
El mismo módulo tras la compilación: el cuerpo del procedimiento se reemplaza por una llamada CallXLSPadlockVBA al bytecode compilado.
Después: el cuerpo ha desaparecido, reemplazado por una llamada CallXLSPadlockVBA. El bytecode se almacena en la aplicación segura y nunca se distribuye como código fuente.

Cada capa frustra una clase de ataque diferente.

Capa 1

Contraseña de proyecto VBA

Bloqueo visual rápido contra la apertura accidental. Muchas herramientas gratuitas pueden quitarlo. Útil solo frente a usuarios honestos.

Capa 2

Ocultar y bloquear el VBA

El administrador de XLS Padlock bloquea el proyecto VBA para que no se pueda ver, abrir ni modificar. Quien lo abra verá un mensaje Project is unviewable y, como el libro está cifrado dentro del EXE, las herramientas de eliminación de contraseñas no pueden acceder a la fuente.

Capa 3 (insignia)

VBA Compiler

Usted mueve las partes críticas de sus macros al editor VBA de XLS Padlock y las compila a bytecode. Después reemplaza el código original por una llamada al asistente CallXLSPadlockVBA, de modo que la lógica fuente sale del libro de trabajo y solo se ejecuta dentro de la aplicación segura.

Un cuadro de diálogo Project Locked que dice Project is unviewable, mostrado al abrir el proyecto VBA de un libro compilado.
La capa 2 en acción: el proyecto VBA bloqueado se declara no visible.

Tres modelos de amenazas, tres niveles de protección.

Solo ocultar el código fuente a los usuarios honestos

Use la contraseña de proyecto VBA junto con ocultar y bloquear. La configuración más rápida, sin refactorización de código. Suficiente si sus clientes no intentarán activamente la ingeniería inversa.

Compilar la propiedad intelectual, conservar el cableado

Mueva sus procedimientos sensibles al editor VBA de XLS Padlock y compílelos, dejando los controladores de eventos y el código de los UserForm en VBA simple. El mejor equilibrio entre seguridad y ergonomía para el desarrollador.

Compilar de forma agresiva, refactorizar si es necesario

Mueva la mayor cantidad posible de lógica de negocio al editor VBA y compílela: bibliotecas matemáticas, motores de cálculo, exportadores, todo lo que no dependa de los eventos de la interfaz de Excel. Cuente con adaptar parte del código (objeto Application explícito, solo objetos compatibles), pero maximiza la superficie protegida.

Bloquee el proyecto, compile la propiedad intelectual, deniegue el editor.

Para la mayoría de los libros de trabajo comerciales, la base correcta son las capas 2, 3 y 4: oculte el proyecto de la interfaz de Excel, mueva el código sensible al editor VBA de XLS Padlock para compilarlo, deniegue el acceso a la VBE en tiempo de ejecución. Omita la capa 1 (la contraseña de proyecto), ya que no aporta nada una vez que el EXE se niega de todos modos a abrir el editor.

Prueba gratuita · Sin tarjeta · Sin límite de tiempo

Proteja su libro Excel en minutos.

Una licencia, todas las características incluidas. Propiedad de por vida, sin suscripción.