Главная страница
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.007 c
15-1387194883
PChar
2013-12-16 15:54
2014.07.13
не включается макбук


2-1378965082
Коля
2013-09-12 09:51
2014.07.13
Создание Tmemo


3-1299765129
stas
2011-03-10 16:52
2014.07.13
синтаксис оракла


2-1378693783
Wadimka
2013-09-09 06:29
2014.07.13
Как сэмулировать нажатие кнопки _ (нижние подчеркивание)


15-1387776401
ProgRAMmer Dimonych
2013-12-23 09:26
2014.07.13
Восстановление NTFS без переформатирования из RAW