Помогите plz с CPUID hook

Тема в разделе "WASM.RESEARCH", создана пользователем SergX, 5 июл 2007.

  1. SergX

    SergX New Member

    Публикаций:
    0
    Регистрация:
    4 июл 2007
    Сообщения:
    19
    В моём случае процедура вызывающая CPUID выглядит так:
    Код (Text):
    1. PUSH EBX
    2. PUSH EDI
    3. MOV EDI,EAX
    4. MOV EAX,1
    5. CPUID
    6. STOS DWORD PTR ES:[EDI]
    7. MOV EAX,EBX
    8. STOS DWORD PTR ES:[EDI]
    9. MOV EAX,ECX
    10. STOS DWORD PTR ES:[EDI]
    11. MOV EAX,EDX
    12. STOS DWORD PTR ES:[EDI]
    13. POP EDI
    14. POP EBX
    15. RETN
    Пропатчить её надо так:
    Код (Text):
    1. PUSH EBX
    2. PUSH EDI
    3. MOV EDI,EAX
    4. MOV EAX, хххххххх
    5. NOP
    6. NOP
    7. STOS DWORD PTR ES:[EDI]
    8. XOR EAX,EAX
    9. STOS DWORD PTR ES:[EDI]
    10. XOR EAX,EAX
    11. STOS DWORD PTR ES:[EDI]
    12. XOR EAX,EAX
    13. STOS DWORD PTR ES:[EDI]
    14. POP EDI
    15. POP EBX
    16. RETN
    Если делаю это олькой всё работает. Но сделать это из лоадера не умею…
     
  2. k3internal

    k3internal New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    607
    То есть на содержание остальных регистров кроме eax твоей проге накакать? Тогда сам посмотри. у тебя устойчивая последовательность в этой процедуре. Сделай сигнатурный скан и патч себе на здоровье.
     
  3. Mikl_

    Mikl_ New Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2006
    Сообщения:
    907
    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):
    1. PUSH EDI
    2. MOV EDI,EAX
    3. MOV EAX,xxxxxxx1
    4. STOS DWORD PTR ES:[EDI]
    5. MOV EAX,xxxxxxx2
    6. STOS DWORD PTR ES:[EDI]
    7. MOV EAX,xxxxxxx3
    8. STOS DWORD PTR ES:[EDI]
    9. MOV EAX,xxxxxxx4
    10. STOS DWORD PTR ES:[EDI]
    11. POP EDI
    12. RETN
    где xxxxxxx1-xxxxxxx4 то что тебе вернула бы непропадченная программа
     
  4. SergX

    SergX New Member

    Публикаций:
    0
    Регистрация:
    4 июл 2007
    Сообщения:
    19
    Не должны быть нули. Прога потом их всех перексоривает.
     
  5. SergX

    SergX New Member

    Публикаций:
    0
    Регистрация:
    4 июл 2007
    Сообщения:
    19
    Mikl__ это я знаю.
    Просто потом прога ксорит EAX, EBX, ECX, EDX.
    А я просто подставляю в EAX уже посчитанное значение, а в EBX, ECX, EDX нули.
     
  6. Mikl_

    Mikl_ New Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2006
    Сообщения:
    907
    SergX
    Тогда патч такой
    Код (Text):
    1. PUSH EDI
    2. MOV EDI,EAX
    3. MOV EAX, хххххххх
    4. STOSD
    5. XOR EAX,EAX
    6. STOSD
    7. STOSD
    8. STOSD
    9. POP EDI
    10. RETN
     
  7. SergX

    SergX New Member

    Публикаций:
    0
    Регистрация:
    4 июл 2007
    Сообщения:
    19
    Mikl__
    Сложность у меня в том как пропатчить из лоадера...
     
  8. tylerdurden

    tylerdurden New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2004
    Сообщения:
    322
    Ппц, ночью я гоню :) Еще и муст мой залочился еле разлочил, тупая американская электроника :) В общем rdtsc можно сделать привелегированой cpuid нет :) ночь на дворе какая цпуид
     
  9. PaCHER

    PaCHER New Member

    Публикаций:
    0
    Регистрация:
    25 мар 2006
    Сообщения:
    852
    tylerdurden
    Ну, какбы во первых год прошел с момента обсуждения этих проблем, ну и собственно речь шла не про rdtsc, так что вуаля этим собственно и не подходит.
     
  10. k3internal

    k3internal New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    607
    Йопта! Юзайте себе на здоровье vt-x и не парьтесь. За год можно было купить новый проц
     
  11. tylerdurden

    tylerdurden New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2004
    Сообщения:
    322
    Гг точно, что-то в ресерче темы залежалые, а у мну как "новье" висят