Какой процесс вызвал функцию?

Тема в разделе "WASM.NT.KERNEL", создана пользователем kkrutoy, 26 апр 2007.

  1. kkrutoy

    kkrutoy New Member

    Публикаций:
    0
    Регистрация:
    6 апр 2007
    Сообщения:
    44
    Адрес:
    Владивосток
    Ребята, допустим я пропатчил какую-нить функцию через SDT (например, чтения реестра). Как узнать, какой процесс ее вызвал? Как потом залезть в память этого процесса, чтоб читать его PEB-ы и прочие полезности?
     
  2. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    PsGetCurrentProcess
    Ты находишься в его контексте, можешь читать писать в его память.
     
  3. kkrutoy

    kkrutoy New Member

    Публикаций:
    0
    Регистрация:
    6 апр 2007
    Сообщения:
    44
    Адрес:
    Владивосток
    У мня интернета дома нет, поэтому спрошу заранее:
    там же с адресами напутано, то что в UserMode 0x0040000 - в ядре уже другое. Как преобразовать виртуальный адрес процесса в физический? Или можно через ZwRead*** функции читать?
     
  4. spencer

    spencer New Member

    Публикаций:
    0
    Регистрация:
    15 авг 2005
    Сообщения:
    277
    а wasm.ru у тебя доступен по локалке? )
     
  5. k3internal

    k3internal New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    607
    kkrutoy
    ты болен парень. Учи матчасть. Твой перехватчик вызывается в контексте процесса а не в жопе мира.
     
  6. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    kkrutoy
    Зачем?! Когда ты вызвал функцию Win32 API - ты ведь её вызвал по виртуальному адресу, а не по физическому. И возврат будет сделан тоже по виртуальному адресу. И функция-перехватчик ТОЖЕ живет в виртуальном адресном пространстве того процесса, который её вызвал.

    Можно. Особенно скучными серыми днями, когда совсем нечем заняться. Но можно и напрямую.