На основе предыдущего кода. Получаем серийный номер материнской платы:
То же самое, только из BIOS:
Ну и на закуску - уникальный идентификатор компьютера (UUID):
в картинке результат работы этих функций на компьютере, собранном вручную (возможно, если б это был ноут или запаяный деловский или HP-шный корпус, было бы более информативно ))) )
ID процессора, который мы вроде как получили, ни кто направо и налево не меняет
увы, это не серийный номер, а набор циферок-буковок, которые набираются из характеристик процессора. скажу одно, поменять его руками практически никак, он не меняется после повторного включения компьютера ))). пользоваться можно, но не ТОЛЬКО ЭТИМ полем, а совместно с другими. UUID работает (правда возможен вариант, когда первых три набора идут с нулями, если верить документации).
короче говоря, вот так выглядит файл лицензии у меня:
Application:название приложения| <- думаю тут всё понятно
360UserID:XXXXXXXXX| <-идентификатор Autodesk360
MAC:XX:XX:XX:XX| <- мак адрес. не надежно, но не страшно ))) Win32_NetworkAdapter.MACAddress
UUID:XXXXXXXXXXXXXXXXXXXXXXXX| <- Win32_ComputerSystemProduct.UUID
ProcessorId:XXXXXXXXXXX| <- Win32_Processor.ProcessorId
Status:request| <-(ну или ключевое слово, позволяющее перейти в оффлайн режим работы)
KEY:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX| <- рандомно генерируется ключ
и так, если пользователь прошел онлайн проверку (хотя б один раз), генерируется такой файл. сам файл естественно шифруется. функции шифрования написал выше.
получение оффлайн лицензии возможно ТОЛЬКО в случае наличия этого файла. т.е. если установил купленную прогу на 10 компов, то файл запроса лицензии появится только на тех компиках, где входил под своим аккаунтом в Autodesk360 и ЗАПУСКАЛ программу.
дальше, если хочет офлайн, нужно на мыло отправить ключик, состоящий из значений полей: Application|360UserID|KEY
В ответ он получает ключ для того, чтоб файл запроса офлайн лицензии поменялся на полный файл лицензии. Естественно, перед тем, как выдать ключик можно зайти в магазин и глянуть, сколько версий проги купил человечек с этим UID-ом ))).
в открытом виде никакая информация не передается. есть три набора алфавита
1. ABCDE...
2. VGDHA...
3. GRDSL...
инфа внутри файла лицензии лежит в первом варианте алфавита.
мне передается код запроса во втором варианте алфавита
я отправляю код активации в третьем варианте алфавита.
ну и естественно, вся работа происходит в первом варианте алфавита, значит есть функции для превращения набора буковок-циферок ИЗ-В
Не уверен, что WbemScripting будет всегда работать. Скорее всего админ запретит его для обычных пользователей.
если у пользователя такие вольготные условия, что даже интернет есть ))), то вряд-ли закрыт WMI ). ну а если и закрыт, то работа будет только с онлайн лицензией, что тоже лично для меня не сильно страшно.
И на основе вот этого: http://www.nextofwindows.com/the-best-way-to-uniquely-identify-a-windows-machine
очень интересно. нужно потестировать. как проверю, отпишусь по этому поводу.