Статья первая, начало...
Сразу скажу, что это моя первая статья, так что строго не судите.
Список инструментов которые я использовал:
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 и наш драйвер, должно получиться что то подобное.
Загрузить используемые файлы.