Как получить уникальную аппаратную / программную подпись от Windows PC в C / C ++ - PullRequest
8 голосов
/ 11 февраля 2009

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

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

Ответы [ 3 ]

10 голосов
/ 11 февраля 2009

Это в основном зависит от того, насколько тесно вы хотите связать свое программное обеспечение с базовым оборудованием. Например, вы можете получить некоторую информацию об оборудовании из реестра, прочитать MAC-адрес с сетевой карты, получить производителя gfx, идентификатор процессора и т. Д. И хэшировать все эти данные.
Затем вы можете использовать этот хэш в качестве запроса кода, который отправляется в вашу компанию. Затем клиент получает подписанную (с вашим личным ключом) версию этого хэша.
После запуска ваше приложение может проверить, является ли подпись хэша хорошей или плохой (то есть была ли она подписана вашей компанией).
Это не только связывает ваше программное обеспечение с определенной конфигурацией оборудования, но также заставляет взломщиков исправлять ваше приложение (потому что им нужно будет исправить открытый ключ из вашего исполняемого файла и заменить его, чтобы написать keygen). Многие люди считают, что нужно дважды устанавливать трещину, полученную из разных источников, в отличие от простого ввода действительного серийного номера, скопированного с кейгена.

Edit:
Чтобы проверить подпись хэша, можно использовать что-либо от RSA до DSA до ECC . Я могу порекомендовать Crypto ++ или libTomCrypt для этого.

0 голосов
/ 11 февраля 2009

Как говорили другие, нет ничего идеального для того, что вы хотите. Я предпринял нерешительную попытку подобной проблемы, и в итоге получился смешанный идентификатор тома диска (не очень хорошо, потому что его можно переформатировать) и ключ ОС (из windows).

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

Потратьте время / усилия на то, чтобы заставить их купить его, сделав его выдающимся.

0 голосов
/ 11 февраля 2009

Нет надежного способа сделать это на обычном ПК; люди пытались годами. Проблема в том, что вы можете изменить любой компонент в любое время, включая ЦП и ПЗУ BIOS. Самые близкие люди используют криптографически защищенный « ключ », но он оказался неудовлетворительным в работе и не очень безопасным.

Если вы что-то придумаете, запатентовайте это; это было бы очень ценно.

...