![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Альтернатива 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