Модификация кода Ring3 из Ring0

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

  1. Slav

    Slav New Member

    Публикаций:
    0
    Регистрация:
    8 мар 2005
    Сообщения:
    6
    Существует ли способ модификации исполняемого кода приложения Ring3 из Ring0.

    Судя по тому, что тот же Softice очень даже благополучно ставит, где попало точки останова, всё реально. Хотелось бы модифицировать не 1-2 байта кода, а что-то около 4 Кб. Если кто-то сталкивался, буду признателен даже за обобщённый алгоритм.
     
  2. ProgramMan

    ProgramMan New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2004
    Сообщения:
    263
    1)сбрасываем в сr0 флаг запрешяющий запись в r3, примерно так:

    mov eax,cr0

    push eax

    and eax,0fffEffffh

    mov cr0,eax

    2)пишем данные по адресу... Ж)
     
  3. CARDINAL

    CARDINAL Member

    Публикаций:
    0
    Регистрация:
    23 янв 2004
    Сообщения:
    551
    Адрес:
    Moscow
    ProgramMan

    Сказки не рассказывай. Лучше читай мануалы папы-интела. Когда бит WP сбрасывается ? Когда модифицируются страницы со сброшеным битом U, то есть системные, имеющие аттрибут только чтение. А к стрницам с битом U можно лазить без всяких подобных извратов.



    Slav

    так что пиши в 1-2й гиг без проблем, сам знаешь каких
     
  4. ProgramMan

    ProgramMan New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2004
    Сообщения:
    263
    CARDINAL, а ты поробуй. Лично проверял(драйвер модифицировал кое какие dll-ки)

    Inhibits supervisor-level procedures from writing into

    user-level read-only pages when set; allows supervisor-level procedures to write into

    user-level read-only pages when clear. This flag facilitates implementation of the copyon-

    write method of creating a new process (forking) used by operating systems such as

    UNIX*.
     
  5. CARDINAL

    CARDINAL Member

    Публикаций:
    0
    Регистрация:
    23 янв 2004
    Сообщения:
    551
    Адрес:
    Moscow
    ProgramMan

    попробовать что ???? Друг, если б я не знал этого, то соотвтестсвенно не писал бы об этом. Повторяю ещё раз, для модификации пользовательских страниц не требуется сброс бита WP.А по части твоего поста, не в обиду, но, на заьоре тоже кое что написано, а реально там дрова.. ;)
     
  6. je_

    je_ New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2004
    Сообщения:
    143
    сброс WP флага поможет писать c Ring0 в user_read_only page,

    не вызвав исключения;

    если page_is_writeble, то незачем WP сбрасывать;



    WP в w9x он итак сброшен, в W2K-XP сбросывать его - хулиганство;



    Культурно надо так, как делает WriteProcessMemory;

    потрейсуйте разок..
     
  7. Slav

    Slav New Member

    Публикаций:
    0
    Регистрация:
    8 мар 2005
    Сообщения:
    6
    Спасибо! Всё вышеописанное прекрасно вписалось. Благодарю!