Сейчас на форуме: Magister Yoda, vasilevradislav, tyns777, zombi-vadim (+3 невидимых)

 eXeL@B —› Программирование —› кто обращается в драйвер?
Посл.ответ Сообщение

Ранг: 64.0 (постоянный), 2thx
Активность: 0.040.01
Статус: Участник

Создано: 12 июня 2008 17:24
· Личное сообщение · #1

Как в драйвере определить какая программа послала запрос в драйвер?



Ранг: 162.2 (ветеран)
Активность: 0.090
Статус: Участник

Создано: 12 июня 2008 17:53
· Личное сообщение · #2

PsGetCurrentProcess



Ранг: 64.0 (постоянный), 2thx
Активность: 0.040.01
Статус: Участник

Создано: 12 июня 2008 18:38
· Личное сообщение · #3

и имя в возвращаемой структуре будет именем вызывающего приложения?



Ранг: 64.0 (постоянный), 2thx
Активность: 0.040.01
Статус: Участник

Создано: 12 июня 2008 19:23
· Личное сообщение · #4

Подскажите смещения в структуре EPROCESS имени процесса для различных версий Windows (для разных сервиспаков они одинаковы или разные?)




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 12 июня 2008 19:58
· Личное сообщение · #5

Tolkin, google рулит:
blog.csdn.net/agentfactory/archive/2006/09/07/1190810.aspx



Ранг: 64.0 (постоянный), 2thx
Активность: 0.040.01
Статус: Участник

Создано: 12 июня 2008 20:17
· Личное сообщение · #6

спасибо.
еще нашел вариант решения.
в процедуре DriverEntry (она вызывается процессом System) в структуре EPROCESS ищем это имя и смещение его в структуре.
а затем при приходе запроса в драйвер определяем имя в структуре по найденному ранее смещению.
Метод универсален и не нужно под каждую версию Винды знать смещение




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 12 июня 2008 20:19
· Личное сообщение · #7

PsGetCurrentProcessId можно, а резолвить лучше в ринг3, чтоб не хардкодить смещения для всех ОС, ибо везде они разные, гугл поможет найти структуры.




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 12 июня 2008 22:19
· Личное сообщение · #8

Tolkin пишет:
Подскажите смещения в структуре EPROCESS


EPROCESS Vista http://www.nirsoft.net/kernel_struct/vista/EPROCESS.html

-----
EnJoy!




Ранг: 309.8 (мудрец), 21thx
Активность: 0.170
Статус: Участник

Создано: 12 июня 2008 23:37
· Личное сообщение · #9

а как можно резолвить смещения в епроцесс из ринг3

-----
Shalom ebanats!





Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 13 июня 2008 17:21
· Личное сообщение · #10

Смещения в епроцесс из ринг3 никак, а вот имя отрезолвить по пиду вполне.




Ранг: 105.9 (ветеран)
Активность: 0.060
Статус: Участник

Создано: 13 июня 2008 17:31
· Личное сообщение · #11

SLV пишет:
а как можно резолвить смещения в епроцесс из ринг3

Можно через ZwSystemDebugControl, но только в XP



Ранг: 309.8 (мудрец), 21thx
Активность: 0.170
Статус: Участник

Создано: 14 июня 2008 00:22 · Поправил: SLV
· Личное сообщение · #12

в 2003sp1 её урезали как явную брешь в безопасности системы

-----
Shalom ebanats!




Ранг: 14.0 (новичок)
Активность: 0=0
Статус: Участник

Создано: 14 июня 2008 12:38
· Личное сообщение · #13

По собственному опыту скажу - зае***сь хардкодить смещения EPROCESS для всех осей.
ZwQueryInformationProcess юзать тогда уж


 eXeL@B —› Программирование —› кто обращается в драйвер?
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати