Сплайсинг ZwTerminateProcess

Тема в разделе "WASM.NT.KERNEL", создана пользователем shinigami1, 8 апр 2010.

  1. d2k9

    d2k9 Алексей

    Публикаций:
    0
    Регистрация:
    14 сен 2008
    Сообщения:
    325
    shinigami1
    Читайте туторы - рано вы в ядро сплайсить полезли.
    Сотфайс на 7ке не работает.
     
  2. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.546
    Адрес:
    Russia
    shinigami1
    Зачем вам сайс?
    Юзайте WinDBG. Винду в режим отладки переводите и по COM-порту отлаживайте.
     
  3. shinigami1

    shinigami1 New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2010
    Сообщения:
    22
    d2k9, у меня не семёрка, а XP sp2
     
  4. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    shinigami1
    Сиську поставьте, виндбг вам не нужен http://cracklab.ru/download.php?action=get&n=ODU1
     
  5. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    отладчиком воспользоваться религия не позволяет?
     
  6. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    зато работает в VMWare, этого достаточно
     
  7. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Я буду долго бить ногами за аппаратное отключение CR0.WP и уж тем более за запрет прерываний.
    Это совершенно некорректно, и мало того, что может вызвать бсод (см. пост клерка #2), так еще и попросту может перетереть кэш файловой системы, если будете таким макаром писать в спроецированные виды секций файлов.

    Ну что за пипец, когда один дурак написал неправильный код, а другие подхватили это, читая его статьи :dntknw:

    Повторяю в тыщапицотый раз, СБРАСЫВАТЬ CR0.WP НЕКОРРЕКТНО!
     
  8. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Great
    Не согласен с вами ;)
     
  9. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.546
    Адрес:
    Russia
    Clerk
    Грит верно пишет. Это все когда-то, с горем пополам, работало в одноядерных процах, на виндовых системах. Сейчас этот код уже не торт.
     
  10. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    TermoSINteZ
    Грейт предлагает промапить нужную страницу есчо раз и в неё писать, либо разрешить запись в целевую страницу. Проблема в подкачке страниц, в остальном не имеет значения в какую из отображённых страниц производится запись(без учёта защиты страниц). Если обратится к целевой странице, после чего сразу замаскировать прерывания на текущем камне, то эта манипуляция полностью безопасна. Темболее что кодосекции ядра не выгружаемые.
     
  11. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.546
    Адрес:
    Russia
    Clerk
    Вот вы замаскировали на текущем камне, прерывания, а если там два? Будете второе маскировать? Или будете приоритеты выкручивать и привязывать потоки к процессорам\ядрам?
    А теперь посмотрите код, который привели тут. Который уже, наверно, каждый второй юзает, и тестирует на однопроцессорной варе, и радуется жизнью. Пока не огребет проблем с реальными системами которые нынче распространяются все сильнее и масштабнее.
    Грустно.
     
  12. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    TermoSINteZ
    Для чего ?
    Обращение к памяти на текущем процессоре происходит, остальные не мешают.
     
  13. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Вообще я имел в виду ситуации, когда запись производится в ЮЗЕРМОДНЫЕ виды секций файлов.
    Ведь находятся уникумы, которые и там юзают тот же код (вместо ZwProtectVirtualMemory).

    Да и даже для ядерных страниц рекомендуется использовать перемапирование через MDL. Во избежание потом "бсодов из ниоткуда" и прочих вещей.
     
  14. shinigami1

    shinigami1 New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2010
    Сообщения:
    22
    переделаю через MDL
     
  15. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Обработчик исключений __try/__except, кстати, лишний. Все равно при записи в АП ядра исключения у тебя не будет. Либо все будет ок, либо бсод ATTEMPTED_WRITE_TO_READONLY_MEMORY, либо бсод PAGE_FAULT_IN_NONPAGED_AREA.
     
  16. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Great
    Вот как видно некоторые неправильно понимают. TermoSINteZ авер, и как всякий авер:
    1. Уровень знаний не достаточный(иначе не былбы авером по определению).
    2. Соответственно решения тривиальны и за канчиваются на мсдн. Ресерч, полуприватные сурцы и пр. - они далеки от этого.
    3. Личное мировозрение возведено в идеал, всё то, с чем они не согласны не тру и не должно применяться.
    TermoSINteZ
    Возникла бредовая мысль - ведь экспорт достаточно легко контролировать, а непосредственно железячные вещи проблемно - ведь в ваш прот будут писать, безо всякого внешнего функционала, негодуйте :P
     
  17. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.546
    Адрес:
    Russia
    Clerk
    Ну если вы так хотите, я вам скажу
    1) Достаточный уровень для кого ? Я не всеведущ, я лишь искушен (С) Мефистофель.
    2) Хех, скажете код со бросом CR0.WP это решение из MSDN. Нет? Тогда вы сами себе противоречите.
    3) С чего вы взяли? Мне кажется это вы кипятком ссыте, как увидите живого авера. Будьте проще. Иначе сами попадете в свою же глупость.

    Мой прот? Вы о чем?

    Да и, если хотите обсудить мою личнось, создавайте тему на WASM.SITE возьмем мнения, обжалуем, обсудим, не проблема. Но в этом топике флейма больше не будет (а я как вижу, вы любитель пофлеймить). Я предупредил.
    Кстати я к вам, как и ко всем другим пользователям форуме, отношусь нейтрально. Даже как-то подсказки давал, помнится.
    Если будет что-то еще по теме "Сплайсинг ZwTerminateProcess" - прошу.
     
  18. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    TermoSINteZ
    По мойму флудите тут вы, не поймите неправильно, изначально я утверждал что связка ACCESS_PAGE/CLEAR_IF/CLEAR_WP/ATOMIC_WRITE_PAGE абсолютно корректна и стабильна для ядра, хоть милиард раз вызывайте сбоя не будет. Вы же начали утверждать непонятно что.
     
  19. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.546
    Адрес:
    Russia
    Clerk
    Связка стабильна в данном случае, но есть случаи когда она ни разу не стабильна. И я как раз говорил, про общую ситуацию. Если вы не знаете таких случаев, это еще ни о чем не говорит. Такие ситуации бывают когда идет сброс IF флага (не обязательно для того, чтоб потом сбросить WP, возможно для целей, чтобы никто не прервал). Так вот я видел уже подобные коды. И они как правило в более чем 50 процентов случаев, бсодили на момент переключения потоков, когда второе ядро начинало исполнять код. Да, ситуация там была не только в этом, там был испорчен\затерт TRAP фрейм, но суть не в этом, а в том, что cli не дает гарантии. Меньше тестируйте гуан код на одноядерных машинах.
    Да и не путайте флейм с флудом.
     
  20. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    TermoSINteZ
    IF сбрасывается именно для того, чтобы никто не прервал при отключенной защите страниц.
    Пока не будет вызван планировщик(HalEndSystemInterrupt()) поток не будет прерван и процессор отдан иному потоку. Это никогда не произойдёт, так как все прерывания замаскированы(IF = 0).
    Любой мой код исполняется на двуядерной машине.