Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Как получить уникальный комер компьютера


Автор: Relvl 23.1.2015, 09:14
Здравствуйте, уважаемые.

Понимаю, что тема избита новичками вроде меня, но всё же решусь спросить.

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

Серийник HDD я получать уже научился через IOCTL_STORAGE_QUERY_PROPERTY.
Серийник тома логического диска не интересует.
МАС-адрес тоже не интересует - во-первых, легко подменяется, во-вторых полно примеров в инете.

В связи с этим есть пара вопросов:

1) szHwProfileGuid из GetCurrentHwProfileA как генерится? Переустановка ОС его изменит?
2) Что еще есть "железного" в винде, что берется не из реестра?
3) На всех ли системах будет работать код из аттача?

PS: Неудобства пользователя (дискуссии о которых начинаются в каждой такой теме) меня мало интересуют, мне нужно блокировать пользователя по этим данным в случае нарушений, а не давать ему доступ.

PPS: Дискуссии о криптостойкости меня тоже не особо интересуют - я и сам прекрасно понимаю, что это всё крякается за 5 минут мало-мальски опытным крякером. Контингент моих клиентов (игровой сервер) по большей части - очень молодые и очень бестолковые люди, от нелегального вмешательства которых (боты, попытки читерить, спам) в игру мне и нужно защититься. От опытных крякеров защищаться смысла большого нет - обойдут защиту в любом случае, хоть аккаунт уже и будет заблокирован.

Автор: DarthTon 24.1.2015, 16:32
1) GetCurrentHwProfile устарел и не используется. 
2) Выбирайте https://msdn.microsoft.com/en-us/library/aa389273(v=vs.85).aspx. WMI немного неудобная штука для работы из C++, но вся инфа достаточно унифицирована, и если написать парочку хелперов можно всё достаточно просто получить.
3) Под х64 не скомилится. ЛУчше взять код отсюда https://msdn.microsoft.com/en-us/library/hskdteyh.aspx

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)