Обфускация кода – инструмент запутывания кода макроса, с целью защиты его от не санкционированного доступа, сохраняющий его функциональность, но затрудняющий его анализ

main ribbon главная панель запутывание кода
Главная панель запутывание кода на ленте Excel

Обфускация кода — производится в несколько этапов:

  1. Парсер кода VBA — сбор, из проекта VBA, названий переменных (локальных и глобальных), названий процедур и функций, название всех модулей VBA, названия «контролов» UserForms
  2. Обфускация — главный процесс запутывания кода, производится по списку сформированному парсером кода. Перед выполнением операции «Удаление форматирования» — производится тестирование кода на работоспособность.
  3. Удаление форматирования — удаление из кода: комментариев, форматирование кода, нумерации строк,  пустых строк, перенос строк, инструкции «Option»

Обфускация закончена!

Данный инструмент, рекомендуется использовать совместно с инструментами:

  1. скрыть модули VBA
  2. установить пароль «Project is UNVIEWABLE»
Сравнение проектов VBA до и после запутывания кода
Сравнение проектов VBA до и после запутывания кода

Парсер кода VBA:

В процессе парсинга формируются две таблицы — «DATA_OBF_VBATools» и «STRING_OBF_VBATools«.

В таблица DATA_OBF_VBATools, содержит данные о названиях: переменных,  процедур и функций, модулей и контролов UserForm. Которым в процессе парсинга присваиваются новые зашифрованные названия. Так же для каждого элемента в таблице можно выбрать шифровать его или нет при обфускации.

В таблица STRING_OBF_VBATools, содержит все строковые переменные используемые в проекте VBA. В процессе обфускации эти данные будут помещены в отдельный модуль проекта VBA. А в модулях где они используются они будут заменены на присвоенный им шифр.

Обфускация кода
Таблица данных собранная парсером кода VBA

Обфускация кода:

Нужно перейти в сформированную ранее таблицу «DATA_OBF_VBATools«.

На панели инструментов, надстройки Macro Tools VBA, выбрать пункт обфускация кода.

В диалоговом окне выбрать файл который нужно зашифровать.

Дождаться окончания процесса обфускации кода.

Инструмент обфускации кода VBA надстройки Macro Tools VBA
Инструмент обфускации кода VBA

Удаление форматирования:

Завершающий этап обфускации удаление форматирования кода VBA.

Настройка параметров, удаления форматов кода: комментарий, форматирования, нумерацию строк, пустых и переносов строк.

Данный инструмент можно использовать и для простых, проектов в которых нужно удалить те или иные параметры кода VBA.

Удаление форматирования кода VBA
Удаление форматирования кода VBA