Сейчас на форуме: asfa, bartolomeo, hgdagon (+6 невидимых) |
eXeL@B —› Программирование —› CPUID |
<< . 1 . 2 . 3 . >> |
Посл.ответ | Сообщение |
|
Создано: 03 мая 2006 05:05 · Личное сообщение · #1 Вопрос по CPUID. Есть такой код, который мне когда-то дал Asterix. Код позволяет получить идентификатор процессора.
Вопрос такой. На каких процессорах это будет реально именно идентификатор. Как это будет на AMD. То есть можно ли положится на то, что на разных компах не будет одинаковых идентификаторов, полученных данным кодом? |
|
Создано: 03 мая 2006 12:26 · Поправил: NeoTall · Личное сообщение · #2 |
|
Создано: 03 мая 2006 12:27 · Личное сообщение · #3 |
|
Создано: 03 мая 2006 12:28 · Поправил: YoriCH · Личное сообщение · #4 |
|
Создано: 03 мая 2006 12:34 · Личное сообщение · #5 |
|
Создано: 03 мая 2006 12:34 · Личное сообщение · #6 |
|
Создано: 03 мая 2006 12:35 · Личное сообщение · #7 |
|
Создано: 03 мая 2006 12:47 · Личное сообщение · #8 |
|
Создано: 03 мая 2006 12:53 · Личное сообщение · #9 |
|
Создано: 03 мая 2006 12:55 · Личное сообщение · #10 |
|
Создано: 03 мая 2006 13:06 · Личное сообщение · #11 program Project1; uses Windows; const szFmt : PChar = '%04X-%04X-%04X-%04X-%04X-%04X' + #0; szCap : PChar = 'Processor Serial Number' + #0; szErr : PChar = 'Processor Serial Number feature is not available' + #0; var buffer:array [1..$80] of byte; begin asm MOV EAX,1 db 00Fh, 0A2h // CPUID AND EDX,20000h JE @error PUSHAD MOV EAX,1 db 00Fh, 0A2h // CPUID PUSH EAX MOV EAX,3 db 00Fh, 0A2h // CPUID POP EAX MOV EBX,EAX SHR EBX,10h AND EAX,0FFFFh MOV ESI,EDX SHR ESI,10h AND EDX,0FFFFh MOV EDI,ECX SHR EDI,10h AND ECX,0FFFFh PUSH ECX PUSH EDI PUSH EDX PUSH ESI PUSH EAX PUSH EBX PUSH szFmt PUSH OFFSET buffer CALL wsprintf ADD ESP,20h PUSH 0 PUSH szCap PUSH OFFSET buffer PUSH 0 CALL MessageBox POPAD JMP @end @error: PUSH 0 PUSH 0 PUSH szErr PUSH 0 CALL MessageBox @end: end; end. |
|
Создано: 03 мая 2006 13:08 · Личное сообщение · #12 |
|
Создано: 03 мая 2006 13:14 · Личное сообщение · #13 |
|
Создано: 03 мая 2006 13:18 · Личное сообщение · #14 |
|
Создано: 03 мая 2006 13:54 · Личное сообщение · #15 |
|
Создано: 03 мая 2006 14:13 · Личное сообщение · #16 Output of CPUID if EAX = 3 Lower 64-bits of the 96-bit processor serial number ____31_________________________________________________0 EAX | Reserved ------------------------------------------------------- EBX | Reserved ------------------------------------------------------- ECX | Bits 31-00 of the 96 bit processor serial number ------------------------------------------------------- EDX | Bits 63-32 of the 96 bit processor serial number |
|
Создано: 03 мая 2006 14:37 · Личное сообщение · #17 |
|
Создано: 03 мая 2006 15:10 · Личное сообщение · #18 |
|
Создано: 03 мая 2006 15:49 · Поправил: infern0 · Личное сообщение · #19 |
|
Создано: 03 мая 2006 16:51 · Личное сообщение · #20 |
|
Создано: 03 мая 2006 17:01 · Личное сообщение · #21 Упс. Не заметил, что уже вторая страница в топике infern0 пишет: processor serial number (PSN) is not supported in the Pentium 4 processor or later Sea AP-485, Intel Processor Identification and the CPUID Instruction (Order Number 241618) for more informtaion on PSN А что это значит? В П4 получение серийника через cpuid вообще не поддерживается или что? Вообще совпадений много Блин получается таким образом к процессору не привязаться Что же делать тогда? Хоть как-нибудь можно получить уникальные характеристика проца, которые не будут совпадать у одинаковых процов? |
|
Создано: 03 мая 2006 17:05 · Личное сообщение · #22 |
|
Создано: 03 мая 2006 17:07 · Личное сообщение · #23 infern0 Как раз таки и скачал его - 241618 . Действительно там это написано, а чуть ниже предлагается проверять PSN feature flag. Получается бессмыслица, т.к. между П-3 и П-4 ничего не было - зачем флаг проверять. А вот если "not" убрать - все станет на свои места, т.к. действительно запрос серийного номера через CPUID был введен начиная с П-4 и позже, но на всякий случай - проверяйте флаг. |
|
Создано: 03 мая 2006 17:25 · Личное сообщение · #24 WELL пишет: Хоть как-нибудь можно получить уникальные характеристика проца, которые не будут совпадать у одинаковых процов? Так поэкспериментируй с EAX, который якобы резерв. Кстати, не странно ли что ECX у всех 0 ?! Хотя сейчас нашел в установщике Intel Fortran-a 8.0 чтение PSN - там проверяют флаг и после берут ECX:EDX |
|
Создано: 03 мая 2006 17:42 · Личное сообщение · #25 |
|
Создано: 03 мая 2006 17:59 · Личное сообщение · #26 |
|
Создано: 03 мая 2006 18:02 · Личное сообщение · #27 |
|
Создано: 03 мая 2006 18:40 · Личное сообщение · #28 |
|
Создано: 03 мая 2006 19:47 · Личное сообщение · #29 WELL пишет: Гон какой-то... Вот-вот. Флаг PSN=0, фукции 3 нет, а что-то выдает У меня кстати тоже 2. Видимо, все-таки была выпущена куча партий П-4 с PSN и они утекли на "восток" Вот теперь можно написать вируса, который не будет трогать русских. На exetools-e надо потрясти буржуев : есть такие процы у них или нет. Тут конечно еще от прошивки БИОС-а многое зависит. =========================== ЕСХ после CPUID(1) описан в доках. Table 6. Feature Flag Values Reported in the ECX Register Bit Name Description when Flag = 1 0 SSE3 Streaming SIMD Extensions The processor supports the Streaming SIMD Extensions 3 instructions. 2:1 Reserved Do not count on their value. 3 MONITOR MONITOR/MWAIT The processor supports the MONITOR and MWAIT instructions. 4 DS-CPL CPL Qualified Debug Store The processor supports the extensions to the Debug Store feature to allow for branch message storage qualified by CPL. 6:5 Reserved Do not count on their value. 7 EIST Enhanced Intel SpeedStep® The processor implements the second-generation Intel SpeedStep technology technology feature. 8 TM2 Thermal Monitor 2 The processor implements the Thermal Monitor 2 thermal control circuit (TCC). 9 Reserved Do not count on their value. 10 CID Context ID The L1 data cache mode can be set to either adaptive mode or shared mode by the BIOS. 13:11 Reserved Do not count on their value. 14 xTPR Send Task Priority The processor supports the ability to disable sending Task Priority Messages messages. When this feature flag is set, Task Priority messages may be disabled. Bit 23 (Echo TPR disable) in the IA32_MISC_ENABLE MSR controls the sending of Task Priority messages. 31:15 Reserved Do not count on their value. |
|
Создано: 03 мая 2006 21:34 · Личное сообщение · #30 WELL пишет: на моем компе вообще что ли вызывать нельзя??? Гон какой-то.. можно, но результат undefined мусор т.е. вернется WELL пишет: В П4 получение серийника через cpuid вообще не поддерживается именно так. Серийник появился в п3 потом начали возмущатся и сначала ввели бит блокировки по быстрому а в п4 и последующих процах вообще убрали серийник. |
|
Создано: 03 мая 2006 21:55 · Личное сообщение · #31 Привет... Может я щас че не по теме напишу, так что сильно не пинайте... Нашел у себя исходники на Дельфах "CPUID unit adaptated for KOL by TR"]F [Revenge Crew]". Вот кусок кода, все он нормально определяет на P4... TCPUIDARRAY=array[1..4] of Longint; function GetCPUID : TCPUIDARRAY; assembler; register; asm PUSH EBX {Save affected register} PUSH EDI MOV EDI,EAX {@Result} MOV EAX,1 DW $A20F {CPUID Command} STOSD {CPUID[1]} MOV EAX,EBX STOSD {CPUID[2]} MOV EAX,ECX STOSD {CPUID[3]} MOV EAX,EDX STOSD {CPUID[4]} POP EDI {Restore registers} POP EBX end; |
<< . 1 . 2 . 3 . >> |
eXeL@B —› Программирование —› CPUID |