перехват sysenter, сложности

Тема в разделе "WASM.NT.KERNEL", создана пользователем katrus, 13 июн 2008.

  1. katrus

    katrus New Member

    Публикаций:
    0
    Регистрация:
    7 мар 2007
    Сообщения:
    612
    В недавнем номере журнала хакер Крис описывает перехват sysenter'a с помощью модификации MSR регистров. Я как то давно пробовал этот метод - вроде все пошло гладко, даже слишком гладко. Собственно вопрос - какие подводные камни могут встретится при таком перехвате? На что нужно обратить внимание. Кстати, может кто-то занает - Page Guard на х64 отловит такой перехват?
     
  2. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    А смотря для каких целей он тебе. И как именно ты перехватываешь. И что хочешь получить.
    Описывай конкретнее.

    PS. Было бы неплохо ознакомить с кодом тогда уж, ибо г*вноКсакеп читают не все
     
  3. katrus

    katrus New Member

    Публикаций:
    0
    Регистрация:
    7 мар 2007
    Сообщения:
    612
    Цель стандартная - перехватить функцию, проанализировать ее аргументы и решить что с ней сделать. Или вызвать настоящую функцию, или просто вернуть STATUS_ACCESSDENIED
     
  4. rei3er

    rei3er maxim

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    917
    Адрес:
    minsk
    на MP-системе нужно изменять значение IA32_SYSENTER_EIP для каждого CPU
     
  5. reversecode

    reversecode Guest

    Публикаций:
    0
    не факт что в системе будет юзаться sysenter
     
  6. katrus

    katrus New Member

    Публикаций:
    0
    Регистрация:
    7 мар 2007
    Сообщения:
    612
    для меня достаточно покрытие только для компьютеров с новыми cpu. В принципе можно аналогичным образом подменить прерывание 48. Что меня удивляет - вроде техника такого перехвата очень проста, но реально не используется
     
  7. rpy3uH

    rpy3uH New Member

    Публикаций:
    0
    Регистрация:
    14 сен 2006
    Сообщения:
    503
    Если система WinXP и если проц старше чем Pentium II, и то будет юзаться sysenter
     
  8. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    а что это за прерывание?

    особенности:
    сисентер в винде вызывается сверх часто.
    переключается стэк
    сталкивался с такой проблемой, что какая то дровина на реальном компе меняла состояние МSR регистров, записывая туда свои значения. подробности не помню.
     
  9. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Freeman
    int 30, не знаю зачем оно авору.
    если имелось int 2e, то 0x2e==46, а не 48.
     
  10. katrus

    katrus New Member

    Публикаций:
    0
    Регистрация:
    7 мар 2007
    Сообщения:
    612
    Верно, имел ввиду прерывание 46