Какие собственные функции API Windows принимают пути к файловой системе в качестве аргументов?

#c #windows #winapi #hook #easyhook

Вопрос:

Я пытаюсь создать инструмент, который подключается к собственному API Windows и отслеживает/запрещает доступ к файловой системе различным приложениям. Я использую библиотеку easyhook. Я решил подключить только функции NTAPI более низкого уровня, потому что я нашел множество программ, которые вызывают их напрямую и полностью переходят на крючок WinAPI, который я написал ранее.

Чтобы выполнить свою функцию, моя программа перехватывает следующие функции:

 NtCreateFile
NtCreateIoCompletion
NtCreateSymbolicLinkObject
NtDeleteFile
NtOpenDirectoryObject
NtOpenFile
NtOpenIoCompletion
NtOpenSymbolicLinkObject
NtQueryAttributesFile
NtQueryFullAttributesFile
 

Раньше я думал, что это все функции, которые на самом деле принимают пути. Другие функции используют дескрипторы, созданные вышеуказанными функциями, поэтому нет необходимости подключать их. Параметр, содержащий путь, называется OBJECT_ATTRIBUTES ObjectAttributes. Тем не менее, я почти уверен, что мне не хватает некоторых функций, так как есть какая-то незахваченная активность файловой системы, которая обходит мои крючки. Знаете ли вы о каких-либо других функциях NtApi, которые принимают атрибуты POBJECT_ATTRIBUTES или какие-либо другие ссылки на файловую систему?

Я спрашиваю об этом, потому что я нашел некоторые другие, такие как NtCreateProcess и NtCreateSection, и мне действительно нужно найти их все, но я не знаю, где искать, а функции Nt очень плохо документированы. Спасибо.

Комментарии:

1. Это задание для драйверов фильтров файловой системы , а не для подключения API.

2. Это выполнимо, и я действительно не хочу покидать страну пользователей. Кажется, я нашел то, что искал: undocumented.ntinternals.net/… Я чего-то не понимаю?

3. «Я что — нибудь упускаю?» — Да. Будущее. Корпорация Майкрософт может принять решение о добавлении нового собственного API завтра, который соответствует вашим свойствам. Теперь ты играешь в догонялки. Драйвер фильтра будет продолжать работать, независимо от того, какие собственные API-интерфейсы придумает Microsoft.