Из чего генерируется и как изменить QSysInfo::machineUniqueId()
Собственно, в qt5 есть такая вещь, как QSysInfo::machineUniqueId().
Интересно, как она работает на Windows, MacOS и Linux и какие данные использует?
А также возможный (вероятный) способ обхода
Ответы (1 шт):
Автор решения: Fat-Zer
→ Ссылка
Достаточно лишь посмотреть исходники:
- На Darwin-системах (MacOS и iOS) это значение
kIOPlatformUUIDKeyиз их регистра (может кто-то уточнит конкретнее — адекватной документации что это такое я не нашёл) - На BSD-системах это значение
kern.hostuuid, запрашиваемоеsysctl. По факту оно хранится в/etc/hostid. см.man sysctl - На Linux это
/var/lib/dbus/machine-id(или/usr/local/var/lib/dbus/machine-id, как фаллбек). На systemd-системах обычно это симлинк на/etc/machine-id. Это случайный uuid, который обычно генерируется во время первой загрузки (или первого запуска dbus). См. документацию debian и fdo. - На Win это значение из ключа реестра
HKLM\SOFTWARE\Microsoft\Cryptography\MachineGuid. Как обычно, ключи реестра ни кто не документирует, но, судя по всему, это также случайное значение, сгенерированное в момент установки.