![]() |
ядерная заглушка
для чего: порой встречаются системы защиты, работающие в режиме ядра. т.е. они перехватывают ряд ядерных функций (КИС, КАВ, разные античиты и тд), в результате чего мы, например, не можем выполнить некоторые действия. например сделать инжект в процесс и тд и тп. так вот. предлагаю вашему вниманию драйвер, суть его работы заключена в том, что при загрузке он проверяет наличие таких перехватов и если находит, то перехватывает самого перехватчика, таким образом работая как заглушка. драйвер защиты думает что он перехватил что надо и все нормально, но в данный момент его обработчик сам перехвачен заглушкой которая передает управление оригинальным функциям.
естественно в этом случае мы можем творить в режиме пользователя что угодно. данная версия обезвреживает (не повреждая систему защиты): NtOpenProcess <---> OpenProcess NtProtectVirtualMemory <---> VirtualProtect NtWriteVirtualMemory <---> WriteProcessMemory NtCreateThread <---> CreateRemoteThread NtAllocateVirtualMemory <---> VirtualAllocEx те после запуска драйвера мы по идее можем инжектить что угодно и куда угодно. НУЖНО ПРОВЕРИТЬ. если у кого есть возможность, с проактивными антивирами (разными) и тд, затестьте и отпишитесь. схема работы- загрузить драйвер с помощью NtLoadDriver, дальше просто попробовать инжектнуться куданибудь. НО! не выгружайте драйвер ранее того как будет выгружена система защиты. иначе бсод. для простоты добавил сразу с лоадером. запускаете ехе, ждете месаг бокса и дальше пускаете свою прогу с инжектом. самое элементарное, кто в кс гамит - запустите маяк, затем лоадер и любой чит, например senses fail таргет билды (оч важно, исходите из установленной ОС) все они под х86 (не 64битные) Windows 7: http://www.sendspace.com/file/y3zprp Windows XP: http://www.sendspace.com/file/5az3wg |
ОгО! Сейчас проверю!
|
Первый запуск норм. На втором бсод.... Сейчас включу запись ошибок и повторю. (антивиря нет)
|
винда как указано? что стоит (антивир или гуард какой)
зы ОК надо давить только тада када сделаешь все операции. просто если есть другой драйвер, который перехватывает ядро, то наш - перехватывает его обработчики. и если нас выгрузить (нажав ОК) то с его обработчиков проц будет улетать в ебеня. собсна смысл бсода. ззы и желательно проверить таблицу sdt какаимнить rku или avz - есть ли какие хуки зззы весь дебаг принт я у него вырезал дабы алгоритм не палить, он тока выводит када загрузился и када выгрузился |
Цитата:
Цитата:
Цитата:
|
обновил первый пост - и 7 и хп
|
sn0w, может посоветуешь, что почитать по разработке драйверов?
|
Цитата:
Но она так же бсодит по тем же адресам. Цитата:
|
Хоглунда (rootkit.com) , васм.ру, руткитс.су... Солдатов ВП - программирование драйверов Windows. но в целом эта инфа более складывается из исследования и отдельных людей. те это какбы мозговой торрент чтоли) мне в этом деле например помогал ранее довольно известный тут человек, kez)
да и кстати грейта!) |
2 M_script_:
https://forum.antichat.ru/thread91797.html |
Цитата:
|
Цитата:
И спасибо за разъяснение =) |
Цитата:
зы я на самом деле делал под myAC (античит такой) и все норм работает, но как оказалось - довольно перспективная тема и в отношении других средств защиты, поэтому и написал что отпосьте есть ли какая система защиты и проходит ли тема) |
sn0w, как всегда на высоте!
|
эм каким методом снимаешь хуки?
Восстановление SDT или сплайсинг хуков антивиря с последующей передачей управления на оригинальные адреса? |
хуки не снимаются, вслучае если я вижу что в сдт энтри не тот адрес, те адрес стороннего обработчика, я просто перехожу к нему и пишу на начале тела джамп к себе (с созданием трамплина пролога и тд). у себя на этот момент я имею адекватные Nt адреса, куда и передается упраление.
|
Мдауж. За сброс WP бита Great бы
Цитата:
Код:
// функция установки и снятия перехватаА вообще тут даже запрет прерываний не поможет. Если ты вписываешь JMP XX XX XX XX то как не крути, нужно записать 5 байт. При атомарном доступе максимум 4. Оставшийся байт ты можеш не успеть записать если второе ядро успеет попасть на эту функцию. Маловероятное событие, но всё же. |
да оно и так бсодит.
хп сп2 + касперский. могу и минидамп залить если надо. Код:
******************************************************************************* |
Вещь безусловно роскошная (на первый взгляд), но можно ли уточнить один вопрос, этот метод внедряется в систему (не важно каким способом) полностью без палева какой-либо проактивной защиты, или по тому-же принципу что и руткит? (то есть руткита словит проактивка, но если разрешить ему все действия, то его уже ничто не остановит, но в самом начале он запалится)
|
Цитата:
|
2 Nightmarе судя по тому что драйвер прописывается в системе по обычному, в SYSTEM\CurrentControlSet\Services\jammer то палится любыми проактивками.
|
Цитата:
|
DSOD'ит пострашному вируалка WIXP SP2 чистая
|
так она не должна быть чистой))
|
Цитата:
|
2 Nightmarе я ж написал, что идет простое добавление записи в реестр. Никаких хитростей нет. Если нужны беспаливные методы, то реверси руткиты
|
Цитата:
|
Цитата:
ща на 7 попробую с кисом. |
Цитата:
|
Кстати вообще когда-то была идея по изменению кода, которая могла заменять до 4 килобайт кода сразу и без разницы скольки ядерная система была. Без запрета прерываний и тому подобных вещей. Но что-то руки не дошли попробовать реализовать. А идея такая:
1) выделяешь себе одну страницу не выгружаемой памяти (4096 байт) 2) в неё копируешь страницу памяти в которой нужно сделать изменения 3) в своей копии ты делаешь изменения. 4) для своей копии ты получаешь адрес физической страницы закрепленной за ней. 5) в PTE подменяешь адрес физической страницы для виртуальной страницы в которой нужно было сделать изменения. И заменяш этот адрес на свою физ страницу. Таким образом не трогая виртуальную страницу, ты просто подменяешь для неё физическую. И это будет мгновенно, но должно быть условие: код подменяемой виртуальной страницы не должен выполняться в момент подмены. |
| Время: 09:50 |