Найти в Дзене
VBATools

Снимаем пароль с любого проекта VBA

Привет всем! В данной статье опишу все виды, встречавшихся мне, защит проектов VBA в офисной программе Excel!
Первый вид: и самый простой защита от "дурака" - обычный пароль
Время на снятие: мгновенно
Недостаток: быстрый доступ к запароленному модулю VBA
Оглавление

Привет всем! В данной статье опишу все виды, встречавшихся мне, защит проектов VBA в офисной программе Excel!

Первый вид: и самый простой защита от "дурака" - обычный пароль

Время на снятие: мгновенно

Недостаток: быстрый доступ к запароленному модулю VBA

Стандартный инструмент (В среде VBE:
панель Tools -> VBAProject Properties -> Protection). 

Самая легко снимающаяся защита. В интернете легко находится код, для снятия данной защиты. 

Данную защиту можно снять следующим инструментом надстройки
Macro Tools VBA:

Снятие пароля VBA надстройкой Macro Tools VBA
Снятие пароля VBA надстройкой Macro Tools VBA

Второй вид защиты — Project is Unviewable

Время на снятие:  от 10 до 15 мин (в ручную)
Недостаток: доступ к исходному коду модуля VBA
Один из самых распространённых видов защит.  Встречается в 95% файлах с защитой модуля VBA. При попытке открыть проект, открывается диалоговое окно, с  сообщением: 
Project is Unviewable.

Окно при снятии пароля
Окно при снятии пароля

В надстройке Macro Tools VBA - реализован инструмент для снятия данной защиты. Для этого нужно на панели инструментов выбрать данный инструмент. Так же если вам нужно то можете и установить ее на свой файл.

Более подробно все нюансы данной защиты описаны в моей статье на хабре: Защита проекта VBA в MS Excel

Инструмент снятия защиты Project is Unviewable
Инструмент снятия защиты Project is Unviewable

Третий вид защиты — Hidden  Module, скрытые модули VBA

Время на снятие:  от 15 до 20 мин (нужен редактор OLE — объектов, Structured Storage Viewer, например.

Недостаток: доступ к коду модуля VBA

Менее распространенный вид  защиты обычно встречается в комбинации с защитой
Project is Unviewable. При установке данной защиты модуль VBA не отображается в проекте книги Excel. О его существовании можно узнать, проанализировав код VBA (что требует время!) или открыть файл Excel в программе  OpenOffice  или  LibreOffice (так же можно смотреть код при защите Project is Unviewable, но данный способ не дает возможность получить рабочий файл, без пароля).

Просмотр кода VBA в  LibreOffice
Просмотр кода VBA в LibreOffice

Четвертый вид защиты — Обфускация кода

Время на снятие:  неизвестно, зависит от объема кода и пере использования частей кода

Обфусцированный код VBA
Обфусцированный код VBA
  • Недостаток:  необходимость тестирование файла после обфускации, на работоспособность

    Крайне редкий вид защиты, основанный на изменении исходного кода VBA, в не удобочитаемый вид для человека. Удаляются все комментарии, форматирование кода, переименовываются названия всех переменных,  процедур, функций, модулей и прочего. Злоумышленнику никогда не удастся восстановить первоначальный вид кода, и потребует достаточно много времени для, его восстановления в удобно читаемый вид для человека.  

    Для де-обфускации кода нужно иметь  время, специализированное ПО.

    Данную защиту можно установить следующим инструментом надстройки Macro Tools VBA -
    обфускация кода:
-6

Пятый вид защиты — Перенос кода в dll

Время на снятие:  неизвестно, зависит от языка программирования и квалификации

Недостаток:  необходимости в дополнительном  файле dll

Один из самых редких видов защиты. Основная идея перенос основного кода в отдельную библиотеку dll, написанную на любом другом языке программирования. Не распространённость данный вид защиты получил по следующей причине,  необходимости за файлом Excel, «таскать» дополнительный файл, dll.

Для получения доступа к коду dll, нужно обладать специальными знаниями.