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
Да пребудет с тобою сила
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.