Где хранить информацию о пробной версии защиты для целей защиты программного обеспечения

Это может быть дубликат с другими вопросами, но я клянусь, что я много гуглил и искал StackOverflow.com много, и я не могу найти ответ на свой вопрос:

В a C#.Net применение, где хранить пробную информацию защиты, как срок годности, количество используемых времен?

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

OK, чтобы доказать, что я много искал и искал в гугле StackOverflow.com, я перечисляю все возможные стратегии, которые я получил:

1. Запись В Реестре

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

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

хорошо, вы можете сказать, что мы должны зашифровать пробную информацию защиты, Да, мы можем это сделать. Но что, если пользователь просто изменит свою системную дату перед установкой?

хорошо, вы можете сказать, что мы также должны поставить дату последнего использования, если что-то не так, Дата последнего использования может работать в качестве руководства по защите. Но что если пользователь просто удалите программное обеспечение и удалите все записи реестра, связанные с этим программным обеспечением, а затем переустановите программное обеспечение?

Я понятия не имею, как с этим справиться. Пожалуйста помочь.

Простой Файл

во-первых, есть несколько мест, чтобы поместить простой файл:

  • 2.a) простой XML-файл в разделе путь установки программного обеспечения
  • 2.б) файл конфигурации

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

- Программы

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

- Пробный Продукт-Ключ

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

  • 4.a) пользователь загружает программное обеспечение;
  • 4.b) пользователь отправляет электронное письмо с запросом пробного ключа продукта, указав имя пользователя (или адрес электронной почты) или информацию об оборудовании;
  • 4.в) сервер получает запрос, RSA-подписывает его и отправляет обратно пользователю;
  • 4.d) потребитель может теперь использовать его под условием (дата истечения срока действия & номер использованный Времена.)

теперь у сервера есть запись имени пользователя или информации об оборудовании, поэтому пользователь будет отклонен для запроса второй пробной версии. Законно ли собирать информацию об оборудовании?

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

Примечание: этот вопрос не о лицензировании, а о том, где хранить Информация о суде. После окончания пробной версии пользователь должен запросить лицензию (CD-Key/Product-Key). Я собираюсь использовать подпись RSA (привязанную к пользовательскому оборудованию)

P. S.: Моя программа будет нацелена на рынок Китая, рынок программного обеспечения, отличные от нас. Большинство людей в Китае, они покупают только оборудование, они обычно не покупают программное обеспечение, как Micosoft Windows / Office (они просто используют пиратские копии). Однако, некоторое профессиональное программное обеспечение направляя к специфическому полю, люди исследования все еще готовы купить его, если нет версии crack или версия crack очень трудно установить.

5 ответов


либо вариант 1 (простой раздел реестра), либо 2 (простой файл) просто отлично. Вот мое рассуждение:

  • стандартные-привилегированные пользователи имеют разрешения на чтение реестра. Если они не могут прочитать ваш ключ, что-то не так. Стандартные привилегированные пользователи не имеют прав на запись в реестр, но это не имеет значения, поскольку у них также нет прав на установку программного обеспечения. Другими словами, либо пользователь будет иметь разрешение на создание раздел реестра во время установки, или им понадобится помощь в установке в любом случае. Поэтому основные технические проблемы, которые вы подняли для раздела реестра, на самом деле не являются фактором.
  • просто не беспокойтесь о тех пользователей, которые делают такие вещи, как установить обратно свои системные часы или вручную взломать реестр, чтобы сломать ключ. Позвольте мне повторить еще раз:--6-->просто не беспокойтесь о пользователях, которые принимают сознательное решение изменить свою систему значительным образом, чтобы пройти ваши пробные ограничения - и сделать нет ошибки, Установка системных часов или редактирование реестра являются значительными изменениями. Причина, по которой вы не должны беспокоиться об этих пользователях, заключается в том, что они представляют собой ровно $0 в потенциальном доходе. Пользователь, желающий сделать такой сознательный выбор в отношении пиратства вашего программного обеспечения, не собирается просто сдаваться и платить за ваш продукт, если он не работает. Если они не могут получить ваше программное обеспечение бесплатно, они либо пойдут с конкурентом, либо обойдутся без него. Ты в это чтобы заработать деньги-вы не хотите тратить время и ресурсы, пытаясь захватить продажи, которые вы не можете выиграть или отправить пользователей конкуренту. Поэтому основные проблемы безопасности, которые вы подняли для любого варианта, не являются фактором.

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


Я бы предложил взять немного другой подход.

дайте "облегченную" версию вашего программного обеспечения. Нет проб, просто очень ограниченная функциональность.

Если они хотят попробовать "профессиональную" версию, попросите их получить пробный ключ. Это должно быть зашифровано в каком-то формате, хранить его где угодно. Когда приложение запускается, проверьте наличие этого пробного ключа. Если он там, расшифруйте его. Внутри ключа должна быть дата истечения срока действия программного обеспечения.

проверьте дату и действуйте соответственно. Если он не существует, просто запустите его как версию lite.

чтобы получить пробный ключ, вы можете ввести адрес электронной почты и другую информацию, которую вы хотите в поле в вашем приложении. Вполне разумно попросить, чтобы машина была подключена к интернету для этой ограниченной части. Даже MS Office требует, чтобы вы ненадолго подключились к интернету для проверки ключей. Попросите приложение связаться с вашим сервером с ключевым запросом. Отправить их обратно ключ.

для бонусных очков привяжите пробный ключ к некоторой метрике самой машины. Даже если это просто название коробки. Они редко меняются, и это все равно испытание.

Если вы действительно не можете заставить их подключиться к интернету, чтобы получить ключ, то вы можете пойти немного другим путем. Попросите приложение создать запрос (который включает имя машины или что-то в этом роде). Попросите пользователя позвонить вам с этим сгенерированным идентификатором запроса или они подключают его к веб-сайту. Затем отправьте им ключ от машины.

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

теперь управление ключами-это только один аспект зла, с которым вы боретесь.

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

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


в качестве окончательного бонуса для тех достаточно мстительный, чтобы сделать это: посеять различные пиратские доски с программным обеспечением key gen, которое делает интересные вещи с машинами людей, которые пытаются вас ограбить. Здесь можно проявить творческий подход.

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


можно обязать пользователей использовать пробную быть подключен к интернету? Если это так, просто обратитесь к пробной версии сервера во время запуска, и вы можете проверить все виды вещей. вам не нужно беспокоиться о хранении вещей на компьютере пользователей или их вмешательстве в данные или системное время.


Я знаю, что это старый нить, но я просто наткнулся на это и другие могут найти это полезным.

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