Есть процесс A, который открывает и запускает процесс B. Процесс B открывает и запускает процесс C. Т.о. процесс A знает pid и хэндл процесса B. Процесс B знает pid и хэндл процесса C. Процесс A хучит некоторые апи в процессе B, и получает хэндл процесса С. Как процессу A получить pid процесса С ? Попробовал через Код (Text): push 4;DUPLICATE_SAME_ATTRIBUTES push 0 push 0 push offset hObject push eax push hid2 push hid call ZwDuplicateObject push 0 push 24; ProcessBasicInformation push offset ProcessInformation push 0 push dword ptr ds:[hObject] call ZwQueryInformationProcess получаю ошибку C0000022 (Отказано в доступе) Или может есть другие способы?
Попробуй DUPLICATE_SAME_ACCESS, ну и хендл в В должен быть с достаточным доступом соответственно. А зачем что-то хукать, не легче сделать через тулхелп апи снепшот и в 2 прохода по нему найти сразу PID В и С ?
Сработало, спасибо. Все дело в том, что я делаю дампер, который хучит ZwWriteVirtualMemory в выбранном процессе. Вот и хотелось бы получать pid процесса в который пишут.