Главная страница
    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.039 c
2-1168332172
SerJaNT
2007-01-09 11:42
2007.01.28
Заменить переносы


11-1145953226
Dodfr
2006-04-25 12:20
2007.01.28
USE_NAMES do not work ?


15-1168591625
Desdechado
2007-01-12 11:47
2007.01.28
Подать в суд на суд


15-1168275480
Petr V. Abramov
2007-01-08 19:58
2007.01.28
а существует ли что-то типа DBTreeView


2-1168072050
Steep
2007-01-06 11:27
2007.01.28
ADO+MS SQL





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский