Ограничить функциональность определенным компьютером

У меня есть программа, которая использует файл конфигурации.

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

Я знаю, что Windows Activation Mecanism отслеживает аппаратные средства для обнаружения изменений и допускает некоторые незначительные изменения в аппаратных средствах.

Есть ли какая-нибудь библиотека, которая может помочь мне в этом?

Мой другой вариант — использовать WMI для получения конфигурации оборудования и программирования собственного механизма допуска.

Большое спасибо,

Николя


person Nicolas    schedule 25.03.2009    source источник


Ответы (5)


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

person Eclipse    schedule 25.03.2009
comment
Обе ссылки мертвы - person Ayxan Haqverdili; 22.04.2019
comment
@Ayxan, да, похоже, что SLPS теперь находится на inishtech.com и больше не предлагается Microsoft. - person Eclipse; 23.04.2019

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

person Andrew Grant    schedule 25.03.2009

Вам нужно будет определить, что вы сейчас называете «машиной».

Если я заменю ЦП, память и жесткий диск, останется ли это тот же компьютер? Сетевой адаптер, видеокарта?

Что определяет машину?

Существует много-много библиотек лицензирования, которые делают это за вас, но почти все они платные (поскольку, якобы, таким способом вы хотели бы защитить только коммерческое программное обеспечение). Узнайте, что могут предложить RSA, Verisign и даже Microsoft. Windows API не раскрывает это якобы для предотвращения взлома.

Как вариант, сделай сам. Это несложно сделать, самая трудная часть — это определить, что, по вашему мнению, представляет собой машина.

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

Так что это требует некоторых размышлений.

-Адам

person Adam Davis    schedule 25.03.2009
comment
Однажды я оценивал программное обеспечение, которое, среди прочего, зависело от IP-адреса и внезапно перестало работать. Поскольку наш системный администратор не объявил об изменениях IP (в основном правильно полагая, что мы не знали или не заботились), а поставщик не сказал мне, на чем основаны ключи, пришлось немного покопаться. - person David Thornley; 25.03.2009

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

person jheriko    schedule 25.03.2009
comment
К сожалению, MAC-адреса довольно часто изменяются пользователем. Не легко модифицируемый пользователем, но, тем не менее, модифицируемый. - person ; 26.03.2009

Может быть, вы могли бы просто сохранить что-то в реестре? Например, метка времени последней модификации для этого файла — если в реестре нет записи или метки времени не совпадают, вернитесь к значениям по умолчанию — будет ли это работать? (есть более одного способа содрать шкуру с кошки ;))

person RnR    schedule 25.03.2009