В моём случае процедура вызывающая CPUID выглядит так: Код (Text): PUSH EBX PUSH EDI MOV EDI,EAX MOV EAX,1 CPUID STOS DWORD PTR ES:[EDI] MOV EAX,EBX STOS DWORD PTR ES:[EDI] MOV EAX,ECX STOS DWORD PTR ES:[EDI] MOV EAX,EDX STOS DWORD PTR ES:[EDI] POP EDI POP EBX RETN Пропатчить её надо так: Код (Text): PUSH EBX PUSH EDI MOV EDI,EAX MOV EAX, хххххххх NOP NOP STOS DWORD PTR ES:[EDI] XOR EAX,EAX STOS DWORD PTR ES:[EDI] XOR EAX,EAX STOS DWORD PTR ES:[EDI] XOR EAX,EAX STOS DWORD PTR ES:[EDI] POP EDI POP EBX RETN Если делаю это олькой всё работает. Но сделать это из лоадера не умею…
То есть на содержание остальных регистров кроме eax твоей проге накакать? Тогда сам посмотри. у тебя устойчивая последовательность в этой процедуре. Сделай сигнатурный скан и патч себе на здоровье.
SergX Ничего не путаешь? CPUID EAX=1 информация о процессоре и его возможностх EAX=Version Information: Type, Family, Model and Stepping ID EBX= Bits7-0:Brand Index, Bits15-8:CLFLUSH line size (Value*8=cashe line size in bytes) Bits23-16:Maximum number of logical processors in this physical package. Bits31-24:Initial APIC ID ECX=Extended Feature Information EDX=Feature Information Стало быть и патч должен быть таким Код (Text): PUSH EDI MOV EDI,EAX MOV EAX,xxxxxxx1 STOS DWORD PTR ES:[EDI] MOV EAX,xxxxxxx2 STOS DWORD PTR ES:[EDI] MOV EAX,xxxxxxx3 STOS DWORD PTR ES:[EDI] MOV EAX,xxxxxxx4 STOS DWORD PTR ES:[EDI] POP EDI RETN где xxxxxxx1-xxxxxxx4 то что тебе вернула бы непропадченная программа
Mikl__ это я знаю. Просто потом прога ксорит EAX, EBX, ECX, EDX. А я просто подставляю в EAX уже посчитанное значение, а в EBX, ECX, EDX нули.
SergX Тогда патч такой Код (Text): PUSH EDI MOV EDI,EAX MOV EAX, хххххххх STOSD XOR EAX,EAX STOSD STOSD STOSD POP EDI RETN
Ппц, ночью я гоню Еще и муст мой залочился еле разлочил, тупая американская электроника В общем rdtsc можно сделать привелегированой cpuid нет ночь на дворе какая цпуид
tylerdurden Ну, какбы во первых год прошел с момента обсуждения этих проблем, ну и собственно речь шла не про rdtsc, так что вуаля этим собственно и не подходит.