они обычно длинные и интересные
постараюсь и в этот раз оправдать оказанное доверие
Но ссылка не работает :-(
как не работает. я вот только что по ней и правой и левой кнопкой клацал - открывает в новом окне. потом скопировал текст ссылки в буфер и вставил в новое окно браузера. тоже открылась страница.
верю что проще было бы всё это засунуть в один Net
увы, тут могу не согласиться. всё написанное на .net (exe,dll) с легкостью можно превратить обратно в проект (даже не в одинокий cs файл, а в полноценный проект с ресурсами). тут вроде бы уже поднимался где-то этот вопрос, так что подробно описывать не буду. скажу только, что есть существенная разница между бинарным исполняемым файлом (например, С++ вариант реализации) и файлом инструкций (C#). бинарный файл - это машинный асемблер, а файл инструкций - это просто слегка ужатый исходный проект в одном файле. следовательно, чтоб разобраться в работе C# dll или exe, нужен простой декомпилятор (кажись даже в поставку самой студии входит, но могу ошибаться), кружка кофе и минимальные знания как сбилдить декомпилированный проект и запустить его под отладчиком. и сразу станет понятно, ЧТО функция должна вернуть, чтоб программа работала исправно. потом, например, затираются внутренности функции и остается только
return 100500; . компилируется и подменяется исходный файл. так что в .net и автодеск и майкрософт советуют писать то, что не жалко. и почаще вставлять комментарии с копирайтами
, но никак не защиту
В общем получились вот такие функции
1. не проверяется хоть какая-то контрольная сумма dll, а значит её можно просто подменить
2. в dll можно передать не только appId но и userId, т.к. он уже известен до запуска функции
3. редирект в файле hosts (C:\windows\system32\drivers\etc\) и, например, Apache безболезненно убивают этот вариант автодесковской защиты.
4. а вот что будет, если скопировать ветку реестра полнофункциональной программы на другой комп, отключить там инет и запустить программу?
PS: где-то читал про онлайн защиту автодеска, что по первому варианту запроса что-то там где-то у них формируется, ну и если отправить другой запрос, то получаем ранее сформированный результат. по крайней мере это больше вселяет уверенность в то, что общение происходит именно с сервером автодеск, а не клоном сервера размером в одну простую функцию на локальном компьютере. увы, не могу найти эту ссылочку
-------------------------------------------------------------------------
если уж говорить об онлайн проверке, то без СВОЕГО сервера с таблицей минимум из двух полей: например, UUID материнской платы и userId не обойтись.
а автодесковский вариант защиты нужен лишь для того, чтоб была возможность автоматически добавить набор (UUID - userId) на свой сервер.
например, логика может быть такой. изначально идет проверка по UUID-userId на своем сервере. если ничего не нашло запускаем автодесковский вариант. если автодесковский вариант разрешил работать, добавляем в таблицу на своем сервере пользовательские UUID-userId.
варианты обработки своей таблицы:
- есть UUID, userId правильный - работаем
- есть UUID, userId другой - не работаем
- есть UUID, userId пустой - работаем, т.к. пользователь просто вышел из автодесковского аккаунта
- левый UUID, userId правильный - тут на твое усмотрение. если желаешь разрешить одному купившему запускать на нескольких компах, тогда считаем, сколько раз userId встречается в таблице и если меньше чем разрешено, автоматом добавили, иначе - пиши письмо разработчику, т.к. ты уже запускал эту программу на другом компе. ну и после письма нужно просто убить строку из таблицы, чтоб её можно было автоматом пересоздать для нового UUID.
саму таблицу можно расширить еще полем appId, чтоб пользоваться одной таблицей для всех приложений. также можно еще ввести поле isBanned. и если чудик хочет пересесть на другой комп с купленной программой, но старая строка помечается isBanned = true. ну и естественно, нужна проверка на это поле в основном алгоритме защиты.
можно пойти еще дальше и передавать забаненные ключи через локальную сеть (например, через сам чертеж). это вариант для хитрозадых, которые наплодили инсталляций на 10 компах и поморочив голову разработчику постепенно выводили их из сети. та не вопрос. открыл файл, считала защита из файла забаненные UUID, сверила с текущим и... курите бамбук
Это я к чему так подробно... прочитал личное сообщение от 11.11.2017
. Извиняй, исходниками поделиться не могу, но логику тут описал. ток я пользуюсь не только UUID. там еще есть серийник монитора, HDD с установленной виндой и серийники планок оперативки. естественно, всё адаптируется под частичную замену оборудования, но купив 1 лицензию не получится разобрать комп так, чтоб вышло 2 лицензии