Так что мой пароль к проекту Excel-VBA легко взломать ... Какие есть другие варианты? - PullRequest
14 голосов
/ 30 июня 2009

Теперь, когда я знаю, что существует простой обходной путь к стандартному способу блокировки и защиты паролем кода VBA, я хотел бы перейти к более эффективным способам защитный код. Я должен предоставить клиенту инструмент на основе Excel, но хотел бы нечто большее, чем простая защита типа раздражения, которая будет удерживать только самых ленивых хакеров.

Есть ли какие-либо опции в Excel-VBA, или нам действительно нужно скомпилировать отдельное приложение и забыть о нашем интерфейсе на основе Excel?

Ответы [ 4 ]

8 голосов
/ 01 июля 2009

Самый простой и эффективный способ - перенести код VBA в скомпилированный VB6 модуль расширения Com / Automation.

Или, возможно, вы захотите рассмотреть решение .Net (с обфускатором), если производительность не важна.

2 голосов
/ 03 декабря 2009

Еще один трюк - написать код для объекта Excel в Access, а затем создать файл доступа в .mde. http://www.blog.methodsinexcel.co.uk/?s=Access+MDB Бедный, но дешевый; -)

1 голос
/ 23 марта 2018

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

Преобразование вашего кода VBA в VB6 означает, что ваше приложение будет ограничено 32-битным Excel (VB6 не имеет 64-битной версии) и может быть декомпилировано декомпиляторами VB, такими как https://www.vb -decompiler.org /

Преобразование вашего VBA-кода в VB.NET также не является идеальным решением, так как .NET имеет механизм «отражения», который может преобразовывать скомпилированный код сборки .NET в исходный исходный код.

Вы можете преобразовать свой код VBA в C / C ++ , что будет очень эффективной формой защиты, но, поскольку C / C ++ и VBA являются очень разными языками программирования, преобразование кода VBA в C / C ++ сложен, подвержен ошибкам и, как правило, не стоит огромных затрат времени и усилий.

Существует инструмент под названием VbaCompiler для Excel (http://vbacompiler.com)), который преобразует код VBA в код языка C и затем компилирует его в DLL . Уровень Защита, которую обеспечивает этот инструмент, аналогична защите вашего VBA-кода в C / C ++, но без огромного количества ручной работы, необходимой для такого процесса.

1 голос
/ 02 апреля 2012

Нет необходимости конвертировать на другой язык - вы сможете скрыть большую часть кода VBA через www.vbsobfuscator.com [Примечание: ссылки на archive.org]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...