Главная страница
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
поиск последовательностей


15-1387657802
Юрий
2013-12-22 00:30
2014.07.13
С днем рождения ! 22 декабря 2013 воскресенье


2-1378809312
leshka
2013-09-10 14:35
2014.07.13
Динамический массив


1-1326543408
p
2012-01-14 16:16
2014.07.13
ProcessHandleToProcessId


2-1378798421
Сергей
2013-09-10 11:33
2014.07.13
Бит бтн glyth