Дровина пишет в ring-3

Тема в разделе "WASM.WIN32", создана пользователем volodya, 17 авг 2005.

  1. volodya

    volodya wasm.ru

    Публикаций:
    0
    Регистрация:
    22 апр 2003
    Сообщения:
    1.169
    Вопрос: на сколько возможно сделать поток внутри драйвера, который будет

    работать с памятью заданного процесса на чтение/запись? Если возможно - то как?
     
  2. Ms Rem

    Ms Rem New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2005
    Сообщения:
    1.057
    Адрес:
    С планеты "Земля"
    PsCreateSystemThread, а потом внутри потока KeStackAttachProcess и можно работать с памятью этого процесса.

    По завершении нити надо не забыть вызвать KeUnstackDetachProcess.

    И есть один трабл: надо следить за тем, чтобы процесс не завершился, иначе можно бсод словить. Для этого надо ставить калбэк с помощью PsSetCreateProcessNotifyRoutine и по завершении процесса сбрасывать какой-нибудь флаг. А в процедуре работы с памятиью процесса его проверять, либо просто задержать завершение процесса на нужное время (калбэк всегда срабатывает внутри завершаемого процесса, и пока он не отработает, процесс не завершиться).
     
  3. CARDINAL

    CARDINAL Member

    Публикаций:
    0
    Регистрация:
    23 янв 2004
    Сообщения:
    551
    Адрес:
    Moscow
    или перехватить NtTerminateProcess )
     
  4. volodya

    volodya wasm.ru

    Публикаций:
    0
    Регистрация:
    22 апр 2003
    Сообщения:
    1.169
    всем спасибо за ответы. добавлю, что страницы ring-3 процесса надо или проверять на выгруженность или читать их с IRQL = PASSIVE_LEVEL.