CPUID В качестве идентификации
От: Tasheehoo  
Дата: 25.02.16 17:12
Оценка:
Думаю для идентификации юзера использовать hostname+username+CPUID.
Проблема в том что если EAX=1 то значение EBX меняется само время от времени.
Я использую CPUID c EAX=0,1,2.
Скажите при каких режимах какие регистры можно использовать чтоб идентифицировать проц?

Спасибо!

===
Описание тут: https://en.wikipedia.org/wiki/CPUID#Calling_CPUID
Отредактировано 25.02.2016 17:12 Tasheehoo . Предыдущая версия .
Re: CPUID В качестве идентификации
От: watchmaker  
Дата: 26.02.16 11:56
Оценка:
Здравствуйте, Tasheehoo, Вы писали:

T>Проблема в том что если EAX=1 то значение EBX меняется само время от времени.

T>Описание тут: https://en.wikipedia.org/wiki/CPUID#Calling_CPUID

Так всего-то нужно только страницу до раздела References домотать и увидеть в документации почему так происходит. Нарпимер, для intel и для amd.
Re[2]: CPUID В качестве идентификации
От: Tasheehoo  
Дата: 26.02.16 12:01
Оценка:
Здравствуйте, watchmaker, Вы писали:

W>Так всего-то нужно только страницу до раздела References домотать и увидеть в документации почему так происходит. Нарпимер, для intel и для amd.


В первом документе 69 страниц, во втором 38.
Я думал, чтоб получить ответ на свой вопрос мне не нужно будет читать все эти мегабайты текстов
Re[3]: CPUID В качестве идентификации
От: watchmaker  
Дата: 26.02.16 12:46
Оценка:
Здравствуйте, Tasheehoo, Вы писали:

T>В первом документе 69 страниц, во втором 38.

T>Я думал, чтоб получить ответ на свой вопрос мне не нужно будет читать все эти мегабайты текстов

Верно. Всё подряд читать и не нужно — это же справочник, а не книга
Re[4]: CPUID В качестве идентификации
От: Tasheehoo  
Дата: 26.02.16 13:09
Оценка:
Здравствуйте, watchmaker, Вы писали:

W>Верно. Всё подряд читать и не нужно — это же справочник, а не книга

Ладно. В первом документе про EAX=1 говорится следующее:
EBX Bits 7-0:     Brand Index
    Bits 15-8:    CLFLUSH line size. (Value returned * 8 = cache line size)
                  Valid only if CLFSH feature flag is set
    Bits 23-16:   Count of logical processors. 
                  Valid only if Hyper-Threading Technology flag is set
    Bits 31-24:   Processor local APIC physical ID
                  Valid for Pentium 4 and subsequent processors

Я понимаю что тут написано но я не понимаю какие в моем случии биты меняются и почему.
Но мой основной вопрос: какие регистры можно использовать и быть увереным что они на одной машине и одном проце не будут меняться.
Отредактировано 26.02.2016 13:10 Tasheehoo . Предыдущая версия .
Re: CPUID В качестве идентификации
От: Pzz Россия https://github.com/alexpevzner
Дата: 26.02.16 13:20
Оценка:
Здравствуйте, Tasheehoo, Вы писали:

T>Думаю для идентификации юзера использовать hostname+username+CPUID.


Я б не стал.

Hostname может меняться юзером. Кроме того, за венду не скажу, а в юнихе оно может зависеть от IP-адреса (а он можеть меняться, если подключение к сети не постоянное).

CPUID — штука вообще странная. Непонятно, какие в отношении его есть гарантии уникальности, неизменности и т.п. Более того, на всех виртуальных машинах в пределах одной физической CPUID, скорее всего, будет одинаковым.

Остается лишь username, но этого как-то мало.

Я бы посмотрел в сторону Volume Serial Number того диска, на который установлена система.
Re[5]: CPUID В качестве идентификации
От: watchmaker  
Дата: 26.02.16 13:37
Оценка: +1
Здравствуйте, Tasheehoo, Вы писали:

T>    Bits 31-24:   Processor local APIC physical ID
T>                  Valid for Pentium 4 and subsequent processors
T>

T> какие в моем случии биты меняются и почему.
Ну например APIC ID легко может меняться на многопроцессорных машинах — просто из-за того, что cpuid исполняется на разных процессорах.

T>Но мой основной вопрос: какие регистры можно использовать и быть увереным что они на одной машине и одном проце не будут меняться.

Если со стопроцентной уверенностью, то пожалуй никакие. Процессоры и виртуализация позволяют в большей или меньшей степени менять и подделывать ответы cpuid.
Re[2]: CPUID В качестве идентификации
От: Tasheehoo  
Дата: 26.02.16 15:25
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>CPUID — штука вообще странная. Непонятно, какие в отношении его есть гарантии уникальности, неизменности и т.п.

Это я и пытаюсь узнать.
Re[6]: CPUID В качестве идентификации
От: Tasheehoo  
Дата: 26.02.16 15:27
Оценка:
Здравствуйте, watchmaker, Вы писали:

W>Если со стопроцентной уверенностью, то пожалуй никакие. Процессоры и виртуализация позволяют в большей или меньшей степени менять и подделывать ответы cpuid.

100% не нужно.

Значит я понял что использовать EBX при EAX=1 — нельзя. Хорошо. Остальные регистры для EAX=0,1,2 можно?
Re[3]: CPUID В качестве идентификации
От: Pzz Россия https://github.com/alexpevzner
Дата: 26.02.16 17:14
Оценка:
Здравствуйте, Tasheehoo, Вы писали:

Pzz>>CPUID — штука вообще странная. Непонятно, какие в отношении его есть гарантии уникальности, неизменности и т.п.

T>Это я и пытаюсь узнать.

Вам этого никто не скажет, потому что есть очень много моделей CPU. А что будет с будущими процессорами, вообще неизвестно.
Re[4]: CPUID В качестве идентификации
От: Tasheehoo  
Дата: 26.02.16 20:11
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Вам этого никто не скажет, потому что есть очень много моделей CPU. А что будет с будущими процессорами, вообще неизвестно.

Грусть.

Буду использовать hostname+username+CPUID(EAX=0)+MAC+hdd_system_drive_volume_ID. Думаю не плохо получится...

Благодарен всем!
Re[5]: CPUID В качестве идентификации
От: Pzz Россия https://github.com/alexpevzner
Дата: 27.02.16 09:05
Оценка: 1 (1) +4
Здравствуйте, Tasheehoo, Вы писали:

T>Буду использовать hostname+username+CPUID(EAX=0)+MAC+hdd_system_drive_volume_ID. Думаю не плохо получится...


Еще ID мыши не забудьте. Куда это годится, если пользователю будет позволено поменять мышь без переустановки всего софтвария?!

P.S. Я хочу слазать, слишком уж привязываться к машине тоже плохо.
Re: CPUID В качестве идентификации
От: Lepsik Индия figvam.ca
Дата: 07.03.16 18:32
Оценка:
CPUID в BIOS может быть отключен


Как диски читать то тут

https://www.winsim.com/diskid32/diskid32.html
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.