Статья первая, начало...

Сразу скажу, что это моя первая статья, так что строго не судите.

Список инструментов которые я использовал:

1) VirtualBox 3.1.2 скачать можно вот отсюда http://www.virtualbox.org/wiki/Downloads

2) Windows XP sp2 образ честно найденный на сервере. Сервис пак должен быть выше 1 потом расскажу почему.

3) WinDDK 7600.16385.0 самое главное наверно, скачать от сюда, старая ссылка не работает так что от сюда http://club.shelek.ru/viewfiles.php?id=2

4) DbgView 4.76 вот отсюда http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx

5) Kernel-Mode Driver Manager 1.3 by Four-F взято с wasm.ru

6) Notepad++ 5.6.6 http://sourceforge.net/projects/notepad-plus/

Вроде как все описал.

Будем писать драйвер-фильтр файловой системы, и так начнем.

Устанавливаем в виртуальную машину Windows XP, затем ставим туда WDK, устанавливаем дополнения гостевой ос (кнопка Host+D или по умолчанию правый ctrl+d), после этого машинка будет быстрее работать и поддерживать общие папки что очень удобно. Windows XP должен быть не ниже SP2 так как с него началась поддержка minifilter файловой системы.

Устанавливаем Notepad++, хотя можно обойтись простым блокнотом, но с ним намного удобнее, подсветка синтаксиса, нумеровка строк.

Создаем папку для будущего творения, я назвал её Filter, на диске C:

Туда копируем все файлы из примера wdk, nullfilter (C:\WinDDK\7600.16385.0\src\filesys\miniFilter\nullFilter).

Копируем KmdManager, DbgView и C:\WinDDK\7600.16385.0\bin\setenv.bat в нашу папку,

теперь создадим ярлык с такими параметрами

C:\WINDOWS\system32\cmd.exe /k C:\Filter\setenv.bat C:\WinDDK\7600.16385.0\ chk x86 WXP, он нам понадобиться для запуска построения драйвера.

Откроем файл setenv.bat и изменим его таким образом, перейдем в конец файла и увидим

...

set NTDBGFILES_PRIVATE=1

if Not Exist %_NTTREE% md %_NTTREE%

if Not Exist %_NTTREE%\build_logs md %_NTTREE%\build_logs

if Not Exist %OBJECT_ROOT% md %OBJECT_ROOT%

:exit

exit /b 0

превратим это дело в такое:

...

set NTDBGFILES_PRIVATE=1

if Not Exist %_NTTREE% md %_NTTREE%

if Not Exist %_NTTREE%\build_logs md %_NTTREE%\build_logs

if Not Exist %OBJECT_ROOT% md %OBJECT_ROOT%

:exit

cd c:\Filter

build

xcopy .\objchk_wxp_x86\i386\nullfilter.sys .\ /y

exit /b 0

мы добавили три строчки

первая cd c:\Filter заходим в папку где находятся все наши файлы

вторая build построение драйвера

третья xcopy ... копирование нашего драйвера в основную папку для удобства и подтверждение на перезапись.

Теперь когда мы запустим наш ярлык то произойдет настройка, постройка и копирование.

Когда драйвер построится мы увидим его в папке c:\Filter\ нужно теперь установить его в Windows и запустить.

Для этого делаем следующее нажимаем правой кнопкой на файл nullFilter.inf и нажимаем Установить, произойдет копирование файлов и во общем то установка.

Запускаем программу KmdManager.exe выбираем наш драйвер C:\Filter\nullFilter.sys и с крестя пальцы нажимаем Run, если операция успешно завершена, то наш драйвер установлен и запущен и работает в данный момент, теперь нажмем Stop и попробуем сделать чтобы драйвер показывал что он что то делает, в файл nullFilter.c добавим в каждую функцию перед return ... DbgPrint("Null Filter, Function"); в место "Function" поставим имя функции в которую добавляем.

Теперь сохраняем, компилируем, устанавливаем и запускаем DbgView и наш драйвер, должно получиться что то подобное.

Загрузить используемые файлы.