Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Перехват NtOpenFile из ntdll [D7, WinXP]


Den MoroZ ©   (2006-09-12 23:46:00) 

Помогите! Из юнита Native.pas выдрал функцию:
NtOpenFile: Function(FileHandle: PHANDLE; DesiredAccess: ACCESS_MASK; ObjectAttributes: POBJECT_ATTRIBUTES; IoStatusBlock: PIO_STATUS_BLOCK; ShareAccess: ULONG; OpenOptions: ULONG): NTSTATUS; stdcall;
Подскажите как можно по FileHandle опредилить имя файла и как можно при определённом имени файла запретить доступ к нему?
(Пишу систему защиты данных)


Ketmar   (2006-09-13 17:36:00) [1]

> [11] Игорь Шевченко ©   (13.09.06 16:41)
ну да. что Zw, что Nt -- один фиг, в принципе (да, я в курсе реальной формы Земли %-).


Игорь Шевченко   (2006-09-13 16:41:00) [2]


> Подскажите как можно по FileHandle опредилить имя файла


NtQueryObject (...., ObjectNameInformation, ...)


Elen   (2006-09-13 14:27:00) [3]


> Ketmar ©

Яснышко. So Sorrow


Ketmar   (2006-09-13 13:53:00) [4]

> [2] Чапаев ©   (13.09.06 07:35)
ZwQueryObject(). но оно криво работает для "чужих" процессов. впрочем, для файлов может и будет всё нормально.

> [3] Elen ©   (13.09.06 08:29)
см. выше. и -- не надо писать драйвера на Delphi. проблем больше, нежели удобств. хотя, если сильно охота помучиться -- HolyFather сделал dddk. %-)


kami   (2006-09-13 10:26:00) [5]

На WASM.ru были статьи от MS-REM по поводу перехвата WinAPI. Для примера там рассматривался как раз доступ к файлам. Только вот бралась не NTOpenFile, а ZwQueryDirectoryFile из ntdll.dll, которая вроде(не помню, давно читал) является базовой по отношению ко всем ф-ям работы с файлами.


Elen   (2006-09-13 09:35:00) [6]


> Lamer@fools.ua ©

Ну а как насчет служб?


Lamer@fools.ua   (2006-09-13 09:32:00) [7]

>> Elen ©   (13.09.06 09:05) [5]

> Не верю что на Делфе это нельзя
Вера — это сложно. Тут ничего возразить нельзя. Если же опираться не на веру, а на здравый смысл :-), то вопрос: смысл писАть на Delphi, если:
* нужно использовать определённую старую версию Delphi (по-моему, вторую), чтобы получать OBJ-файлы совместимые с линкером от Microsoft, которые умеет линковать файлы необходимого для драйверов формата;
* нужно использовать сам этот линкер от MS;
* нужно руками переводить хедеры (*.h) из DDK из С/С++ в Object Pascal (хотя, возможно, у джедаев кое-что есть...)?


Elen   (2006-09-13 09:05:00) [8]


> Lamer@fools.ua ©

И все таки... Не верю что на Делфе это нельзя


Lamer@fools.ua   (2006-09-13 09:00:00) [9]

Написание драйверов на Delphi — это то же, что ректальный способ удаления гланд.


Elen   (2006-09-13 08:29:00) [10]


> Ketmar ©

А служба не подойдет? И кстати подскажи ссылочки где можно много почитать о написании дров на Делфи


Чапаев   (2006-09-13 07:35:00) [11]

NtQueryInformationFile()?


Ketmar   (2006-09-13 00:00:00) [12]

правильно -- через драйвер. копать в направлении ObReferenceObjectByHandle()/ObQueryNameString(). сразу говорю -- если драйвера не писал -- забудь. возьми готовый из того же hxdef, например.


Наверх

Титульная страница Поиск, карта сайта Написать письмо