Здравствуйте! Есть функция, которая хукает NtOpenProcess, есть функция, заменяющая ее. Вот код: Код (Text): NTSTATUS NTAPI New_NtOpenProcess ( OUT PHANDLE ProcessHandle, IN ACCESS_MASK AccessMask, IN POBJECT_ATTRIBUTES ObjectAttributes, IN PCLIENT_ID ClientId ) { // Как тут узнать кто вызвал эту функцию? Процесс ид может быть? } Спасибо!
Hippey В PEPROCESS есть ссылка на РЕВ процесса, оттуда можно. Но ее юзать для получения РЕВ не очень хорошо, лучше через ZwQueryInformationProcess http://msdn.microsoft.com/en-us/library/windows/desktop/ms687420(v=vs.85).aspx упс, опередили)
Malfoy Это как процесс завершится ? С каких это пор процесс может заверщится выполняя NtOpenProcess(kernel)?
Malfoy Ну что что? Как будет завершать поток который сечайс в ядре(NtOpenProcess)? ExitProcess(TerminateProcess) 1) Требуется захватить ресурс работы с процессом(ObReferenceObjectByHandle -EPROCESS-> RundownProtect) 2) Кильнуть все потоки(цикл PsGetNextProcessThread, PspTerminateThreadByPointer ) разумеет кроме текущего. 3) Можно уже и освободить флаг протекции Как пройдем первый пункт? Как пройдем второй путнт(Как доставим APC когда поток находится в ядре)? Вообщем не получится