![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Hook на открытие файла
Rams © (2005-01-27 15:50:00)Нужно перехватывать все операции над файлами определенного расширения. Открытие, закрытие, сохрание. В дальнейшем планируется вести лог изменений в сохраняемых файлах.
Предполагается создать поток для сравнивания отредактированных файлов, создать некоторое подобие очереди, на это время заблокировав доступ к файлу, но это так - на будущее :)
Сейчас проблема - найти аналог пройстейшего filemon. Но на дельфи. и желательно попроще.
Rams (2005-01-30 06:01:00) [1]Спасибо. Посмотрю - почитаю. Когда будут результаты, сообщу. :)
GrayFace (2005-01-30 05:15:00) [2]Rams © (29.01.05 10:51) [12]
2 путь - Hook - только на что? как я понял хук ставиться только на сообщения WM_*
Нет. Хук ставится на сообщения, мышь, клаву и т.д. Но на файлы не ставится.
xShadow (2005-01-29 22:38:00) [3]Советую внимательней изучить вторую ссылку там есть примеры перехвата вин апи функций createprocess, findfirst и т.д. а на их основе без проблем можно слепить в первой приблежении то что тебе нужно.
Ihor Osov'yak (2005-01-29 18:58:00) [4]2 [15] Rams © (29.01.05 18:14)
>Нужно взять драйвера файлмона и приписать к ним гуи дельфи?
Может и так. Технически - задача довольно простая. Если проблем с лицензированием не будет.
Вообще-то к книге Русиновича/Cоломона идет диск с соотв. утилитами - там чего-то говорится на предмет использования покупателями книги содержимого диска в своих целях - возможно есть и легальные лазейки приспособить драйвера файлмонитора в своей разработке - посмотрите (я могу и ошибаться).
Да, еще - вспомнил.. На рентакодере сейчас похожая тема висит (там вообще-то не логирование, а блокирование доступа по некоторым условиям) - я там даже свои услуги как исполнитель предложил :-)
Rams (2005-01-29 18:14:00) [5]Изходя из всего....
Нужно взять драйвера файлмона и приписать к ним гуи дельфи?
Ihor Osov'yak (2005-01-29 12:04:00) [6]> найти аналог пройстейшего filemon. Но на дельфи.
На делфи не будет. Так как "изюминка" filemon - драйвера (причем разные и для NT-ряда, и для w9x)... А делфи и драйвера - вещи несовместимые (хотя есть оригиналы, пытающиеся на практике доказать, что это не так)...
Гуишную оболочку, взаимодействующею с драйвером, на делфи можно написать без проблем.
Перехват апишных вызовов (здесь уже полностью можно решить задачу с помощью D) для общего случая в контексте поставленной задачи не всегда может гаратнировать решение или его приемлемость...
.. Но это прелюдия. А песнь будет такова - "не тем путем идете, товарищ Rams. И очень вероятно - не туда."
kaZaNoVa (2005-01-29 11:00:00) [7]Rams © (29.01.05 10:51) [12]
> 3 путь заменить нафиг kernel32.dll своей :)
100% невозможно в виндах выше 2000))
Rams (2005-01-29 10:51:00) [8]Ну я тут посмотрел, почитал. Вот что я понял, поправьте если что.
1 путь - Debug API, куча примеров. Тогда значит висеть и ждать потенциальной программы.
2 путь - Hook - только на что? как я понял хук ставиться только на сообщения WM_*
3 путь заменить нафиг kernel32.dll своей :)
wal> А просто NTFS+права+аудит не подойдет?
Нет, поскольку нужно оформить в виде программы, которую можно установить на любой комп (WinXP, WinMe, Win9X);
2xShadow. Спасибо за ссылки :) Только одно но: в Си - я не в зуб ногой :) Может разыскать самую первую версию filemon где будет все не так сложно :(
wal (2005-01-28 10:02:00) [9]А просто NTFS+права+аудит не подойдет?
С уважением.
xShadow (2005-01-28 09:58:00) [10]
> Rams © (28.01.05 08:53) [9]
В этом направлении простых решений не бывает!
www.sysinternals.com - filemon
http://www.iamaphex.cjb.net/- много разных примеров
http://www.madshi.net- тоже есть примеры но исходный код библиотеки платный разбирайся.
Плюс ко всему поищи на формах подобная тема поднималась не один десяток раз.
Rams (2005-01-28 08:53:00) [11]Спасибо за советы :)
2 xShadow: главное - на локальной машине. Можно и перехват api функций, а может есть у кого нить ссылка на простейший пример?
Kerk (2005-01-27 19:38:00) [12]cLayDEr © (27.01.05 19:12) [7]
Все тупо (с)
cLayDEr (2005-01-27 19:12:00) [13]Насколько я помню в виндах в Администрировании есть ведение логов , как на запускаемые экзешники , так и на редактирование файлов. Причем для сбора этих логов даже были какие-то проги , да и самому написать обработчик лога на машине с дальнейшем отсылом инфы на сервак не очень сложно , по-моему. Хотя конечно всякой лишней инфы там получается НАВАЛОМ. (чем смог)
xShadow (2005-01-27 18:13:00) [14]
> Rams © (27.01.05 18:03) [5]
А вот тут определится нужно если наблюдение за файлами на локальной машине можно и перехватом апи функций обойтись, а если в сети то это уже другое.
Rams (2005-01-27 18:03:00) [15]Да дело в том что ладно что сеть. Хотя бы за одним компом уследить. Ведь человек может и в Far-e с файлом поработать и Ворде открыть. Тут самая первая задача - узнать что открывалось и понять что изменилось. И лог вести.
А про сеть - это я имел в виду как возможная перспектива.
Игорь Шевченко (2005-01-27 17:59:00) [16]А технология клиент-сервер никак не применима ?
Rams (2005-01-27 17:59:00) [17]Не секрет. Есть сеть из 20 компов. На всех двадцати идет работа с общей базой файлов (*.txt). Нужно знать, когда и кто какой файл изменил. Мне главно принцип понять. А там уже можно наворачивать: мож кто что попортить захотел или т.п.
Мне кажется вещь актуальная, кому-нибудь обязательно пригодиться кроме меня. Только вот весь инет перерыл - статья Панова да еще немного. Только быть может filemon копать, да только не наc++льник я :(
Игорь Шевченко (2005-01-27 17:31:00) [18]Если не секрет - в связи с чем такая задача ?
kaZaNoVa (2005-01-27 15:54:00) [19]имхо без драйвера не обойтись ...
хотя, если Api перехватывать ...