12.07.2015 Views

Взлом GSM - Xakep Online

Взлом GSM - Xakep Online

Взлом GSM - Xakep Online

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

codingАлександр Эккерт/ aleksandr-ehkkert@rambler.ru /С фильтром,пожалуйста!Азбука руткит-кодера: фильтры в ядре WindowsСкажи мне, часто ли бессонными ночами ты мечтал накодить программу,которая бы без ведома пользователя тихонечко отфильтровывала сетевойтрафик? Или обращения к файловой системе? И при этом модифицировалабы файлы на лету? Или подменяла веб-страницы?егодня мы поговорим об основополагающей руткит-техникеC — фильтрах в режиме ядра Windows. Тема эта очень захватывающаяи при прямых руках может принести неслыханныедивиденды. Тебе покорятся и невидимая модификация файловна диске, и подмена содержимого веб-страниц и редирект сетевоготрафика, в общем — полный список!Немного теории, или «устройство» в WindowsЧто такое объект «устройство»? В OC Windows диспетчер ввода-выводаопределяет «устройство» (\Device\) для представлениятого физического, логического или виртуального устройства, чей драйвербыл загружен в систему. Согласно существующим правилам, каждый драйвердолжен создавать объект «устройство» для того физического (виртуального)устройства, которым он управляет. Формат объекта «устройство» определяетсяструктурой DEVICE_OBJECT, описание которой ты без труда найдешь в DDK.Если быть очень кратким, то объекты устройства в ядре Windows могут быть:• Physically Device Object (PDO) — представляет собой какое-то физическоеустройство в системе;• Functional Device Object (FDO) — реализует всю функциональную нагрузкукакого-то устройства;096• Filtering Device Object (FiDO) — объект устройства, создаваемый фильтрдрайвером.Из вышеописанного следует, что утверждение «мышь имеет драйвер»— неоднозначно. Открою страшную тайну — мышью PS/2 управляет неодин драйвер, а целых три: mouclass.sys i8042.sys ACPI.sys. И так совсеми устройствами в Windows! Рассказывать про организацию стека устройствв ядре Windows мы сейчас не будем — уж больно обширная тема,да и в интернете информации можно добыть предостаточно (например,поищи книгу Уолтера Оуни «Programming the Microsoft Windows DriverModel»). В программировании драйверов под Win есть интересная особенность— можно написать драйвер-фильтр, который реально встроитьв указанную цепочку драйверов и получить неограниченный контрольнад любым устройством в Windows, будь то клавиатура, файловая системаили сетевая карта!IRP-пакетыПодсистема ввода-вывода в ядре Windows управляется путем пересылкимежду устройствами своеобразных пакетов — так называемых IRP-пакетов(I/O Request Packet).При вызове какого-либо системного сервиса (например, чтении или за-xàêåð 07 /115/ 08

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!