![]() |
|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]()
|
|
| FF2 |
|
|||
|
Новичок Профиль Группа: Awaiting Authorisation Сообщений: 8 Регистрация: 27.5.2009 Репутация: нет Всего: нет |
Привет всем. У меня возникла проблема. Думал, как реализовать, да ничего не вышло.
Мне нужно, чтобы когда юзео открывал, т.е обращался к файлу (к любому в систете, хоть видеофайл, хоть документ) - программа перехватывала открытие этого файла, потом записала его имя и полный путь до него в ListBox, а затем просто закрыла этот файл. Как можно это реализовать? Неужели для этого надо писать драйвер? Помогите, чем можете. |
|||
|
||||
| Riply |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Комодератор Сообщений: 572 Регистрация: 27.3.2007 Где: St. Petersburg Репутация: 21 Всего: 32 |
Можно попробовать перехват API |
|||
|
||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 14 Всего: 58 |
Например CreateProcess. Вот, что нашел в интернете:
Это сообщение отредактировал(а) Keeper89 - 27.5.2009, 23:42 |
|||
|
||||
| FF2 |
|
|||
|
Новичок Профиль Группа: Awaiting Authorisation Сообщений: 8 Регистрация: 27.5.2009 Репутация: нет Всего: нет |
По пункту 1. Как мне получить доступ к журналу безопасности?
По пункту 2. Про FindWindow понятно. А вот как установить хук на CreateProcess непонятно( По пункту 3. Идеальный вариант для меня - написание драйвера, вот только я в этом не профи. Может поможете реализовать? За мной не заржавеет. Riply, не могли бы вы написать об этом поподробнее. Уж очень мне надо реализовать задачу описанную мной в первом посте. Схема действия моей программы должна быть такова: 1) Юзер обращается к файлу. 2) Драйвер фиксирует это и отправляет полное имя и путь к файлу - программе (с GUI интерфейсом), программа анализирует этот файл, и в зависимости от условия дает команду драйверу на запрет доступа юзера к данному файлу. Это сообщение отредактировал(а) FF2 - 28.5.2009, 15:38 |
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 15 Всего: 72 |
||||
|
||||
| Riply |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Комодератор Сообщений: 572 Регистрация: 27.3.2007 Где: St. Petersburg Репутация: 21 Всего: 32 |
Я не смею тягаться с Деффри Рихтером , поэтому описывать не буду P.S. Деффри Рихтер не только описал, разложил все по полочкам, но еще и разжевал и примеры дал |
|||
|
||||
| FF2 |
|
|||
|
Новичок Профиль Группа: Awaiting Authorisation Сообщений: 8 Регистрация: 27.5.2009 Репутация: нет Всего: нет |
А название статьи или книги не подскажите? Еще одна запиночка заключается в том, что я в C/C++ полный ноль. Delphi, вот моя среда обитания. Буду очень признателен, если вы поможете в реализации задачи в первом посте.
Это сообщение отредактировал(а) FF2 - 28.5.2009, 19:57 |
|||
|
||||
| Riply |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Комодератор Сообщений: 572 Регистрация: 27.3.2007 Где: St. Petersburg Репутация: 21 Всего: 32 |
"Создание эффективных Win32-приложений с учетом спецификации 64-разрядной версии Windows" (Писала по памяти - могла ошибиться) Вполне достаточно умения читать Help, ибо там тоже "один С " И потом, Рихтер дает главное - понимание происходящего. Соответственно, если внимательно прочитать и разобраться, то не будет нужды "передирать его пример" - все можно будет написать самому ( в крайнем случае, подглядывая в его код Ну а с конкретными вопросами по реализации здесь всегда помогут. |
|||
|
||||
| FF2 |
|
|||
|
Новичок Профиль Группа: Awaiting Authorisation Сообщений: 8 Регистрация: 27.5.2009 Репутация: нет Всего: нет |
Спасибо, Riply. Так получается вы предлагаете мне перехватывать API-функцию CreateProcess?
Если возникнуть вопросы по реализации, то я обращусь к вам. P.S. У вас ICQ есть, мне бы так легче было? Это сообщение отредактировал(а) FF2 - 29.5.2009, 18:17 |
|||
|
||||
| Riply |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Комодератор Сообщений: 572 Регистрация: 27.3.2007 Где: St. Petersburg Репутация: 21 Всего: 32 |
А что она (CreateProcess) делает ? Нам нужно контролировать эти действия ? Я бы начала с NtCreateFile. Далле проверила бы: не через нее ли работает NtOpenFile ? Если нет или не всегда, то перехватывала бы и ее. Когда все заработает, на всякий случай, поискала бы другие способы открыти файлов (в обход этих ф-ий). Коллективный разум форума принесет гораздо больше пользы, чем один человек |
|||
|
||||
| FF2 |
|
|||
|
Новичок Профиль Группа: Awaiting Authorisation Сообщений: 8 Регистрация: 27.5.2009 Репутация: нет Всего: нет |
Я никогда раньше не имел дела с программированием драйверов. Одному мне не написать его(( Может вы поможете? То что я написал в 1 посте, возможно или нет? У меня на ПК стоит Delphi и MS VC++ Express + WDK.
|
|||
|
||||
| Rrader |
|
|||
|
Inspired =) ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1535 Регистрация: 7.5.2005 Репутация: 29 Всего: 191 |
FF2, а для начала тебе не потребуется писать драйвер. Перехватывай функции в пользовательском режиме. Разберешься, что и как. Тебе нужны примеры? Их очень много и в сети, и на этом форуме.
http://www.google.ru/search?q=Delphi+%2B%D...lient=firefox-a http://rouse.drkb.ru/winapi.php#iatchange |
|||
|
||||
| FF2 |
|
|||
|
Новичок Профиль Группа: Awaiting Authorisation Сообщений: 8 Регистрация: 27.5.2009 Репутация: нет Всего: нет |
Нашел в сети примеры перехвата NtCreateFile и NtOpenFile. В принципе все понятно. Да вот только адаптировать под свою задачу не смог. У меня ошибки при компиляции вылезают... Но будем стараться их исправить. Если не смогу подправить отпишусь тут.
Это сообщение отредактировал(а) FF2 - 31.5.2009, 06:18 |
|||
|
||||
| Riply |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Комодератор Сообщений: 572 Регистрация: 27.3.2007 Где: St. Petersburg Репутация: 21 Всего: 32 |
Сочуствую Не надо душой кривить А ты Рихтера уже прочел (ну или другого автора) ? Все понял ? Или ты "чукча - писатель, а не чукча-читатель" ? (с) Народная Помочь - в смысле написать за тебя код ? (Ибо примеры кода у тебя уже есть). Дам дружеский совет: бросай все это и садись за книжки по основам программирования, раз "ошибки при компиляции вылезают". |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 21 Всего: 88 |
Но прежде всего - сделать домашнее задание.
-------------------- Обижено школьников: 8 |
|||
|
||||
| FF2 |
|
|||
|
Новичок Профиль Группа: Awaiting Authorisation Сообщений: 8 Регистрация: 27.5.2009 Репутация: нет Всего: нет |
У вас так ко всем относятся??? Riply, кто вам говорил, что я прошу за меня написать код? Что ж, сочувствую я именно вам, раз у вас именно такое видение на мир и отношение к людям.. Вы же тоже были новичком и не нужно строить из себя гуру...На счет ошибок при компилировании... Я написал уже довольно много стоящих программ. Но дело с NativeAPI не имел. Да и корявая интерпретация nativeapi на pascal'e... проблемы у меня возникли именно с этим заголовочным файлом. Основы программирования я знаю довольно неплохо. На этом хочу "откланяться" вам и сказать большое спасибо за неоценимую "помощь".
Это сообщение отредактировал(а) FF2 - 31.5.2009, 07:41 |
|||
|
||||
| Riply |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Комодератор Сообщений: 572 Регистрация: 27.3.2007 Где: St. Petersburg Репутация: 21 Всего: 32 |
Начнем с того, что я спросила, а не утверждала. Но это так... ерунда. Не ерудна другое: Довольно некрасиво подправлять свой пост, на который уже дан ответ, а после этого возмущенно кричать "кто вам говорил". P.S. В дальнейшей дискусси с вами, по любому поводу, принимать участие у меня желания нет. |
|||
|
||||
| FF2 |
|
|||
|
Новичок Профиль Группа: Awaiting Authorisation Сообщений: 8 Регистрация: 27.5.2009 Репутация: нет Всего: нет |
Я не подправляю свои посты уже на которые даны ответы. А лишь корректирую опечатки в них.
P.S. Извините, может быть и я тже погарячился. Это сообщение отредактировал(а) FF2 - 31.5.2009, 10:22 |
|||
|
||||
| Riply |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Комодератор Сообщений: 572 Регистрация: 27.3.2007 Где: St. Petersburg Репутация: 21 Всего: 32 |
||||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 21 Всего: 88 |
Ничего ты не написал, не надо ля-ля. Если бы написал, у тебя были бы несколько более продвинутые ошибки, чем просто "не компилируется". А про корявую интерпритацию это вообще звиздец. Руки у кого-то корявые. -------------------- Обижено школьников: 8 |
|||
|
||||
| TriggerWoods |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 25.8.2009 Репутация: нет Всего: нет |
а как тогда написать драйвер?
|
|||
|
||||
| Riply |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Комодератор Сообщений: 572 Регистрация: 27.3.2007 Где: St. Petersburg Репутация: 21 Всего: 32 |
Поясни вопрос: "тогда" это когда не получилось разобраться с перехватом ? В этом случае ответ - никак Иначе можно посмотреть Драйверы режима ядра |
|||
|
||||
![]()
|
| Правила форума "Delphi: WinAPI и системное программирование" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |