![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перехват 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, например.