как получить текущий путь к образу процесса из драйвера ядра мини-фильтра? - PullRequest
0 голосов
/ 11 февраля 2020

Я хочу получить текущий путь процесса в своем драйвере ядра мини-фильтра. Я могу получить текущий процесс с помощью PEPROCESS peProcess = IoGetCurrentProcess() и получить полное имя файла процесса (включая путь) с помощью ZwQueryInformationProcess. Но я хочу просто получить путь (без имени файла). Я использую visualstudio 2019 и последний SDK / WDK.

1 Ответ

0 голосов
/ 11 февраля 2020

Может быть что-то вроде этого:

ZwCreateFile (DesiredAccess = FILE_READ_ATTRIBUTES) → файл HANDLE

https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/ntifs/nf-ntifs-ntcreatefile

ZwQueryInformationFile ( FileInformationClass = FileNameInformation) → Структура FILE_NAME_INFORMATION

https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/ntifs/nf-ntifs-ntqueryinformationfile

"Если возвращены полный путь и имя файла, строка будет начинаться с одного обратного знака sh, независимо от его местоположения. Таким образом, файл C: \ dir1 \ dir2 \ filename.ext будет выглядеть как \dir1\dir2\filename.ext "

https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/ntifs/nf-ntifs-ntqueryinformationfile#remarks

(Затем вы удаляете конечное имя файла, находя последний обратный знак sh.)

ZwClose (РУЧКА)

https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/wdm/nf-wdm-zwclose

...