2013-09-08 3 views
1

Я немного новичок в языке программирования C#, мне будет интересно узнать, как защитить настольное приложение C# от переориентации на различные системы без моего разрешения. Я видел некоторые возможные решения, но я хочу вашего советКак защитить мою программу C# от несанкционированного использования в разных системах

  • Создание системы веб-активации, где выдается ниппель/уникальный код перед каждой установкой
  • Создать онлайн установить систему, которая позволяет пользователям устанавливать непосредственно из сайт без загрузки установки

Пожалуйста, помогите советом на лучший вариант, чтобы взять (я люблю использовать первый вариант, если это возможно с PHP/MySQL, потому что я не очень хорошо с asp.net)

ответ

1

Ну вы можете не устанавливать программу без установочного файла. Вам понадобится небольшой файл настроек, который будет загружать фактический файл установки из вашей установки, вот как я вижу большинство установленных программ.

Обычно на сервере у вас есть опции для загрузки полного установочного файла (большого файла установки, содержащего все установочные данные) и онлайн-файла установки (небольшой файл, требующий подключения к Интернету во время установки).

И на самом деле это не значит, что вы используете php или asp.net на своем сервере, потому что единственное, что имеет значение, - это то, что ваш скрипт делает на сервере.

Как ваша проверка будет работать, так как ваш установочный файл перед установкой вашей программы потребует от пользователя вставить ключ проверки и отправить его на сервер. Ваш php-скрипт будет искать в таблице mysql, и если он найдет этот ключ, он сообщит вашему установочному файлу, что пароль в порядке, и он пометит этот ключ как «использованный» в вашей таблице mysql. В противном случае пользователю придется повторно ввести ключ.

+0

хороший ответ плюс один – Liran

+0

o и я хочу добавить, как вы могли бы сгенерировать ключи: на вашем сайте вы могли бы заплатить с помощью peypal или сделать что-то еще, например register, тогда ваш php-скрипт отправит им электронной почты с ключом, а также добавьте этот ключ в свою таблицу mysql. – zoran404

+0

большое спасибо, это будет работать для меня (аутентификация с помощью php/mysql), но еще один вопрос, пожалуйста, можете ли вы дать мне подсказку, как я могу отправить информацию на свой php-сайт из рабочего стола C# –

0

Ответ на ваш вопрос вопрос зависит от уровня защиты, который вы хотели бы реализовать.

  1. Самый простой из них является просто реализовать защиту ключа продукта без какой-либо необходимости для онлайновой активации: в этом случае должны быть выбраны/подтверждено определенным алгоритмом, который вы включаете в программу ключи. Это не очень хорошая защита, потому что один и тот же ключ может использоваться для множества (теоретически бесконечных) установок продукта.

  2. Более надежная защита может быть достигнута при активации онлайн-ключа продукта. В этом случае вы можете указать количество активаций на ключ (например, 5), тем самым предотвращая чрезмерное использование одного и того же ключа.

В этом отношении есть много информации, касающейся практических аспектов такой защиты ключей.

Rgds, AB

0

Вы можете сделать следующее:

  1. После установки и запуска приложения, приложение генерирует ключ пользователя на основе физической системы атрибутов, как MAC-адрес/серийный номер и т.д.

  2. пользователю предлагается ввести соответствующий лицензионный ключ для активации продукта.

  3. Пользователь либо с помощью веб-приложения, либо по телефону или по электронной почте предоставляет ключ пользователя и запрашивает соответствующий лицензионный ключ.

  4. У вас будет некоторый алгоритм для генерации уникального лицензионного ключа из пользовательского ключа, который приложение может проверить.

  5. После получения лицензионного ключа пользователь входит в приложение и начинает его использовать.

Установка приложения на другой машине изменяет ключ пользователя, и приложение не будет работать.