Драйвера для Сетевого Адаптера Windows 7
Здравствуйте, уважаемые хабраюзеры!
Интересовались ли Вы когда-нибудь как работает снифер и что он из себя представляет? Или как Ваш любимый фаервол защищает Вас от троянов и прочей гадости на сетевом уровне? Да и вообще, как он работает? Я уверен, что Вы задавали себе такого рода вопросы, но все же, если нет, то я от части Вам про это расскажу. Начиная с этой статьи мы будем постепенно осваивать написание своего сниферо-подобного драйвера. Сегодня мы рассмотрим некоторые общие положения, которые нам будут необходимы для понимая всего того, что будет происходить в последующих статьях. Перед прочтением этой статьи, дабы у Вас началась складываться более или менее ясная картина, я рекомендую Вам прочтение прошлого топика Краткий обзор драйверов спецификации NDIS
Всем кому это интересно прошу под кат.
Сразу скажу, что статья ориентирована на пользовотелей, которые слабо знакомы с данной темой, поэтому буду стараться излагать подробно некотрые вещи. Ну что ж, приступим.
Что нам потребуется и с чего начать?
На многих форумах очень часто можно увидеть вопросы такого садержания: «Я начинающий программист, хочу писать драйвера, но не знаю как. С чего мне начать?» Поэтому, пытаясь описывать все последовательно я счел нужным рассказать что нам потребуется.Если вы решили заняться написанием драйверов, будь то обычные драйвера или будь они сетевыми Вам обязательно потребуется скачать WDK-Windows Driver Kits (он же NT DDK). Установив это добро на свою рабочую лошадку Вы станете вооружены для написания своего драйвера. Вместе с WDK идет своя документация, заголовочники, либы и примеры (они то нам и потребуются, став скелетом нашего будующего дрйвера). Работая в Visual Studio вы также можете скачать плагин для VS под названием Visual DDK. Это интеграционное средство поможет Вам в написании (и сборке) драйверов непосредственно из Visual Studio. Здесь Вы сможете ознакомиться с кратким хелпом по использованию этого средства. Хочу подчеркнуть, что установка Visual DDK для работы с драйверами из студии вовсе не обязательна, вы можете писать и собирать свои драйверы в VS и без этого средства! Это всего лишь плагин.
Мы будем рассматривать пример промежуточного драйвера из WDK и модифицируем его. Почему именно промежуточный? Тем, кто ознакомился с предыдущей статьёй или просто сведом в спецификации NDIS известно, что промежуточный сетевой драйвер объединяет в себе поведение как драйверов протоколов так и минипорт-драйверов, являясь прослойкой между ними. Таким образом на этом примере можно охватить хотя бы частично все типы драйверов NDIS.