Как сделать программное обеспечение безопасным?
Возможный дубликат:
Защитить код.NET от реверс-инжиниринга?
Я хочу сделать свое программное обеспечение таким, чтобы оно не распространялось без покупки?
Я подумал, что один из способов - сделать веб-сервис и следить за всем этим.
Но ограничение заключается в том, что не на всех компьютерах есть Интернет, поэтому об этом не может быть и речи.
Одна идея состояла в том, что я получаю компьютерную информацию как CPU Serial Number
от WMI
а затем установите это программное обеспечение для запуска в системе с этим серийным номером. Я не могу придумать гораздо лучшей идеи, чем эта.
Пожалуйста, помогите мне с некоторыми идеями, как сделать программное обеспечение безопасным.
Я не хочу защищать его от декомпиляции. Я хочу, чтобы, если я предоставляю пользователю лицензию на один компьютер, это программное обеспечение остается на этом компьютере и не настраивается на другом компьютере.
3 ответа
Краткий ответ: вы не можете.
Более длинный ответ: Вы МОЖЕТЕ всегда ставить эти защитные барьеры, что делает работу взломщиков более тяжелой, но, в конце концов, они БУДУТ ее взламывать. Это вопрос баланса: вы можете сделать их работу тяжелее, но это значит, что БОЛЬШЕ работы для вас тоже. Единственный реальный способ защиты от пиратства, на мой взгляд, состоит в том, чтобы сделать основные компоненты вашего приложения сетевыми, и чтобы все ваши клиенты использовали уникальный идентификатор при обращении в службу. В большинстве сценариев (и в вашем тоже, как вы указали) это сложно или даже невозможно, но, честно говоря, другого реального пути нет.
Inishtech предоставляет решение, называемое Службой защиты и лицензирования программного обеспечения, которое похоже на то, что вы описали. Это ответвление от проекта микрософта. Он извлекает и перемещает определенные части вашего кода в зашифрованную dll, которая работает на виртуальной машине.Net, которая также зашифрована, специально для этого приложения / клиента, насколько я понимаю, поэтому она должна быть очень безопасной.
Также имеется платформа для распространения и администрирования лицензирования и т. Д.
Не знаю каких-либо бесплатных альтернатив.
С уважением GJ
Аппаратный ключ всегда есть: http://en.wikipedia.org/wiki/Dongle