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

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