|
|
| Посл.отвђт | Сообщен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 |