Страницы: 1
RSS
Защита VBA кода. Новое решение - VBACompiler
 
Привет всем!

Рано или поздно, почти каждый разработчик сталкивается с вопросом защиты своего кода от нежелательного распространения.
Данная тема поднимается периодически. На мой взгляд, самая толковая информация была здесь - http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=45829&TITLE_SEO=4...

На ее основании я остановил свой выбор на DoneEx. Немного погонял - вроде работает четко. Нравится максимальный уровень защиты. Не нравится то, что это предполагает распространение своих наработок в виде exe-файла. Все-таки не каждый решится использовать чужой exe (хотя, с точки зрения злодеяний - навредить можно  и VBA-кодом, но его хотя бы можно отключать). Да и размер файла большой. В общем, exe-формат как-то напрягал. Но за неимением лучшего, решился все-таки на приобретение решения от DoneEx.

И вот захожу я на http://doneex.com/ дабы оплатить это чудо (в хорошем смысле), как вижу новую кнопочку - мол есть новый продукт.
Перехожу на http://vbacompiler.com/, изучаю (сайт пока что откровенно лаконичен).
Решение - давняя моя (и не только) мечта - макросы (вернее их Си-версия) переносятся в DLL-ку!

А мне как раз срочно надо распространить один свой файл, но только так чтобы он дальше не пошел. В итоге я на эмоциях и цейтноте решился сразу взять новый продукт. Все-таки решение гораздо красивее и логичнее. К сожалению, именно мой файл он "кушать" отказался, даже после исправления мной пары ошибок. Выслал разработчикам - все-таки бетта-версия. Уже через сутки прислали ссылку на новый релиз. Теперь компиляция проходила успешно. Но во время работы файл "падает". Еще причину не понял, но пока грешу на себя - возможно, где-то обнуляющие set-ы не использую, плюс у меня для он-лайн обновления данных используется несколько кривое, поспешное решение через постоянный запуск процедуры самой себя через OnTime. В общем буду искать ошибки и помогать разработчикам. С учетом того, что они смогли сотворить в первом своем продукте - в успехе даже не сомневаюсь.

О результатах обязательно проинформирую. Все-таки выход практически компилятора VBA считаю значимым событием. Хочу также убедить разработчиков добавить функцию не изменять (не шифровать) имена процедур/функций, т.к. я бы лично значительную часть своих вспомогательных библиотек с большой радостью таскал не в коде, а в виде DLL. Даже не защиты ради, а ради облегчения взгляда на код.
 
В ту же копилочку:
Компилятор VBA в dll VB.NET
http://analystcave.com/vba-compiler-add-in-to-vb-net/
F1 творит чудеса
 
т.е., насколько поняла, по линку из #2
Цитата
'Load the DLL into memory
dll загружается в память... в придачу к открытому файлу... наверно, остаётся проблема memory-efficiency, если в dll'ке большой функционал... по логике
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Всем доброго времени.
Вот и мне понадобился функционал защиты своего проекта.
Функционал  http://vbacompiler.com/ хорош, но не работает с большими проектами, к тому же стоимость пока за такой сырой продукт весьма высокая. и есть подтормаживания.
Protect VBA - отличный инструмент, но его легко победить с помощью ОО или последних ЛибрО.
Подскажите, можно ли внедрить в код файла xlsm ЗАЦИКЛЕННЫЙ макрос АВТООТКРЫТИЯ ТОЛЬКО для этих офисов (а не для Excel), чтобы они зависали при открытии файла в них
Например, если переменная >0 , к ней будет прибавляться 1.
небольшая, но всё таки защита будет от не очень продвинутых.
Изменено: Sobes - 10.06.2017 19:51:55
 
Открыли с отключенными макросами - и ковыряйте... без зависаний.
 
Вариант с DLL плох тем, что нужно иметь две отдельные DLL: для 32 битного Office и для 64-битного.
Для защиты коммерческих надстроек XLAM без использования EXE и DLL часто используют Unviewable+. Защита не идеальная, но вполне достаточна для коммерческих целей.
Изменено: ZVI - 11.06.2017 14:38:26
 
Доброе время суток.
Владимир, а после защиты Unviewable  код xlam нельзя просмотреть в Libre?
 
Добрый день, Андрей. Libre Office (текущая версия 5.3) не видит VBA код любой надстройки XLAM.
На сайте по приведенной мною ссылке в примерах есть пара зашифрованных надстроек XLAM, можете с ними поэкспериментировать в разных программах.
Изменено: ZVI - 11.06.2017 12:56:28
 
удалено эту надстройку "удалено" видит без проблем.
 
Да, очень жаль.
Чуть было не купил.
Но ломается на раз-два-три
Прошу прощения. Видео удалю
Изменено: Sobes - 11.06.2017 14:34:55
 
Цитата
Sobes написал:...Но ломается на раз-два-три
Вы взяли не самый защищенный вариант, который там в надстройке
WC2014-Locked-Ultimate-MultiLayer.xlam
То, что Вы попытаетесь вскрыть не будет тем, что делает надстройка, проверьте.
Изменено: ZVI - 11.06.2017 15:01:28
 
Извините. Видео удалил
 
Цитата
RAN написал: Libre Office3.5 эту надстройку видит без проблем.
Андрей, очевидно, там уже не уровень защиты Locked-Ultimate-MultiLayer, возможно, автора теперь устраивает цифровая подпись.
Уберите, пожалуйста, название надстройки из сообщения, чтобы не подставлять её автора.
Попробуйте поэкспериментировать с WC2014-Locked-Ultimate-MultiLayer.xlam
Изменено: ZVI - 11.06.2017 15:00:47
 
Напомню на всякий случай, что про Unviewable+ в сообщении #6 я уточнял, что "Защита не идеальная, но вполне достаточна для коммерческих целей".
По крайней мере, так считают ряд зарубежных разработчиков VBA-надстроек. Ссылку дал не ради рекламы, сам этой утилитой не пользуюсь.
 
Владимир. Вам большое спасибо.
Действительно, указанная Вами надстройка защищена очень хорошо.
По крайней мере от таких. как я.
Пожалуй. всё таки куплю данный продукт.
Изменено: Sobes - 11.06.2017 15:10:23
 
Владмир, большое спасибо.
До 15 июня VBA не доступен, тогда и попробую, отношусь.
 
Вернулся, а, оказывается, модератор за меня просьбу выполнил. За что ему отдельное спасибо.
Владимир, код надстроек по ссылке посмотреть не удалось.
Изменено: RAN - 11.06.2017 18:08:56
 
Доброе время суток.
Цитата
ZVI написал:
Попробуйте поэкспериментировать с  WC2014-Locked-Ultimate-MultiLayer.xlam
Владимир, попробовал. Честно говоря не нашёл разницы с обсуждавшимися здесь ProtectVBA, LockXLS, которые заменяют несколько байтов в файле VBAProject.bin. Для примера
Файл: WC2014-Locked-Ultimate-Encrypted.xlam
Модуль: mRibbonTabActivate
часть кода

Файл: VBA Tools-Demo-Ultimate locked.xlam
Модуль: mWebLink
код

Как было описано в обсуждении по ссылке выше, вполне после двух команд в Immediate, код просматривается в LibreOffece. Так что защита  Unviewable+, на мой взгляд, ничем не отличается от ProtectVBA. Или я что-то упускаю? Собственно, Владимир, мой вопрос и был вызван этим моментом - в чём разница и преимущество Unviewable+? Предполагал, что вы общаетесь с авторами и владеете информацией почему + :)
Изменено: Андрей VG - 16.06.2017 09:44:54
Страницы: 1
Наверх