Получение уникального идентификатора компьютера
Прочитал много разных источников на предмет того, как сгенерировать уникальный идентификатор для компьютера, в основном пишут - получи MAC адрес (это не подходит потому что его можно легко поменять) или использовать WMI и про него пишут что он может быть поломан или отключен по этому тоже не подходит.
Нашел вот такую функцию, не совсем понял, по моему тут не уникальный идентификатор т.е. часть переменных это просто название производителя .. а другая что процессор может .. а это уж точно не то что нужно.
static const char* cpuId()
{
unsigned long s1 = 0;
unsigned long s2 = 0;
unsigned long s3 = 0;
unsigned long s4 = 0;
__asm
{
mov eax, 00h
xor edx, edx
cpuid
mov s1, edx
mov s2, eax
mov eax, 01h
xor ecx, ecx
xor edx, edx
cpuid
mov s3, edx
mov s4, ecx
}
static char buf[100];
sprintf_s(buf, "%08X %08X %08X %08X", s1, s2, s3, s4);
return buf;
}
Итак, какой самый верный способ получить уникальный идентификатор компьютера не используя WMI и не привязываясь к идентификатору жесткого диска или MAC адреса ..? (используя WMI я бы привязал идентификатор к ID процессора , видеокарты и материнской платы, т.е. эти данные хорошо бы получить без WMI )
(Решение ищу на языке C++ )
Так же идентификатор не должен поменяться при переустановке Windows