Обход нового фроста - Тренеры снова в строю? Обсуждаем!
Доброго времени суток. Сегодня много времени потратил на изучение нового фросто, и ВНЕЗАПНО наткнулся на статью которая решит наши проблемы (Скорее всего):
Часть статьи:
__________________
Способ два, или «Не верь глазам своим»
Теперь перейдем ко второму, крайне интересному, но практически неизвестному в широких кругах способу манипуляций с содержимым виртуальной памяти. Находясь в ядре, мы всегда сможем попасть в адресное пространство любого процесса, вызвав функцию KeAttachProcess. Что она делает, я думаю, ты понимаешь. Также уверен, что тебе знакома такая фича, когда, находясь в адресном пространстве, ты можешь относительно безопасно писать данные вызовом функции ZwWriteProcessMemory, - ][ уже писал об этом. Но, увы и ах! Всякий мало-мальски нормальный антивирус обычно хукает такую опасную функцию, ибо ее использование стоит на первом месте у злых кодеров. Но теперь (и я хочу, чтобы ты прочувствовал всю значимость момента!), используя форму организации страничной памяти, можно изменять данные в адресном пространстве без записи данных; ведь надо просто подменить PTE нужного нам виртуального адреса! Здесь виртуальная память процесса останется нетронутой, но при обращении к адресу подмены менеджер памяти вернет запрашивающему те данные, которые нам нужно подсунуть! Смотрим код:
Вот в принципе и все. Если немного постараться, то можно немного сократить и усовершенствовать этот код. Столь простая, но крайне эффективная техника может легко использоваться для подмены данных в адресном пространстве процесса (сколько простора для геймчитеров!) или вызывать напрямую похуканые проактивными защитами важные системные функции.
______________________________
Прочитали? Отлично, а теперь давай-те обсуждать кто и что думает по этому поводу.
Мне кажется, что это именно то что нужно, т.к. фрост хукает ZwWriteProcessMemory и получается что это единственный найденный выход, а эти ваши "автоинжекторы" скоро скорее всего пофиксят
Чуть не забыл, ссылка на полную версию:
[Ссылки могут видеть только зарегистрированные пользователи. ] (Moder, it's DONT adv )
Re: Обход нового фроста - Тренеры снова в строю? Обсуждаем!
Цитата:
Сообщение от Fojest
Неужели никто не может разобраться в этом коде и затестить? Просто у меня нет возможности это проверить
я буду с программированием в ядре потом разбираться, но от меня какого либо слива ждать не стоит
хотя мне сейчас больше интересны некоторые компоненты директа, так что этот код может подождать, все равно кроме мазая тут не кто пока не фига не понимает и не соберет
Re: Обход нового фроста - Тренеры снова в строю? Обсуждаем!
ну перехватил "какойто антивирус или фрост" ZwWriteProcessMemory
ну и в рот ему потные ноги .. что нам мешает один из вариантов:
1. снять этот хук
2. обратится напрямую по указателю к правильной функции (если перехватили через SSDT )
3. использховать другие функции
4. откоректировать функцию которая совершила перехват и сделать в месте проверки jmp (чтобы всегда разрешала запись)
и масса других вариантов
когда вы в ядре вас может ограничить только ваша фантазия и знание системы
Последний раз редактировалось DED_MA3AY; 09.07.2012 в 01:45.
Re: Обход нового фроста - Тренеры снова в строю? Обсуждаем!
Цитата:
Сообщение от DED_MA3AY
ну перехватил "какойто антивирус или фрост" ZwWriteProcessMemory
ну и в рот ему потные ноги .. что нам мешает один из вариантов:
1. снять этот хук
2. обратится напрямую по указателю к правильной функции (если перехватили через SSDT )
3. использховать другие функции
4. откоректировать функцию которая совершила перехват и сделать в месте проверки jmp (чтобы всегда разрешала запись)
1. Нужен обход, и если этот обход сделают то в паблике его скорее всего не будет
2. Если не ошибаюсь, это нужно заинжектить dll, или ты сможешь функции PB из-вне вызывать? 0_о
3. Какие?
4. Ты её найди сначала, потом отредактируй да ещё и сохранить попробуй. Если за это отвечает драйвер, то функция в .sys файле, а IDA его хоть и открывает но сохранять она в .sys не умеет (Несколько я знаю)
Чем лучше этот способ? Да тем, что все смогут продолжать писать тренеры без проблем, если кто-то напишет шаблонную функцию с этим способом, а если ещё и закомментирует её то будет прям вообще супер (Я как бы на тебя намекаю, дедушка мазай )
Re: Обход нового фроста - Тренеры снова в строю? Обсуждаем!
Цитата:
Сообщение от Fojest
1. Нужен обход, и если этот обход сделают то в паблике его скорее всего не будет
2. Если не ошибаюсь, это нужно заинжектить dll, или ты сможешь функции PB из-вне вызывать? 0_о
3. Какие?
4. Ты её найди сначала, потом отредактируй да ещё и сохранить попробуй. Если за это отвечает драйвер, то функция в .sys файле, а IDA его хоть и открывает но сохранять она в .sys не умеет (Несколько я знаю)
Чем лучше этот способ? Да тем, что все смогут продолжать писать тренеры без проблем, если кто-то напишет шаблонную функцию с этим способом, а если ещё и закомментирует её то будет прям вообще супер (Я как бы на тебя намекаю, дедушка мазай )
я тут понимаю что ты даже не понял что скопипастил ...
ты выложил код для RING0 кернел моде (в описании кода об этом написано)
так вот в ответ на твое
1. Какой в жопу обход а нулевом кольце ...
чтобы было понятно образно в нулевом кольце ты как абсолютный диктатор .. чтото не понравилось накол виноватого и никто даже не пукнет в ответ .
2. в нулевом кольце нет инжекта длл там только драйвера + системные ДЛЛ их ты не хукнеш из юзермоде ..
3. в иде раскрой функцию ZwWriteProcessMemory и посмотри что она юзает хотя в ядре уже будет функция NtWriteProcessMemory
4. дык если функция в ядре отхучена то эт тебе покажет тотже самый кернел детективе. И что мне помешает ее отредактировать? после загрузки драйвера как ты говориш sys файла функция уже не в файле а в памяти ядра .. и IDA открывает sys но зачем мне го после этого опять сохранять в sys ? если можно самому написать свой драйвер
ПыСы чтобы до тебя дошло код который ты выложил можно заюзать только из ядра .. написав свой драйвер ( я не беру экзотические способы пропихивания своего кода в нулевое кольцо которые крайне зависят от версии винды и даже сервиспака )
Re: Обход нового фроста - Тренеры снова в строю? Обсуждаем!
Цитата:
Сообщение от DED_MA3AY
я тут понимаю что ты даже не понял что скопипастил ...
ты выложил код для RING0 кернел моде (в описании кода об этом написано)
так вот в ответ на твое
1. Какой в жопу обход а нулевом кольце ...
чтобы было понятно образно в нулевом кольце ты как абсолютный диктатор .. чтото не понравилось накол виноватого и никто даже не пукнет в ответ .
2. в нулевом кольце нет инжекта длл там только драйвера + системные ДЛЛ их ты не хукнеш из юзермоде ..
3. в иде раскрой функцию ZwWriteProcessMemory и посмотри что она юзает хотя в ядре уже будет функция NtWriteProcessMemory
4. дык если функция в ядре отхучена то эт тебе покажет тотже самый кернел детективе. И что мне помешает ее отредактировать? после загрузки драйвера как ты говориш sys файла функция уже не в файле а в памяти ядра .. и IDA открывает sys но зачем мне го после этого опять сохранять в sys ? если можно самому написать свой драйвер
ПыСы чтобы до тебя дошло код который ты выложил можно заюзать только из ядра .. написав свой драйвер ( я не беру экзотические способы пропихивания своего кода в нулевое кольцо которые крайне зависят от версии винды и даже сервиспака )
Сори за флуд в теме Вадим ты уже начал писать драйвер для 7,64 ?