· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› Драйвер контроля доступа

Посл.отвђт Сообщенiе


Дата: Дек 18, 2003 11:50:38

Я тут пишу драйверок, он просто подменяет системные сервисы ядра.
Так вот, мне нужно подменить всего 2 функции:
     ZwCreateFile()
     ZwOpenFile()



С функцией ZwCreateFile() прошло все легко. А вот с ZwOpenFile у меня небольшая проблема. По ней у меня собственно и вопрос:
я делаю так, - в своем обработчике принимаю все параметры, которые предназначены для функции ZwOpenFile(), проверяю имя файла, оно содержится в одном из параметров функции - структуре ObjectAttributes->ObjectName,
если оно \??\c:\myfile.dat, то что-то делаю, иначе передаю через стек параметры и вызываю оригинальный обработчик.
Так вот, для ZwCreateFile() такая проверка работала, а для ZwOpenFile() почему-то нет.
Мне кажется, что причиной этому может быть то, что в поле ObjectName передается только имя файла без пути, а путь по идее указан в той же структуре в поле RootDirectory. Но как понимать, что тип у этого поля HANDLE? Тут же должен путь находится?!

Хотелось бы услышать возможные идеи по решению этой проблемы. Наверняка это уже кто-нибудь делал.
Заранее спасибо.


Дата: Дек 18, 2003 17:57:19

[ :nike Но как понимать, что тип у этого поля HANDLE? Тут же должен путь находится?! ]

Это именно хендл объекта "каталог". Попробуй
ZwQueryObject,ObjectAttributes->RootDirectory,ObjectBasicInformation..
ZwQueryObject,ObjectAttributes->RootDirectory,ObjectNameInformation..

И почитай ДДК или Неббета про всякие там ZwOpenDirectoryObject, ZwQueryObject и т.п.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.096