Такая защита определённо лучше, чем совсем без неё.
Такая - это вкратце описанная мной в посте #26 или автором топика в посте #25?
Если из поста #25 - согласен полностью. Единственное что, позакрывать мелкие дыры, чтоб нельзя было просто подменить dll или ветку реестра и всё.
Если же из поста#26... Я не против защиты. Она действительно нужна. Но не забываем про C#. Было б на C++ - слова б не сказал. Но дарить идею и готовую реализацию того, как получить набор настоящих характеристик железа, как обмениваться данными с сервером лицензий и как переносить эти самые лицензии втихую с компов подключенных к интернету по всему отделу, сидящему без интернета... Например, у меня ушло только пару месяцев на то, чтоб правильно собрать настоящие характеристики железа для ограниченной учетной записи. Так что будет слишком круто, если кто-то получит это (ну и всё остальное) за пару минут, нажав пару раз мышкой в экранные кнопки. По поводу того, что будет трудно разобраться в коде - бред. Любой уважающий себя программист оставляет тонны комментариев в каждой функции, т.к. во-первых, вернуться к редактированию кода он может и через 3-4 года, а во-вторых, редактировать код может уже не он, а его коллега. Да, можно конечно обработать dll-ку каким-нить криптошифровальщиком, но... бесплатный - расшифровывается бесплатными обфускаторами за пару минут, а платный - годовая подписка за $300 в среднем, а снимается платными обфускаторами, за которые в принципе можно и не платить
.
Я придерживаюсь мнения, что всё должно быть в меру, так что вариант #25 вполне подходит для автодесковского магазина. Из минусов этого варианта - банально открытый код реализации проверки валидности пользователя по всему интернету, ну и использование интерпретируемого языка программирования для создания этой самой проверки. ну то такэ