Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Альтернатива OpenProcess [D7]


Игорь ©   (2009-11-19 12:18:00) 

Подскажите как можно получить Handle процесса помимо OpenProcess,
открываемый процесс использует драйвер для перехвата вышеуказанной функции?

Vista, 7


Riply   (2009-11-22 09:45:00) [1]

[17] Игорь ©   (21.11.09 18:08)

> Riply ©   (20.11.09 22:51) [16]
> Вы имеете ввиду смотреть OBJECT_NAME_INFORMATION - Name типа 'Process' или...

Ну... все зависит от целей.
Если у нас работа только с одним типом объекта, то можно
создать интересующий нас объект и с помощью ZwQuerySystemInformation(SystemHandleInformation, ...),
по числовому значению Handle`а, найти в своем процессе его(объекта) SYSTEM_HANDLE_TABLE_ENTRY_INFO.
В поле ObjectTypeIndex и будет сидеть искомый индекс.
В нашем случае можно ничего не создавать, а искать Handle своего же процесса (только не псевдо-хендл :))

Если же индексы нам нужны для разных объектов, то можно воспользоваться ZwQueryObject(0, ObjectAllTypesInformation, ...)
и из POBJECT_ALL_TYPES_INFORMATION вытащить все нужные нам индексы.


Игорь   (2009-11-21 18:08:00) [2]


> Riply ©   (20.11.09 22:51) [16]


Вы имеете ввиду смотреть OBJECT_NAME_INFORMATION - Name типа 'Process'или...


Riply   (2009-11-20 22:51:00) [3]

> [13] Игорь ©   (20.11.09 17:43)
> Короче все Handle'ы можно найти в csrss.exe, а в Vista у меня не
> работало потому что OB_TYPE_PROCESS разные, в XP - 05, в Vista - 07

Теоритически TypeIndex может различаться и на одной и той же версии системы.
Более того, он может измениться даже после рестарта (правда лично этого не наблюдала).
Так что его нужно получать динамически, а не вшивать намертво типа: XP - 05, в Vista - 07.


Игорь   (2009-11-20 19:29:00) [4]


> Игорь Шевченко ©   (20.11.09 19:01) [14]


Ну по крайней мере для меня эта новость, потому что Рихтера я к сожалению не удосужился почитать


Игорь Шевченко   (2009-11-20 19:01:00) [5]


> Короче все Handle'ы можно найти в csrss.exe


Это не новость. Еще в третьем издании Рихтера об этом написано, 95 год


Игорь   (2009-11-20 17:43:00) [6]


> Riply ©   (20.11.09 08:53) [9]


Короче все Handle'ы можно найти в csrss.exe, а в Vista у меня не работало потому что OB_TYPE_PROCESS разные, в XP - 05, в Vista - 07


Игорь   (2009-11-20 15:25:00) [7]


> Riply ©   (20.11.09 08:53) [9]


Я пробовал, можно и работает, только в Vista и 7 такая фишка не проходит, хотя надо получше разобраться


Riply   (2009-11-20 12:35:00) [8]

> [10] Игорь Шевченко ©   (20.11.09 10:30)
> Comodo Internet Security

Угу. Спасибо :)


Игорь Шевченко   (2009-11-20 10:30:00) [9]

Riply ©   (20.11.09 08:42) [8]

Comodo Internet Security


Riply   (2009-11-20 08:53:00) [10]

> [0] Игорь ©   (19.11.09 12:18)
> Подскажите как можно получить Handle процесса помимо OpenProcess,

Можно поробовать найти его Handle в другом процессе, например lsass.exe, и "продубликатить".
P.S.
Сама не пробовала.


Riply   (2009-11-20 08:42:00) [11]

> [5] Игорь Шевченко ©   (19.11.09 20:10)
> У меня процесс файрволла тоже не открывается на перечисление модулей, загруженных в его адресное пространство.

А какой файрвол, если не серет ? :)


Игорь   (2009-11-20 05:46:00) [12]

Спасибо


Игорь Шевченко   (2009-11-19 20:11:00) [13]

Игорь ©   (19.11.09 19:52) [4]


> Ну соответственно NT и ZW перехватывает тоже


Соответственно, надо писать свой драйвер или искать интерфейс к драйверу Process Explorer


Игорь Шевченко   (2009-11-19 20:10:00) [14]

Leonid Troyanovsky ©   (19.11.09 14:52) [3]

Скорее, антивнедреж.

У меня процесс файрволла тоже не открывается на перечисление модулей, загруженных в его адресное пространство.


Игорь   (2009-11-19 19:52:00) [15]


> clickmaker ©   (19.11.09 13:38) [1]


Ну соответственно NT и ZW перехватывает тоже


Leonid Troyanovsky   (2009-11-19 14:52:00) [16]


> Игорь Шевченко ©   (19.11.09 14:30) [2]

> если открываемый процесс использует драйвер

А для чего такое используется?
Антиотладчик?

--
Regards, LVT.


Игорь Шевченко   (2009-11-19 14:30:00) [17]

если открываемый процесс использует драйвер, то не открыть


clickmaker   (2009-11-19 13:38:00) [18]

NtOpenProcess


Наверх

Титульная страница Поиск, карта сайта Написать письмо