2016-08-08 3 views
-1

Я работал с коллегами над надстройкой excel, которую мы хотели бы продать нашим клиентам. Он связан с облачной базой данных. В настоящее время система лицензирования кодируется в VBA, но это довольно слабо, и потенциальные хакеры, обходящие защиту VBA, смогут отключить проверку лицензии (защита кода не является такой проблемой как таковой).Лицензия на надстройку Excel

Мы думали о разработке DLL-файла для проверки лицензий, но отсутствия опыта в этой области.

У вас есть предложения?

+0

VSTO - хороший вариант. Однако вы видели [ЭТО] (http://stackoverflow.com/questions/13984229/how-can-i-create-product-keys-for-vba-applications-so-that-illegal-distribution/13985132#13985132) –

+0

Спасибо, Сиддхарт, это хорошо. Подобный подход в настоящее время используется, хотя и менее интересен, чем ваш. Единственным недостатком является то, что весь код остается в VBA. Я согласен, мы должны пойти в ВСТО, чтобы получить что-то более безопасное. Мы рассмотрим это. – Phil

ответ

1

Другие могут размещать о решениях лицензирования .NET ....

Много лет назад Microsoft Component Object Model (COM) действительно имеет систему лицензирования. Один пишет код на C++, а клиенты используют COM для создания экземпляра вашего компонента. Механизм лицензии COM предназначен для реализации IClassFactory2 вместо IClassFactory. Вот ссылка https://msdn.microsoft.com/en-us/library/windows/desktop/ms680095(v=vs.85).aspx

Теперь вы можете сказать «но мой код находится в VBA !?». Ну, VBA небезопасен, книги могут быть разбиты. Проблема в том, что источник отправлен внутри.

Компиляция .NET-решения лучше, но исполняемый файл представляет собой промежуточный язык (IL), который может быть обращен назад к источнику. Та же проблема с Java, «байтовый код» также может быть изменена с обратной стороны.

Для обеспечения наиболее надежной защиты кода вам необходимо скомпилировать C++. Даже с C++ некоторые люди говорят, что он все еще может быть обратным инженером.

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

+0

Спасибо S Meaden. Я слышу вас, но на данном этапе невозможно будет переписать полный проект на C++. Вы правы, обратное проектирование проекта было бы не так сложно, но в настоящее время стоило бы намного больше, чем плата за лицензию: код запутан и почти нечитабель. Кроме того, наши клиенты - это малые предприятия, которые, как правило, мало осведомлены о VBA, и, надеюсь, не хватает времени и ресурсов, чтобы посвятить себя взлому. Мы попытались обойти проблемы безопасности VBA по относительно доступной цене по сравнению с обслуживанием, предоставляемым клиентам. – Phil

+0

Самый слабый момент заключается в том, что лицензия (связанная с ID материнской платы) проверяется кодом VBA. Я надеялся найти более сильный и лучший способ лицензирования надстройки, даже если безопасность всегда будет проблемой. – Phil

+0

Привязка к аппаратным средствам в порядке. Трудно подделать идентификатор материнской платы; другие используют Mac-адрес кода сетевого интерфейса, который, по-видимому, также уникален. –