Ограничить функциональность для определенного компьютера - PullRequest
4 голосов
/ 25 марта 2009

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

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

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

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

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

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

Nicolas

Ответы [ 5 ]

4 голосов
/ 25 марта 2009

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

2 голосов
/ 25 марта 2009

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

1 голос
/ 25 марта 2009

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

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

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

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

Альтернативно, сделай это сам. Это не сложно, сложная часть - определить, что вы считаете машиной.

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

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

-Adam

0 голосов
/ 25 марта 2009

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

0 голосов
/ 25 марта 2009

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

...