Патч системного файла...

Тема в разделе "WASM.RESEARCH", создана пользователем agent007, 14 мар 2007.

  1. agent007

    agent007 New Member

    Публикаций:
    0
    Регистрация:
    3 фев 2007
    Сообщения:
    166
    Могу ли я пропатчить kernel32.dll да так чтобы потом все это дело работало? Рассуждаю примерно так, что перед патченгом надо бы остановить все потоки... И еще вопрос, если я ее пропатчу, последующие загрузки этой либы будут уже моей пропатченной, или же надо ждать ребута?
     
  2. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    да.
    нет.
    скорее всего да.
     
  3. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    для модификации файла, для которого уже открыт хендл с FILE_SHARE_READ только надо открыть файл, через ринг0 сменить права доступа к хендлу на read/write и писать столько, сколько захочется.
     
  4. agent007

    agent007 New Member

    Публикаций:
    0
    Регистрация:
    3 фев 2007
    Сообщения:
    166
    Great меня все интересует в r3... в r0 мне бы уже не потребовалось патчить ;)
     
  5. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    В ринг3 нельзя редактировать открытый файл без FILE_SHARE_WRITE.
    Единственный вариант - открыть том на запись, получить карту размещения файла на диске в кластерах и записывать кластеры напрямую
     
  6. agent007

    agent007 New Member

    Публикаций:
    0
    Регистрация:
    3 фев 2007
    Сообщения:
    166
    Great а MoveFile кто отменял?
     
  7. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    agent007
    А кто тебе позволит его перезаписать то?
    MoveFile вернет ERROR_ACCESS_DENIED.
    Максимум, что можно сделать - отложенная операция перемещения через MoveFileEx, которая будет выполнена на следующей перезагрузке.
     
  8. agent007

    agent007 New Member

    Публикаций:
    0
    Регистрация:
    3 фев 2007
    Сообщения:
    166
    ну так я оригинальный файл перемещу, а заместо его запишу свой модифицированный....
     
  9. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Повторяю еще раз, кто тебе позволит изменять как-либо этот файл? Переименование. запись, удаление и т.п. запрещено - только чтение и копирование
     
  10. asmfan

    asmfan New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2006
    Сообщения:
    1.004
    Адрес:
    Abaddon
    У меня переименовывается на xpsp2.
     
  11. agent007

    agent007 New Member

    Публикаций:
    0
    Регистрация:
    3 фев 2007
    Сообщения:
    166
    Great ну попробуй любой занятый файл переименовать (перенести) и заместо него записать любой с таким же именем...
     
  12. twgt

    twgt New Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    1.494
    А разве защита системных файлов не должна пресекать запись в кернел?
     
  13. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    agent007
    хм. переименовывается. обычно этого сделать нельзя ) странно..
     
  14. agent007

    agent007 New Member

    Публикаций:
    0
    Регистрация:
    3 фев 2007
    Сообщения:
    166
    twgt ну ее отключить как 2 пальца...
     
  15. asmfan

    asmfan New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2006
    Сообщения:
    1.004
    Адрес:
    Abaddon
    Возможно это связано с тем, что фаерволы (в частности Аутпост) отключают WFP в реестре.
     
  16. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    asmfan
    при чем тут фаерволы. у меня, например, ничего не стоит.
    аж три способа вроде есть =)
     
  17. scf37

    scf37 New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2007
    Сообщения:
    44
    вообще-то memory mapped file можно переименовывать, это же относится и к запущенным приложениям.
    Так что для замены длл:
    1. удалить kernel32.dll из dllcache
    2. переименовать kernel32.dll в kernel32.dll.old
    3. скопировать в system32 свой kernel32.dll
    4. ребут
    В случае проблем можно зайти через recovery console и вернуть старый файл