Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.01.28;
Скачать: CL | DM;

Вниз

Перехват NtOpenFile из ntdll   Найти похожие ветки 

 
Den MoroZ   (2006-09-12 23:46) [0]

Помогите! Из юнита 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 00:00) [1]

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


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

NtQueryInformationFile()?


 
Elen ©   (2006-09-13 08:29) [3]


> Ketmar ©

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


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

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


 
Elen ©   (2006-09-13 09:05) [5]


> Lamer@fools.ua ©

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


 
Lamer@fools.ua ©   (2006-09-13 09:32) [6]

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

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


 
Elen ©   (2006-09-13 09:35) [7]


> Lamer@fools.ua ©

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


 
kami ©   (2006-09-13 10:26) [8]

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


 
Ketmar ©   (2006-09-13 13:53) [9]

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

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


 
Elen ©   (2006-09-13 14:27) [10]


> Ketmar ©

Яснышко. So Sorrow


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


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


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


 
Ketmar ©   (2006-09-13 17:36) [12]

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



Страницы: 1 вся ветка

Текущий архив: 2007.01.28;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.074 c
15-1168341757
Александр Иванов
2007-01-09 14:22
2007.01.28
Как вам такое тестовое задание?


2-1168124906
koha
2007-01-07 02:08
2007.01.28
Изменение в MassageDlg надписей на русские под Delphi2006


2-1168197505
anton773
2007-01-07 22:18
2007.01.28
разобрать число


15-1168525657
*Pavel
2007-01-11 17:27
2007.01.28
Выбор серверной платформы


1-1165306590
Lovd_E
2006-12-05 11:16
2007.01.28
Текст в Stringgride