Здравствуйте! Есть код, который берет путь к файлу процесса: Код (Text): PWSTR GetProcessFullName(IN PEPROCESS process) { KAPC_STATE ApcState; PROCESS_BASIC_INFORMATION ProcessBasicInfo; PWSTR imagePath; __try { KeStackAttachProcess ( process, &ApcState ); if ( NT_SUCCESS ( ZwQueryInformationProcess ( NtCurrentProcess(), ProcessBasicInformation, &ProcessBasicInfo, sizeof ( PROCESS_BASIC_INFORMATION ), NULL ) ) ) { imagePath = (((PRTL_USER_PROCESS_PARAMETERS) (((PPEB)(ProcessBasicInfo.PebBaseAddress))->ProcessParameters))->ImagePathName).Buffer; } KeUnstackDetachProcess ( &ApcState ); } __except ( EXCEPTION_EXECUTE_HANDLER ) { } return imagePath; } Все нормально, но вот есть одна проблемка, если процесс запустить из файла test.exe, во время работы процесса сменить имя на test2.exe и потом в драйвере запустить этот код, то он все равно вернет test.exe, а не новое имя файла. Как это исправить?
Найди FILE_OBJECT связаный с EPROCESS'ом (сначала секция, потом файл объект) и оттуда мути, но как не уверен. Возможно нужно будет подписаться на операции, типа FileSystemWatcher, но нужно это сделать рано.