Защита проекта VBA в MS Excel
Всем привет! Я обычный пользователь MS Excel. Не являющийся профессиональным программистом, но накопивший достаточно опыта, для установки и обхода защиты проектов VBA.
Дисклеймер:
В данной статье рассмотрены виды защиты проектов VBA, от несанкционированного доступа. Их сильные и слабые стороны – ранжирование.
Цель статьи показать слабые и сильные стороны каждого вида защиты проекта VBA в MS Office.
Демонстрация разработанных инструментов, в надстройке Macro Tools VBA, для снятия и установки той или иной защиты.
Все инструменты реализованы стандартными средствами VBA, без использования дополнительных библиотек.

Главная панель Надстройки Macro Tools VBA
Первый вид защиты — Обычный пароль
Время на снятие: мгновенно
Недостаток: быстрый доступ к запароленному модулю VBA
Стандартный инструмент (В среде VBE: панель Tools -> VBAProject Properties -> Protection).
Самая легко снимающаяся защита. В интернете легко находится код, для снятия данной защиты.
Данную защиту можно снять следующим инструментом:

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

Большинство пользователей Excel, не могут снять данную защиту, так как она имеет множество вариации и нюансов, для ее снятие нужно иметь представление о внутренней структуре файла Excel.
Основан, данный вид защиты, на изменение ключей:
CMG=«4A488FCC54D054D054D054D0» DPB=«0B09CE0F8E108E108E» GC=«CCCE09520B120C120CED»
в файле vbaProject.bin .

Кратко, как создается данная защита
Для создания данной защиты нужно, разархивировать файл Excel. Перейти в архиве в папку xl, открыть файл vbaProject.bin, в конце файла находятся наши ключи, редактируем значения ключей на пусто, сохраняем файл. Переводим наш архив, обратно в файл Excel. Готово!
Это самый простой вариант данной защиты, но существует множество модификаций.
Алгоритм снятия защиты Project is Unviewable.
1) Разархивируем подопытный файл, переходим в файл …\xl\_rels\workbook.xml.rels

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.

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

Третий вид защиты — 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 — vbaProject.bin или printerSettings.bin,в зависимости от настроек в файле …\xl\_rels\workbook.xml.rels. В конце файла удаляются строки вида: Module1=32, 32, 635, 330, Z. С нужными названиями модулей.

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

Четвертый вид защиты — Обфускация кода
Время на снятие: неизвестно, зависит от объема кода и пере использования частей кода

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

Пятый вид защиты — Перенос кода в dll
Время на снятие: неизвестно, зависит от языка программирования и квалификации
Недостаток: необходимости в дополнительном файле dll
Один из самых редких видов защиты. Основная идея перенос основного кода в отдельную библиотеку dll, написанную на любом другом языке программирования. Не распространённость данный вид защиты получил по следующей причине, необходимости за файлом Excel, «таскать» дополнительный файл, dll.
Для получения доступа к коду dll, нужно обладать специальными знаниями.
Заключение
В заключении хочу выделить бесполезность защит: Project is Unviewable и Hidden Module которые, по существу ни отчего не защищают. Позволяют просматривать код VBA, без изменения исходного файла, в таких программах как OpenOffice или LibreOffice. Так и снимаются без особых проблем.
- VBA
- защита проекта VBA
- Project is Unviewable
- Hidden Module
- Информационная безопасность
- Visual Basic for Applications
Project is unviewable как снять защиту vba
Здравствуйте.
Есть ли какие-нибудь платные программы, которые могут защитить VBA-проекты (макросы) от взлома?
То есть я ставлю пароль и нужно, чтоб этот пароль нельзя снять.
Я сейчас смотрю интернет, и там пишут, что есть такие платные программы. Но я пока не нашел — ссылки на форумы и просто на статьи, в которых учат ставить пароль.
Защита нужна на время тестирования макроса. После тестирования защита не нужна.
Предполагается защита не от хакеров, а от пользователей, которые могут без знаний, а используя только советы из интернета, без привлечения денег и хакеров, посмотреть код макроса.
Изменено: Karataev — 23.09.2018 11:23:24
Сообщений: 22099 Регистрация: 28.12.2016
Excel 2013, 2016
21.09.2018 18:36:42
Karataev, самому такая возможность не нужна но просто поиск выдает например это https://www.xlspadlock.com/vba-code-protection
По вопросам из тем форума, личку не читаю.
Пользователь
Сообщений: 2308 Регистрация: 23.10.2014
21.09.2018 18:54:14
Пользователь
Сообщений: 11599 Регистрация: 07.11.2014
OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome
21.09.2018 19:04:59
Karataev, а вас не взломали, часом? Как-то странно формируете мысли… Раньше такого не было
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Пользователь
Сообщений: 2308 Регистрация: 23.10.2014
21.09.2018 19:15:16
Предлагаю в этой теме писать названия программ, хоть это и курилка, но и в курилке может быть что-нибудь полезное.
Пользователь
Сообщений: 712 Регистрация: 19.08.2018
22.09.2018 13:48:36
Karataev, если очень хочется защитить проект, пишите свою dll и используйте важные функции через нее.
но гарантии от взломе никто не дает. Так как на любого спеца найдется другой.
Пользователь
Сообщений: 2308 Регистрация: 23.10.2014
22.09.2018 13:51:18
Человеку может понадобится макрос на языке VBA. В таком случае мне нужно делать два макроса: один на VBA. другой на C#. Это очень сложно для меня.
Пользователь
Сообщений: 712 Регистрация: 19.08.2018
22.09.2018 13:53:05
Karataev, иначе закрить прект на VBA не выйдет
максимум «project is unviewable»
Пользователь
Сообщений: 2308 Регистрация: 23.10.2014
22.09.2018 13:59:46
Вроде платные программы закрывают проект. Я сам не пользовался, поэтому не знаю, скрывают они или нет.
Просто в интернете есть информация, как легко открыть пароль, при этом вообще всё сохраняется в исходном виде: и код и комментарии.
Может быть платные программы хотя бы защитят от этого.
Пользователь
Сообщений: 3007 Регистрация: 18.07.2016
22.09.2018 14:15:15
Если все время думаешь о том, что в твою квартиру залезут воры и что-то украдут, рано или поздно это случится. Наверное, лучше думать не о сигнализации на дверях, а о том, для чего и для кого предназначены вещи в этом доме, и давать этим вещам (в пределах разумного, конечно) возможность выполнять свое предназначение. ИМХО
Пользователь
Сообщений: 11891 Регистрация: 22.12.2012
Excel 2016, 365
22.09.2018 14:34:51
Доброе время суток
Коллега, как то это
| Цитата |
|---|
| Karataev написал: Человеку может понадобится макрос на языке VBA |
плохо стыкуется с
| Цитата |
|---|
| Karataev написал: защитить VBA-проекты (макросы) от взлома |
Если вы стремитесь защитить проект от просмотра/изменения, то какая тогда разница конечному пользователю на VBA он написан или нет, ведь он же не будет иметь доступ?
_Igor_61, не понял вашу сентенцию — вы к тому, чтобы двери на ключ не закрывать?
Изменено: Андрей VG — 22.09.2018 14:36:36
Пользователь
Сообщений: 2308 Регистрация: 23.10.2014
22.09.2018 14:39:35
Андрей VG, да, увидел двузначность. Я имел ввиду защиту на время теста. После теста мне все равно будет видеть код или нет.
Скрывать код на совсем я не планировал.
Пользователь
Сообщений: 11891 Регистрация: 22.12.2012
Excel 2016, 365
22.09.2018 15:27:06
Karataev, понял. То есть вы хотите на период тестирования заказчиком разработки сделать проект недоступным для него вплоть до оплаты, а потом отдаёте как есть с открытым кодом.
Посмотрите, хотя он и старый, обзор программ защиты , предоставленный Владимиром (ZVI). Там же он пишет, что у него есть подход защиты проекта от ОО (во что с трудом верится, разве что это нечто подобно той программе, ссылку на которую дал Михаил (БМВ)). Попробуйте списаться с Владимиром, вполне возможно он поделится своим способом защиты проектов от ОО.
Вариант, как сделать проект unviewabl e, не приобретая для этого какую-либо программу.
Пользователь
Сообщений: 3007 Регистрация: 18.07.2016
23.09.2018 17:01:51
| Цитата |
|---|
| _Igor_61 написал: в пределах разумного |
Пользователь
Сообщений: 2570 Регистрация: 02.04.2015
27.09.2018 21:51:43
| Цитата |
|---|
| Андрей VG написал: Вариант, как сделать проект unviewabl e, не приобретая для этого какую-либо программу. |
Андрей, что то у меня не взлетает, ради интереса пробовал на xlam. Не тестировал сие колдунство?
«Бритва Оккама» или «Принцип Калашникова»?
Пользователь
Сообщений: 2308 Регистрация: 23.10.2014
30.09.2018 09:03:45
ZVI (ссылка на тему в посте 13) пишит, что защита паролем макроса сделана от случайных изменений, а не для злоумышленников.
Значит Майкрософт не будет усиливать защиту. Я думал, что пароль сделан от злоумышленников.
Пользователь
Сообщений: 11891 Регистрация: 22.12.2012
Excel 2016, 365
30.09.2018 09:26:21
| Цитата |
|---|
| bedvit написал: Андрей, что то у меня не взлетает, ради интереса пробовал на xlam. Не тестировал сие колдунство? |
Привет, Виталий.
Да, вот прикладываю файл. Поменял в Notepad++, используя Double Commander.Было
CMG="C7C56CEA9C1E3222322232223222" DPB="6163CA0FCB0FCB0F" GC="FBF9503EEB3FEB3F14"
CMG="07050CEA9C1E3222322232223222" DPB="01030A0FCB0FCB0F" GC="0B09003EEB3FEB3F14"
Всё, проект не доступен для просмотра.
Дополню для xlam
Было
CMG="CECCE4032C0D2511251125112511" DPB="C3C1E91EDF1FDF1FDF" GC="B8BA92E593E5931A"
Заменил на
CMG="876745362C0D2511251125112511" DPB="12346721DF1FDF1FDF" GC="347A25F193E5931A"
точно так же не доступен для просмотра
Прикрепленные файлы
- demoRibbon.xlsb (12.84 КБ)
- макрос 21 08.xlam (48.31 КБ)
Изменено: Андрей VG — 30.09.2018 09:55:50
Пользователь
Сообщений: 2570 Регистрация: 02.04.2015
30.09.2018 09:52:27
Хм, я ставил «FFFF. » — аналогичное количество, не взлетело. Попробую изменить только часть. Андрей, спасибо за тест.
«Бритва Оккама» или «Принцип Калашникова»?
Пользователь
Сообщений: 4549 Регистрация: 10.09.2017
30.09.2018 14:28:28
Здравствуйте, коллеги! Андрей, спасибо, от «кривых рук» защищает!
Пользователь
Сообщений: 306 Регистрация: 22.12.2016
02.10.2018 15:41:36
| Цитата |
|---|
| Андрей VG написал: Всё, проект не доступен для просмотра |
не соображу что на что менять надо? Можете пояснить.
Сообщений: 22099 Регистрация: 28.12.2016
Excel 2013, 2016
02.10.2018 15:56:36
Мартын, вы все ссылки Андрей VG, потыкали? тут были?
По вопросам из тем форума, личку не читаю.
Пользователь
Сообщений: 306 Регистрация: 22.12.2016
02.10.2018 16:01:31
| Цитата |
|---|
| БМВ написал: тут были? |
Хотите обидеть?
Конечно был, но то предложение (где по сути объясняется что, сколько и на что менять) для моего аглицкого то-ли слишком заковыристо, то-ли там какой-то специфический сленг применён.
Изменено: Мартын — 02.10.2018 16:01:54
Сообщений: 22099 Регистрация: 28.12.2016
Excel 2013, 2016
02.10.2018 16:27:49
Это?
For Excel workbook files (tested on .xlsb) you can replace the CMG, DPB and GC strings between parenthesis with any even number of “F”s greater than or equal to the number of characters in the original strings and for Add-in files (tested on .xlam) you need to replace them with the exact same number of “F”s as the number of characters in the original strings.
Так даже Google Translate нормально перевел ? с грешком, но смысл полностью понятен
Для файлов рабочей книги Excel ( проверенных прверено на .xlsb) вы можете заменить в строках CMG, DPB и GC между скобками кавычками любым четным числом «F», большим или равным количеству символов в исходных строках и А для файлов надстроек файлам надстройки (проверено на .xlam), вам необходимо заменить их на то же количество «F» как количество символов в исходных строках.
Ну а Андрей VG, менял не на FFFF
По вопросам из тем форума, личку не читаю.
Пользователь
Сообщений: 306 Регистрация: 22.12.2016
02.10.2018 16:49:17
| Цитата |
|---|
| БМВ написал: Ну а Андрей VG , менял не на FFFF |
Вот тут мой мозг и закипел, потому, что читаю одно, а пример вижу другой!
Да и количество символов в строках с примером не вяжется. Почему в первом примере заменены всего 3 символа, да и то через один и на «нули», а не на F?
Пользователь
Сообщений: 11891 Регистрация: 22.12.2012
Excel 2016, 365
02.10.2018 16:50:04
| Цитата |
|---|
| Мартын написал: Хотите обидеть? |
Ну, возможно и да. Если вы не можете между двумя состояниями было стало увидеть разницу. то дальше разжевывать, лично у меня, нет желания.
| Цитата |
|---|
| БМВ написал: менял не на FFFF |
В последней не выложенной тут версии (обсуждал в переписке с Виталием) вообще заменял первые цифры после » на ЗАЩИТАВБА — работало, несмотря на то, что надстройка Виталия была не самой маленькой по объёму. То есть новое стало к первому примеру выглядело бы так
CMG="ЗАЩИТАВБАC1E3222322232223222" DPB="ЗАЩИТАВБАB0FCB0F" GC="ЗАЩИТАВБАB3FEB3F14"
Пользователь
Сообщений: 306 Регистрация: 22.12.2016
02.10.2018 16:57:27
| Цитата |
|---|
| Андрей VG написал: Если вы не можете между двумя состояниями было стало увидеть разницу. |
Я разницу вижу, но не могу понять принцип и соотнести увиденное с объяснением на английском. В Вашем первом примере где какая связь между «чётным количеством» и символами «F»?
Документация Macro Tools VBA
Удалить пароли с проектов VBA – удаление паролей с проектов VBA, в том числе «Project is UNVIEWABLE», и обратная установка UNVIEWABLE
- “Установить пароль Unviewable” – устанавливает пароль на проект VBA выбранной книги
- “Снять пароль Unviewable” – снимает пароль с проекта VBA выбранной книги
- “Снять пароль VBA” – удаляет пароли со всех активных книг, кроме защищенных паролем “Project is UNVIEWABLE”

“Установить пароль Unviewable” – устанавливает пароль на проект VBA выбранной книги Excel и Word
При использовании инструмента открывается диалоговое окно выбора файла для установки пароля – “Project unviewable”
Снятие паролей с проектов VBA Данный инструмент создает резервную копию используемого файла.


“Снять пароль Unviewable” – снимает пароль с проекта VBA выбранной книги Excel и Word
При использовании инструмента открывается диалоговое окно выбора файла для снятия пароля – “Project unviewable”
После использования инструмента, при открытии файла, должны появиться сообщения в диалоговом окне. Жмем кнопку “Да” до полного закрытия диалогового окна. По завершению переходим в проект VBA – пароль снят!
Защита проекта VBA в MS Excel
Всем привет! Я обычный пользователь MS Excel. Не являющийся профессиональным программистом, но накопивший достаточно опыта, для установки и обхода защиты проектов VBA.
Дисклеймер:
В данной статье рассмотрены виды защиты проектов VBA, от несанкционированного доступа. Их сильные и слабые стороны – ранжирование.
Цель статьи показать слабые и сильные стороны каждого вида защиты проекта VBA в MS Office.
Демонстрация разработанных инструментов, в надстройке Macro Tools VBA, для снятия и установки той или иной защиты.
Все инструменты реализованы стандартными средствами VBA, без использования дополнительных библиотек.
Главная панель Надстройки Macro Tools VBA
Первый вид защиты — Обычный пароль
Время на снятие: мгновенно
Недостаток: быстрый доступ к запароленному модулю VBA
Стандартный инструмент (В среде VBE: панель Tools -> VBAProject Properties -> Protection).
Самая легко снимающаяся защита. В интернете легко находится код, для снятия данной защиты.
Данную защиту можно снять следующим инструментом:
Второй вид защиты — Project is Unviewable
Время на снятие: от 10 до 15 мин (в ручную)
Недостаток: доступ к исходному коду модуля VBA
Один из самых распространённых видов защит. Встречается в 95% файлах с защитой модуля VBA. При попытке открыть проект, открывается диалоговое окно, с сообщением: Project is Unviewable.
Большинство пользователей Excel, не могут снять данную защиту, так как она имеет множество вариации и нюансов, для ее снятие нужно иметь представление о внутренней структуре файла Excel.
Основан, данный вид защиты, на изменение ключей:
DPB=«0B09CE0F8E108E108E» GC=«CCCE09520B120C120CED» в файле `vbaProject.bin`. 
Кратко, как создается данная защита
Для создания данной защиты нужно, разархивировать файл Excel. Перейти в архиве в папку xl, открыть файл vbaProject.bin, в конце файла находятся наши ключи, редактируем значения ключей на пусто, сохраняем файл. Переводим наш архив, обратно в файл Excel. Готово! Это самый простой вариант данной защиты, но существует множество модификаций. Алгоритм снятия защиты Project is Unviewable. 1) Разархивируем подопытный файл, переходим в файл …\xl\_rels\workbook.xml.rels
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.
7) Открываем проект VBA. После всего, проект VBA должен быть доступен. 8) Но иногда защита не снимается, тогда нужно сохранить файл, проверить, что он действительно сохранился! И проделать повторно операции с 1 по 7. Обычно так происходит когда в файле workbook.xml.rels в ключе Target установлено printerSettings.bin. При сохранение, Excel исправляет это на значение на vbaProject.bin Данную защиту можно установить и снять следующим инструментом:
Третий вид защиты — 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 — vbaProject.bin или printerSettings.bin, в зависимости от настроек в файле …\xl\_rels\workbook.xml.rels. В конце файла удаляются строки вида: Module1=32, 32, 635, 330, Z. С нужными названиями модулей.
Для снятия данной защиты нужно в файле vbaProject.bin — восстановить удаленные записи модулей. Данную защиту можно установить следующим инструментом. 
Четвертый вид защиты — Обфускация кода
Время на снятие: неизвестно, зависит от объема кода и пере использования частей кода
Обфусцированный код VBA Недостаток: необходимость тестирование файла после обфускации, на работоспособность Крайне редкий вид защиты, основанный на изменении исходного кода VBA, в не удобочитаемый вид для человека. Удаляются все комментарии, форматирование кода, переименовываются названия всех переменных, процедур, функций, модулей и прочего. Злоумышленнику никогда не удастся восстановить первоначальный вид кода, и потребует достаточно много времени для, его восстановления в удобно читаемый вид для человека. Для де-обфускации кода нужно иметь время, специализированное ПО. Данную защиту можно установить следующим инструментом. Пятый вид защиты — Перенос кода в dll
Время на снятие: неизвестно, зависит от языка программирования и квалификации Недостаток: необходимости в дополнительном файле dll Один из самых редких видов защиты. Основная идея перенос основного кода в отдельную библиотеку dll, написанную на любом другом языке программирования. Не распространённость данный вид защиты получил по следующей причине, необходимости за файлом Excel, «таскать» дополнительный файл, dll. Для получения доступа к коду dll, нужно обладать специальными знаниями. Заключение
В заключении хочу выделить бесполезность защит: Project is Unviewable и Hidden Module которые, по существу ни отчего не защищают. Позволяют просматривать код VBA, без изменения исходного файла, в таких программах как OpenOffice или LibreOffice. Так и снимаются без особых проблем.