Защита программы от копирования

Подскажите, как происходит защита программы от копирования с помощью сервера, флешки/диска, реестра? Например, возьмём сервер. Я понимаю, что нужно считывать уникальные характеристики машины, на которой клиент запускает нашу программу (пусть будет id процессора), шифровать этот id и отправлять на сервер. Там в бд или файле хранятся шифрованные id-ки, с которыми сравнивается наш id, и сервер отвечает. Это ок, но мне непонятно как работает запись шифрованного id на сервер - это вроде бы делает программа-активатор, но кто мешает пользователю взять этот активатор и послать своим друзьям, которые его у себя запустят? И нет тогда никакой защиты.

Также интересно, как происходит защита в перечисленных в самом начале случаях. Если есть пример кода на каком-либо языке (например, c# или python), буду признателен, ибо хочу реализовать это с помощью сервера или флешки, а с примерами будет проще.


Ответы (1 шт):

Автор решения: S.H.

Да давно уже не так работает защита в программах.

При покупке программы Вам приходит "ключ" - строка символов. Вы этот ключ вставляете в программу.

Программа каждый раз при запуске связывается с сервером и спрашивает у него "пользователь с таким-то ключом - валидный?"

И если сервер отвечает "да" - программа работает дальше.

Больше чем одному пользователю одновременно сервер не разрешает работать. Так что вы - в ваших же интересах - не будете никому давать ключ.

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

→ Ссылка