4 способа защиты кода VBA (Visual Basic для приложений)

Код VBA, который вы пишете, — это сердце и душа вашей электронной таблицы. Защита кода VBA — это то, что следует сделать, чтобы убедиться, что ваш код не будет украден или использован без вашего ведома. В этой статье будут рассмотрены несколько различных способов защиты вашего кода VBA, чтобы только ВЫ могли легко получить к нему доступ.
Почему следует заботиться о защите кода VBA?
VBA — это макроязык, который можно использовать для создания автоматизированных задач или действий в Excel, Word, PowerPoint. Есть несколько причин, по которым вам следует защитить свой код VBA:
- Чтобы защитить код VBA от случайного изменения. Код VBA — мощный инструмент для пользователей Excel, но он также может стать источником разочарования для тех, кто им не пользуется. Если вы не защитите VBA паролем, то другие, использующие вашу книгу, смогут получить доступ к коду и внести в него изменения, не зная, что они на самом деле делают. Вы не хотите отлаживать код VBA, потому что это может быть мучительно — может потребоваться несколько часов, чтобы выяснить, почему, а затем еще больше времени!
- Чтобы защитить вашу интеллектуальную собственность. Код VBA может быть очень ценным для некоторых компаний. Если кто-то другой получит доступ к вашей таблице и скопирует функциональность, которую вы используете, то он может потенциально выдать ее за свою собственную работу и продать ее множеству компаний. Защитите свой ценный исходный код с помощью мер безопасности. Не позволяйте никому легко воровать или копировать.
- Чтобы защитить себя от людей, использующих вашу работу. Если у вас есть ценный фрагмент кода VBA, который делает вашу работу проще или эффективнее, то вы можете защитить его только для личного использования.
Важно отметить, что существует несколько различных способов защиты вашего кода VBA, но не все они защищают ваш код одинаково. Это зависит от вас и от того, что вы считаете лучшим для ваших нужд.
#1 Защита паролем кода VBA в Excel с помощью инструмента VBAProject
В этой части объясняется, как можно использовать параметры защиты проекта VBA, чтобы защитить свой код VBA от посторонних глаз и вмешательства на определенном уровне.
- Уровень безопасности: Слабый; Есть такие инструменты, как Удаление пароля VBA с помощью которого можно разблокировать пароль за считанные минуты;
- Уровень сложности: легкий;
- Стоимость: бесплатно;
Шаг 1. Выберите «Visual Basic» в меню «Разработчик» в Excel.
Шаг 2. Чтобы заблокировать проект VBA, нажмите «Инструменты» на панели, а затем выберите «Свойства проекта VBA».
После нажатия на этот пункт меню вы увидите следующее диалоговое окно:
По умолчанию выбрана вкладка «Общие», но нажмите на вкладку «Защита».
Шаг 3. Установите флажок «Заблокировать проект для просмотра», затем дважды введите свой пароль в оба поля и нажмите «ОК».
Шаг 4. Сохраните его и снова откройте файл Excel. Вы сможете узнать, была ли защита паролем VBA правильно включена, дважды щелкнув по проекту VBA. Когда вы защищаете свой проект VBA паролем, это предотвратит случайное внесение изменений кем-либо.
#2 Используйте обфускацию VBA для защиты кода макроса
Обфускация VBA — это искусство сделать ваш код VBA нечитаемым, но все еще функциональным. Он изменяет ваши существующие макросы с помощью нескольких уровней обфускации, что затрудняет понимание базовой логики. Продвинутые обфускаторы VBA используют ряд продвинутых методов обфускации, значительно усложняя обратную трассировку и восстановление.
- Уровень безопасности: Средний; Кто-то все равно сможет выделить время и потратить достаточно ресурсов, чтобы восстановить код;
- Уровень сложности: Средний; В зависимости от уровня;
- Расходы: Бесплатный обфускатор VBA /Премиум;
Вы можете использовать обфускацию VBA в тандеме с методом № 1, который заключается в том, чтобы сначала скрыть, а затем защитить модуль паролем. Пожалуйста, помните, что обфускация необратима, поэтому сделайте резервную копию исходного файла перед продолжением. Также помните, что обфусцированный код не может быть гарантированно выполнен без ошибок. Пожалуйста, тщательно протестируйте его перед выпуском. Используйте одну часть проекта для обфускации. После успешного прохождения теста обфускации первого модуля переходите ко второму.
#3 Преобразование кода VBA в библиотеку динамической компоновки (DLL)
Компиляторы, такие как Visual C++ и Visual Basic, создают приложения, которые трудно взломать. Это связано с тем, что код компилируется в исполняемые файлы или файлы динамически подключаемой библиотеки. Поэтому мы также можем скомпилировать код VBA в файл динамически подключаемой библиотеки и затем использовать его в Excel.
- Уровень безопасности: Высокий;
- Уровень сложности: средний;
- Стоимость: бесплатно;
Этот метод защиты настоятельно рекомендуется, но он не гарантирует 100%. Чтобы узнать, как компилировать, см. инструкции на VbaCompiler.com: 10 шагов для компиляции кода VBA в собственную библиотеку DLL Windows .
#4 Преобразование VBA в C или C++
Перевод макросов на C или C++ сложнее для обратного проектирования, чем VBA. Если вы хотите защитить свой код, это лучший способ.
- Уровень безопасности: Высший; Получить код без прав практически невозможно; Но, опять же, это не гарантирует 100%;
- Сложность: Сложно и требует много времени. Поскольку VBA и C/C++ — это совершенно разные языки, это сложнее, поскольку вам придется приложить много усилий.
Заключение
Использование макросов — отличный способ оптимизировать разработку расширенных функций. К сожалению, это подвергает ваш код риску кражи или копирования другими. В статье обсуждаются методы, которые вы можете использовать, чтобы предотвратить кражу или изменение вашего кода VBA другими пользователями. Обратите внимание, что защита кода VBA не является абсолютной, но она обеспечивает некоторую защиту от случайных злоумышленников.