Kernel mode enter and.. exit hooking

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

  1. retmas

    retmas New Member

    Публикаций:
    0
    Регистрация:
    4 фев 2005
    Сообщения:
    100
    Господа!
    Как решить следующую задачу:

    перехватить события перехода потока в режим ядра и выход из режима ядра?
    какие мысли??
    thanx
     
  2. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    переход осуществляется обычно в нтдлл функцией KiFastSystemCall или KiIntSystemCall.
    Возврат в первом случае KiFastSystemCallRet, во втором по ret'у
     
  3. retmas

    retmas New Member

    Публикаций:
    0
    Регистрация:
    4 фев 2005
    Сообщения:
    100
    Это вполне очевидно.. но! как перехватить??
     
  4. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Заюзай KiSystemServiceRepeat, вобщем смотря какой уровень перехвата.
     
  5. retmas

    retmas New Member

    Публикаций:
    0
    Регистрация:
    4 фев 2005
    Сообщения:
    100
    а можно подробнее про KiSystemServiceRepeat, как с помощью нее можно решить поставленную задачу? thx
     
  6. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    retmas
    Для выхода в юзермод следует изменить указатели в данных нтоса четырёх точек и один адрес в разделяемой памяти:
    KeUserApcDispatcher
    KeUserCallbackDispatcher
    KeUserExceptionDispatcher
    KeRaiseUserExceptionDispatcher
    USER_SHARED_DATA.SystemCallReturn
    Для отслеживания входа в кернелмод зависит от желаемого уровня контроля, но тут чем ниже тем больше следует выполнить работы, оптимально KiSystemServiceRepeat, это всё уже давно разжёвано.
    [Это для нормального ядра, где никаких руткитов нет. Раз пять переписал, пока без ошибок слова написал ппц :)]
     
  7. retmas

    retmas New Member

    Публикаций:
    0
    Регистрация:
    4 фев 2005
    Сообщения:
    100
    что такое в "данных нтоса"??
     
  8. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    хм секция .data
     
  9. retmas

    retmas New Member

    Публикаций:
    0
    Регистрация:
    4 фев 2005
    Сообщения:
    100
    ясн.. эт не то(
     
  10. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    retmas
    Ну тогда апсте.. Не, не знаею что ещё предложить.
     
  11. wasm_test

    wasm_test wasm test user

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