Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2014.07.13;
Скачать: CL | DM;

Вниз

ProcessHandleToProcessId   Найти похожие ветки 

 
©   (2012-01-14 16:16) [0]

Здрасьте, подскажите как получить ID процесса из HANDLE"а в kernel mode, щас делаю так, все работает отлично, но нужно избежать использования Zw функций, проблемма в совместной работе с антивирусами и перехвате Zw функций

PVOID GetSystemRoutineAddress(WCHAR *Name)
{
 UNICODE_STRING RoutineName;
 PVOID RoutineAddress = NULL;
   
 RtlInitUnicodeString(&RoutineName, Name);

 try
 {
     RoutineAddress = MmGetSystemRoutineAddress(&RoutineName);
 }
 except (EXCEPTION_EXECUTE_HANDLER)
 {
     RoutineAddress = NULL;
 }
   
 return RoutineAddress;
}

typedef NTSTATUS (*_ZwQueryInformationProcess)(__in HANDLE ProcessHandle, __in PROCESSINFOCLASS ProcessInformationClass, __out PVOID ProcessInformation, __in ULONG ProcessInformationLength, __out_opt PULONG ReturnLength);  
_ZwQueryInformationProcess ZwQueryInformationProcess;

HANDLE ProcessHandleToProcessId(HANDLE ProcessHandle)
{
NTSTATUS Status;
ULONG ReturnLength;
PROCESS_BASIC_INFORMATION PBI;

__try
   {
 ZwQueryInformationProcess = GetSystemRoutineAddress(L"ZwQueryInformationProcess");
   
 if (!ZwQueryInformationProcess)
  return (HANDLE)0;

 Status = ZwQueryInformationProcess(ProcessHandle, ProcessBasicInformation, &PBI, sizeof(PROCESS_BASIC_INFORMATION), &ReturnLength);
 if (!NT_SUCCESS(Status))
 {
  return (HANDLE)0;
 }

 ZwQueryInformationProcess = NULL;
   }
__except( EXCEPTION_EXECUTE_HANDLER )  
   {        
   }
return (HANDLE)PBI.UniqueProcessId;
}


 
Самуилыч   (2012-01-16 23:05) [1]

DWORD GetProcessId(HANDLE Process);

Parameters

Process
[in] Handle to the process.

The handle must have the PROCESS_QUERY_INFORMATION access right.

Return Values

If the function succeeds, the return value is the process identifier of the specified process.

If the function fails, the return value is zero. To get extended error information, call GetLastError.


 
©   (2012-01-17 20:54) [2]


> Самуилыч   (16.01.12 23:05) [1]


Мля блин PsGetProcessId() в XP и выше то что нужно, спасибо плохо искал



Страницы: 1 вся ветка

Текущий архив: 2014.07.13;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.006 c
15-1387636653
robt5
2013-12-21 18:37
2014.07.13
поиск последовательностей


2-1378719857
Сергей
2013-09-09 13:44
2014.07.13
КАК ЗАДАТЬ РАНДОМ И ВЫВЕСТИ В ЛЭЙБЛ?


15-1387780978
Ega23
2013-12-23 10:42
2014.07.13
ВНЕЗАПНО подвисли 2 билета в цирк


15-1387194883
PChar
2013-12-16 15:54
2014.07.13
не включается макбук


15-1387390921
RDen
2013-12-18 22:22
2014.07.13
ms outlook 2003 доставка почты при запуске