HimeraSearchDB
Carding_EbayThief
triada
CrackerTuch
d-shop
HimeraSearchDB

НОВОСТИ [Из песочницы] Защита проекта VBA в MS Excel

NewsBot
Оффлайн

NewsBot

.
.
Регистрация
21.07.20
Сообщения
40.408
Реакции
1
Репутация
0
Всем привет! Я обычный пользователь MS Excel. Не являющийся профессиональным программистом, но накопивший достаточно опыта, для установки и обхода защиты проектов VBA.


Дисклеймер:


В данной статье рассмотрены виды защиты проектов VBA, от несанкционированного доступа. Их сильные и слабые стороны – ранжирование.


Цель статьи показать слабые и сильные стороны каждого вида защиты проекта VBA в MS Office.


Демонстрация разработанных инструментов, в надстройке Macro Tools VBA, для снятия и установки той или иной защиты.


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

7KZ40JM-lensZm2uif2I3UgQk9Fhp0J92359xQsaEFKt-XOV09xCPa5Yd17e7Y4vuaE-QrQwpjtoMJAy7BOxDocts-vgDwQojQpcnn8wjgloPbnp8CqW4pSPMv5htgB9890wLd0



Главная панель Надстройки Macro Tools VBA

Первый вид защиты — Обычный пароль



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


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


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


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


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

A0cV1z8MmH7b438erO5cc1R5YJEdBiDgCrMIx4VD4SzKohi6f2VQ2GfoFpiahkVKht1ReX9MZaT-wAxVK2Zvhp50xV-b1pUFM0BXqxVPUxm_x43Ytre7QwYud16FNI5MVES1Dyk


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



Время на снятие: от 10 до 15 мин (в ручную)


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


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



Nj_YkQTSdk1mKZ6sdMyLkYt9ZrXENxqmmYNm9y9HC6pdZ7xRisu9N70LK0S0QLM1XsdXcCnqA0dM_9UixtRT-6Bxw95S49y4jieotUJEtuyUu8w9773jKi3Zg8cwXX9D39uAszM


Большинство пользователей Excel, не могут снять данную защиту, так как она имеет множество вариации и нюансов, для ее снятие нужно иметь представление о внутренней структуре файла Excel.


Основан, данный вид защиты, на изменение ключей:


DPB=«0B09CE0F8E108E108E»

GC=«CCCE09520B120C120CED»
в файле `vbaProject.bin`.

RACGzRAHgHZAhDpkh5qo-B4MuDJZ-CMUd-BTvwgXBsDl1LMUrQcFmZ5whRrk_cJlZ7p2X5ikFegRPXl2jLoLowoWwH78-T9CANv6rqCCzB8Hoi14DFUaqBr1A0K8KSeccfr-Iss

Кратко, как создается данная защита


Для создания данной защиты нужно, разархивировать файл Excel. Перейти в архиве в папку xl, открыть файл vbaProject.bin, в конце файла находятся наши ключи, редактируем значения ключей на пусто, сохраняем файл. Переводим наш архив, обратно в файл Excel. Готово!

Это самый простой вариант данной защиты, но существует множество модификаций.

Алгоритм снятия защиты Project is Unviewable.

1) Разархивируем подопытный файл, переходим в файл …\xl\_rels\workbook.xml.rels


SbsqJbKGS7gLk4g26PH3w481mTv15EozjjsNXzbQnDFMRW0DKdk9_X3ymJJN_0F23zBePuBhEYpIRgqzdOK0MID51HdemHlTo1QaTbWECgjNrFs9_8d7Ups-IImsI36aKTReT8g


2) В файле workbook.xml.rels ищем строку, содержащую слово vbaProject, обычно имеет следующий вид: . В этой строке нас интересует ключ Target, и его значение. Значение является название файла, в котором находится проект VBA. Иногда, защищающий меняет значения ключа на printerSettings.bin. Получается маскировка файла с проектом VBA под другой файл.

3) Открываем на редактирование файл, указанный в ключе Target, ищем в файле ключи CMG, DPB, GC. И меняем в их названиях любую букву на любую другую, например: CMC, DPC, CC. При поиске нужно быть аккуратным, так как защищающий может поместить в проект форму, подписью повторяющую один из ключей, например такую: DPB=«0B09CE0F8E108E108E». При ее изменении проект VBA, будет удален из книги Excel. Сохраняем и закрываем файл.

4) Переводим архив обратно в файл Excel.

5) Запускаем приложение Excel, выполняем следующее: в Центре управления безопасностью -> Параметры макросов -> Отключить все макросы без уведомления. Перезапускаем Excel. Данная операция нужна, для блокировки защиты, которую иногда ставят авторы макросов. Данная защита реализована следующим образом. В модуле VBA «ЭтаКнига», создается процедуры, реагирующие на события открытия книги или закрытия книги. Эти события обычно проверяют, наличие пароля на проект VBA, запрет сохранения и прочее.

6) Открываем файл. Если все правильно сделано то, Excel, будет ругаться на не правильные ключи, которые мы отредактировали, в пункте 3. Жмем, да, пока данные сообщения не закончатся и диалоговое окно закроется.

Если данное сообщение не появляется то, вы отредактировали не файл который содержит проект VBA.

-JxpNp2qXgtcvjcx09dOaY0xCTuKNSXMKmcf1BXuto99S7Z_GE-tDDZj0sZqXWY7Trq2rEZd1KJikHM41KqmHkzsMdIG_OXO3FdSIMyMB2bCfX7qKYYu1VVmExD6AaNuJiB8YKo
7) Открываем проект VBA. После всего, проект VBA должен быть доступен.

8) Но иногда защита не снимается, тогда нужно сохранить файл, проверить, что он действительно сохранился! И проделать повторно операции с 1 по 7. Обычно так происходит когда в файле workbook.xml.rels в ключе Target установлено printerSettings.bin. При сохранение, Excel исправляет это на значение на vbaProject.bin

Данную защиту можно установить и снять следующим инструментом:

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

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

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

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

dA3BfIzuQg79o3IP_Ez4x8pumirxRSn3JdNX-SE-CLrJ7X-V9HwgbrBujuel9uasdeVI5ZGwzpFMaMyKr0cNWxLn4BJTEVC-WRXuxQnfH8XjzIosuKr5GrZGriv4X7HuTDhQfzk
Просмотр кода VBA в LibreOffice


Кратко, как создается данная защита


Для создания данной защиты нужно отредактировать файл с проектом VBA — vbaProject.bin или printerSettings.bin, в зависимости от настроек в файле …\xl\_rels\workbook.xml.rels. В конце файла удаляются строки вида: Module1=32, 32, 635, 330, Z. С нужными названиями модулей.

kGIfWR-aM8dJ54j9YqQI4RhfqvYDeHJDm_22kelGtwasIa5nshjoqdSFBGJhdVVWGgN0URV55fH5WawjcPJM2GpC7qgplXrqcADmWgEahnqc3__DmhCMCeJkaDpQqjdWf-XTLy0
Для снятия данной защиты нужно в файле vbaProject.bin — восстановить удаленные записи модулей.

Данную защиту можно установить следующим инструментом.

eYCYXgNpc5vhun4VWEBaLR8VA-co7c9qv2af8OhAvJ1KyPtplzfmZQt9d_jROYG0ci_ysmkd6jIgCzYX4mv6sarBefOngkayo8l-d2wKWGBoJTNvJ5EsWK2-NUHpbtV7VczTZg8

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


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

_O09MKRA_Wg2GupSqHCnAeGJhl7zM3VU_s-5xWF9Cz3AuFefpYnzJhrUwRCVWBneumlfXqz6TSiJY6k30oE0gu9v0sx1cVxUFrN-YEj8PV6aQJ0TZj_6XBqZgxItW6VHNEsrBIY
Обфусцированный код VBA

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

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

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

Данную защиту можно установить следующим инструментом.

pKd3MdYYw84gzK1HtxteUPQYj302kXbkGLgYX6Qnx8U8Wck9zezpL9WDCMTF_-yIZ0mwMWFJeDg1k72x7zKJxn-HnQUH1uqNQJE82G3TSwTP30kOqqEeOb_KHQnu_0J7HBhGfDw

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


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

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

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

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


Заключение


В заключении хочу выделить бесполезность защит: Project is Unviewable и Hidden Module которые, по существу ни отчего не защищают. Позволяют просматривать код VBA, без изменения исходного файла, в таких программах как OpenOffice или LibreOffice. Так и снимаются без особых проблем.
 
Сверху Снизу