ComputerID в Qt - PullRequest
       2

ComputerID в Qt

1 голос
/ 29 июля 2011

Ну, мне просто нужен способ получить Windows ComputerID (аппаратный), идентификатор, который не изменяется, или что-то подобное, неизменяемое, если вы не вносите изменения в оборудование на вашем ПК.

Ответы [ 2 ]

1 голос
/ 31 июля 2011

Qt не предоставляет такой функциональности.Все, что вы можете сделать, это рассчитать такое значение из существующего оборудования, такого как ЦП, установленные жесткие диски и / или MAC-адрес.Ни один из этих подходов не дает полностью удовлетворительного решения вашей проблемы.

Использование ЦП для аппаратного идентификатора вы можете использовать командой Ассемблера CPUID: http://en.wikipedia.org/wiki/CPUID, http://www.sandpile.org/ia32/cpuid.htmпредоставить некоторую подробную информацию.

QByteArray CPU_Vendor_Name()
{
    char Vendor[13];

    _asm
    {
        // EAX = 0: Get CPU manufacturer
        XOR EAX, EAX
        CPUID

        MOV EAX, EBX
        MOV Vendor[0], al
        MOV Vendor[1], ah
        SHR EAX, 16
        MOV Vendor[2], al
        MOV Vendor[3], ah

        MOV EAX, EDX
        MOV Vendor[4], al
        MOV Vendor[5], ah
        SHR EAX, 16
        MOV Vendor[6], al
        MOV Vendor[7], ah

        MOV EAX, ECX
        MOV Vendor[8], al
        MOV Vendor[9], ah
        SHR EAX, 16
        MOV Vendor[10], al
        MOV Vendor[11], ah
        MOV Vendor[12], 00
    }
    return QByteArray(Vendor);
}

Возвращает «GenuineIntel» для всех процессоров Intel и «AuthenticAMD» для процессора AMD.Это совершенно бесполезно, но с другими параметрами в регистре EAX вы получаете подробную информацию о процессоре (подробную модель, функции и т. Д.).Это можно использовать для вычисления идентификатора (например: SHA(Vendor, Model, BrandID, CPUCount)) и т. Д. Но имейте в виду, что один и тот же процессор всегда будет приводить к одному и тому же идентификатору.

Вы можете дополнить свой идентификатор MAC-адресом (= SHA(Vendor, ..., MAC)), но MAC-адрес можно изменить, хотя маловероятно, что средний компьютер будет делать это часто.

Если вы хотите реализовать какую-либо защиту от копирования, помните, что каждая копияЗащита может быть взломана, поэтому вы не должны наказывать своих пользователей очень сложной защитой, которая ограничивает использование вашего программного обеспечения для них.

0 голосов
/ 20 июня 2014

Я понимаю, что это старая публикация, но я наткнулся на этот документ, и мне пришлось опубликовать его, потому что он объясняет CPUID и процесс извлечения информации о CPU из микросхемы.Не то чтобы @Wolfgang Plaschg был в любом случае неверен.Будучи новичком, его ответ имел некоторый смысл, но вначале была небольшая степень абстракции, которую я не видел.Может быть, это может помочь и другим новичкам ... Это документ от Intel:

http://download.intel.com/design/PentiumIII/applnots/24512501.pdf

, если ссылка не работает или больше не доступна, найдите приложение Intel AP-909Заметка.Также эта ссылка также может помочь:

https://software.intel.com/en-us/forums/topic/308483

Наслаждайтесь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...