Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2007.01.28;
Скачать: [xml.tar.bz2];

Вниз

Перехват 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 вся ветка

Форум: "WinAPI";
Текущий архив: 2007.01.28;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.041 c
2-1168509042
D@Nger
2007-01-11 12:50
2007.01.28
Колесико мышки


2-1168432358
sapsi
2007-01-10 15:32
2007.01.28
Компонент для автоматического изменения размера формы


8-1149166922
h8394E
2006-06-01 17:02
2007.01.28
IDirectDrawSurface.Blt (Подскажите флаги)


15-1168009247
Chort
2007-01-05 18:00
2007.01.28
Флешкa


2-1168759824
Garacio
2007-01-14 10:30
2007.01.28
запись в один .ini состояния MainForm и Form2





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский