SDT HOOK. Отследить имя процесса, откуда был вызов АПИ

Тема в разделе "WASM.NT.KERNEL", создана пользователем nitrotoluol, 31 июл 2007.

  1. nitrotoluol

    nitrotoluol New Member

    Публикаций:
    0
    Регистрация:
    5 сен 2006
    Сообщения:
    848
    Сабж
    Перехватив функцию, нужно проследить, из какого процесса был вызван данный системный сервис.
    Как?
     
  2. nitrotoluol

    nitrotoluol New Member

    Публикаций:
    0
    Регистрация:
    5 сен 2006
    Сообщения:
    848
    Как я понимаю, по хэндлу...
    Тогда перефразирую...
    как узнать, какому процессу принадлежит переданный хэндл?
     
  3. gilg

    gilg New Member

    Публикаций:
    0
    Регистрация:
    19 май 2005
    Сообщения:
    527
    PsGetCurrentProcessId
     
  4. nitrotoluol

    nitrotoluol New Member

    Публикаций:
    0
    Регистрация:
    5 сен 2006
    Сообщения:
    848
    gilg
    объясни систему в неск. словах... потому как я сонный и немного туплю...
    Вот мы поставили хук. Далее нам нужно знать имена процессов, вызывающих функию...
    если в нашем хуке вызвать эту функцию, то она вернед ИД процесса?
    А если система многоядерная? Все-равно??
     
  5. dead_body

    dead_body wasm.ru

    Публикаций:
    0
    Регистрация:
    3 сен 2004
    Сообщения:
    603
    Адрес:
    Украина;г.Харьков;г.Н.Каховка
    а причём ту мноягоядерность? Вернут же ИД процесса, а не процессора.
     
  6. gilg

    gilg New Member

    Публикаций:
    0
    Регистрация:
    19 май 2005
    Сообщения:
    527
    nitrotoluol
    Вызов SDT-шных функций происходит в контексте юзерского процесса (при вызове из ядра, соответственно в контексте System). Через PsGetCurrentProcessId получаем ид процесса, который произвел вызов, совершенно прозрачно относительно процессора на котором происходит обработка, т.к. контекст будет сохраняться при переключении на другой проц. Имя по ид --> через EPROCESS (поиск по форуму)
     
  7. nitrotoluol

    nitrotoluol New Member

    Публикаций:
    0
    Регистрация:
    5 сен 2006
    Сообщения:
    848
    gilg
    dead_body
    Понял. Спасибо. Как хорошо, что есть такие умные люди как вы. )) Респект
     
  8. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    это с какой радости? оО неужто только потоки процесса систем могут работать в режиме ядра?
     
  9. Guest

    Guest Guest

    Публикаций:
    0
    ID возвращается именно от System.
    P.S. Посмотрел внимательно ID System возвращается если ID процесса вообще отсутствует.
     
  10. gilg

    gilg New Member

    Публикаций:
    0
    Регистрация:
    19 май 2005
    Сообщения:
    527
    Great
    Ну да, это я поторопился малость. Когда драйвер верхнего уровня вызывает сервис, то контекст будет не системный.