Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2014.07.13;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.44 MB
Время: 0.001 c
1-1326368245
Mister_X
2012-01-12 15:37
2014.07.13
IdMessage, Indy 10


2-1379193818
Никита2013
2013-09-15 01:23
2014.07.13
Сохранение и загрузка StringGrid в файл


3-1299921801
ddd329
2011-03-12 12:23
2014.07.13
SQL запрос от ClientDataSet


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


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





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский