В общем имеется продукт, библиотека для программистов (некоторое API).
Поставляется частично в исходниках, частично в виде скомпилированной dll.
Библиотека в онлайн не работает ни как, только офлайн.
На данный момент защита встроена в dll. Она элементарная и заключается в следующем:
Для работы с АПИ его необходимо проинициализировать. В функцию инициализации передается серийный номер. Внутри функции инициализации проверяется валидность ключа, и если он не валиден или отсутствует, то переходим в режим работы trial. В этом режиме либа смотрит в реестр и если там нет спец. записи, то выводит в модальном режиме окно, с просьбой приобрести лицензию, либо напомнить позже. Тут важно, что именно в модальном режиме. То есть выполнение инициализации блокируется, пока юзер не нажмет какую либо кнопку. Если юзер жмет на 'напомнить позже', то окно на несколько часов скрывается и не мешает программисту работать.
В общем все меня вроде устраивало, пока я не понял, что, возможно, я теряю много продаж.
Дело в том, что это API ориентировано не только на десктопные приложения, но и на серверные. Причем последние выполняются без пользовательской сессии. В результате, когда программист начинает тестить АПИ на сервере, у него просто "зависает" инициализация, и человек не разобравшись почему отказывается от покупки.
Каждый месяц обращается несколько человек с подобным вопросом. А сколь просто молча проходят мимо?
В общем вопрос. Что делать? Как можно защитить хоть в минимальном режиме API.
Ограничивать функционал не хочу, люди не смогут протестить то, что им нужно. Какие есть варианты?