ZwDuplicateObject and ZwQueryInformationProcess

Тема в разделе "WASM.WIN32", создана пользователем Flint_ta, 15 фев 2011.

  1. Flint_ta

    Flint_ta New Member

    Публикаций:
    0
    Регистрация:
    25 май 2008
    Сообщения:
    312
    Есть процесс A, который открывает и запускает процесс B. Процесс B открывает и запускает процесс C.
    Т.о. процесс A знает pid и хэндл процесса B. Процесс B знает pid и хэндл процесса C.

    Процесс A хучит некоторые апи в процессе B, и получает хэндл процесса С. Как процессу A получить pid процесса С ?

    Попробовал через
    Код (Text):
    1. push 4;DUPLICATE_SAME_ATTRIBUTES
    2. push 0
    3. push 0
    4. push offset hObject
    5. push eax
    6. push hid2
    7. push hid
    8. call ZwDuplicateObject
    9.  
    10. push 0
    11. push 24; ProcessBasicInformation
    12. push offset ProcessInformation
    13. push 0
    14. push dword ptr ds:[hObject]
    15. call ZwQueryInformationProcess
    получаю ошибку C0000022 (Отказано в доступе)

    Или может есть другие способы?
     
  2. onSide

    onSide New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2008
    Сообщения:
    476
    Попробуй DUPLICATE_SAME_ACCESS, ну и хендл в В должен быть с достаточным доступом соответственно.
    А зачем что-то хукать, не легче сделать через тулхелп апи снепшот и в 2 прохода по нему найти сразу PID В и С ?
     
  3. Flint_ta

    Flint_ta New Member

    Публикаций:
    0
    Регистрация:
    25 май 2008
    Сообщения:
    312
    Сработало, спасибо.

    Все дело в том, что я делаю дампер, который хучит ZwWriteVirtualMemory в выбранном процессе. Вот и хотелось бы получать pid процесса в который пишут.