Хорошая стратегия лицензирования для приложений C#

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

У меня было мало сомнений

1.Может ли лицензирование программного обеспечения осуществляться на виртуальной машине?.Как я могу защитить свое программное обеспечение в случае, если спуфинг MAC происходит на виртуальной машине или любой другой системе, которую использует мой клиент?

2. Если я сопоставлю MAC-адрес своего клиента с моим приложением, будет ли это полезно для защиты программного обеспечения?

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

4. В случае, если пользователь меняет свое системное время и переворачивает свои часы, он может использовать мою версию программного обеспечения, не покупая ее. Как я могу предотвратить это?

1 ответ

Решение

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

        ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");
        ManagementClass partionsClass = new ManagementClass("Win32_LogicalDisk");
        ManagementObjectCollection partions = partionsClass.GetInstances();  

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

Другие вопросы по тегам