Re[7]: перехват открытия файла в определённой директории
От: okman Беларусь https://searchinform.ru/
Дата: 30.04.13 16:35
Оценка:
Здравствуйте, x64, Вы писали:

O>>За основу берется сэмпл sfilter из WDK.


x64>Хорошо всё написал.

x64>Только почему sfilter?

Только из-за необходимости запрашивать altitude.
В остальном — да, конечно же minifilters проще.
Re[9]: перехват открытия файла в определённой директории
От: squid_etc  
Дата: 06.05.13 11:02
Оценка:
Здравствуйте, x64, Вы писали:

x64>Для начала — nullFilter, этот вообще ничего не делает полезного.

x64>Затем passThrough — этот тоже ничего не делает, но зато есть колбеки.
x64>Потом переходи к minispy — тут уже и работа с именами, и взаимодействие с приложением.

я установил WDK 6000 и нашел там папки с фильтрами
C:\WinDDK\6000\src\filesys\miniFilter

ВОПРОС1: Как мне сделать с него правильный солюшен в 2005, 2008 студии?
я, например, нашел Minispy File System Minifilter Driver, но 2012 студия — это нечто...

ВОПРОС2: WDK 6000 с какой студией должен работать хорошо? на какую ориентироваться "правильно"?

как я понял Altitude — это как GUID для минифильтра, чтобы его можно было использовать под Виндой, и Винда знала какой приоритет у моего фильтра.
я нашел форму для заявки на Altitude.

ВОПРОС3: чтобы его получить(Altitude) — просто достаточно заполнить, указанную выше форму — и мне пришлют Altitude(соотв GUID)? или нужно предпринимать еще какие-то действия?

в nullFilter.inf я нашел код
;
; Registry Modifications
;

[NullFilter.AddRegistry]
HKR,"Instances","DefaultInstance",0x00000000,%DefaultInstance%
HKR,"Instances\"%Instance1.Name%,"Altitude",0x00000000,%Instance1.Altitude%    // самое интересное
HKR,"Instances\"%Instance1.Name%,"Flags",0x00010001,%Instance1.Flags%

ВОПРОС4: Altitude просто прописывается в реестре и этого достаточно?
Re[9]: перехват открытия файла в определённой директории
От: squid_etc  
Дата: 06.05.13 21:44
Оценка:
Здравствуйте, x64, Вы писали:

x64>Потом переходи к minispy — тут уже и работа с именами, и взаимодействие с приложением.


Доброго времени суток!
У меня получилось собрать пример Minispy File System Minifilter Driver
для этого я
1) поставил скачанную 2012 студию
2) поставил Windows Driver Kit 8
3) поставил Windows Driver Frameworks (WDF) Co-Installers

как сказано в мануале примера Minispy File System Minifilter Driver
после сборки для запуска нужно установить "посадить" в одну папку sys и inf файлы. После этого "In Windows Explorer, right-click filtername.inf, and click Install." — инсталить inf файл.
Однако , когда я скопировал к "Minispy File System Minifilter Driver\C++\Win7Debug\Package\minispy.sys" еще и minispy.inf(с корня солюшена) инсталятор меня попросил положить рядом еще minispy.exe.
ВОПРОС1: действительно надо ложить и minispy.exe рядом, если в мануале этого не написано? я что-то сделал не верно?

студия при сборке ругалась на версию, поэтому пришлось еще в minispy.inf писать так:
;;DriverVer   = 06/16/2007,1.0.0.0
DriverVer   = 4/21/2009,1.0.0.0

ВОПРОС2: что это за мансы с датами? (и версиями соответсвенно)...

в мануале еще сказано что процесс инстала переместит мой драйвер в папку "C:\Windows\System32\drivers", однако драйвер туда не был перемещен?
ВОПРОС3: руками переносить надо? и если да — то куда: прямо в корень?

Active Solution configuration стоит в Win 7 Debug
Active Solution platform стоит в Win32
при этом на старте(по F5) выскакивает мессадж

как я понял и проверил во вспомогательной документации
Deploying a Driver to a Test Computer — в солюшене с примером все настроено на тестовую подпись Test Sign

ВОПРОС4: что с подписями для девелоперской машины в дебажном режиме еще нужно настраивать, чтобы запустить под дебагом пример и увидеть вожделенные троссеры в Output-е?

Спасибо!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.