Да, и я делаю это в своих приложениях. Работает чудесно.
Получение информации о системе (CPUID, MacID, HDD) легко с помощью WMI (настоятельно рекомендуется).
Я создал систему, которая практически надежна (если вы не профессиональный хакер).
Когда мои приложения впервые устанавливаются на ПК пользователя, они возвращаются на мой сервер с помощью веб-служб. Они идентифицируют себя, используя хэш пароля, и ищут код авторизации / идентификатор заказа для клиента.
Если у клиента есть правильный код авторизации, приложение шифрует и сохраняет системные данные на компьютере клиента и отправляет хэш информации на мой сервер, где она хранится. Затем программное обеспечение активируется на компьютере клиента с использованием некоторых хешированных флагов, и каждый раз, когда приложение запускается, системная информация сравнивается с хешированной информацией в файлах.
Если клиент переформатирует компьютер, все, что ему нужно, - это идентификатор заказа для повторной автоматической активации программного обеспечения (когда программа проверяет мой сервер, данные системы проверяются и утверждаются, если они совпадают). Если клиент устанавливает программное обеспечение на другом компьютере, он должен обратиться в мою службу поддержки для получения разрешения.
- Вся информация зашифрована и хеширована (двойное шифрование).
- Весь код запутан и упакован.
В настоящее время он работает довольно надежно.
Так что да, это возможно, это было проверено в полевых условиях и признано работающим так же, как и любая другая система защиты.