PsSetCreateProcessNotifyRoutine ...
От: Saviour  
Дата: 16.12.04 14:38
Оценка:
Написал драйерок и зарегил эвенты все ништяк робит как часы. Но одно но как получить имя процесса и еще лучше и полный путь запускаемого файла в самом драйвере?
Re: PsSetCreateProcessNotifyRoutine ...
От: TarasCo  
Дата: 16.12.04 15:00
Оценка: 3 (1)
Здравствуйте, Saviour, Вы писали:

S>Написал драйерок и зарегил эвенты все ништяк робит как часы. Но одно но как получить имя процесса и еще лучше и полный путь запускаемого файла в самом драйвере?


Могу предложить несколько "левое" решение.
Зарегистрируйте также нотификатор PsSetLoadImageNotifyRoutine. Он будет вызван в контексте только что созданного процесса. Первым будет вызван нотфикатор о загрузке образа главного (ехе) модуля, а потом всех подчиненных.

В чем левизна:
1)Вроде, под НТ4 нет PsSetLoadImageNotifyRoutine
2)Есть более прямые пути (наверное )
3)К одному процессу пути могут быть в разной форме(это вообще ко всем относится):
1) локальный \Device\HarddiskVolume1\mydir\myproc.exe
2) а если папка расшарена? \Device\LanmanRedirector\myshara\myproc.exe
3) а если мы используем клиента отличного от "клиента для сетей микрософт"?
\Device\CoolRedirector\myshara\myproc.exe
4)А под NTFS можно создавать линки аля ext2
\Device\HarddiskVolume1\mydir1\myproc.exe
так что — учитывайте.......

тут еще жесткий способ выгребания имени (ПОЛНОГО!) процесса:
http://ntndis.com/forum/viewtopic.php?t=52
Да пребудет с тобою сила
Re[2]: PsSetCreateProcessNotifyRoutine ...
От: Saviour  
Дата: 17.12.04 05:18
Оценка:
to TarasCo
Спасиб за ссылку

Еще вопрос в догонку а реально ли приостановить запуск процесса на время? Чтобы проверить запускающий файл по некоторым прараметрам. ТОбиж если не походит то килять его если подходит то разрешить далтьнейшее выполнени.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.