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

Вниз

Hook на открытие файла   Найти похожие ветки 

 
Rams ©   (2005-01-27 15:50) [0]

Нужно перехватывать все операции над файлами определенного расширения. Открытие, закрытие, сохрание. В дальнейшем планируется вести лог изменений в сохраняемых файлах.
Предполагается создать поток для сравнивания отредактированных файлов, создать некоторое подобие очереди, на это время заблокировав доступ к файлу, но это так - на будущее :)
Сейчас проблема - найти аналог пройстейшего filemon. Но на дельфи. и желательно попроще.


 
kaZaNoVa ©   (2005-01-27 15:54) [1]

имхо без драйвера не обойтись ...
хотя, если Api перехватывать ...


 
Игорь Шевченко ©   (2005-01-27 17:31) [2]

Если не секрет - в связи с чем такая задача ?


 
Rams ©   (2005-01-27 17:59) [3]

Не секрет. Есть сеть из 20 компов. На всех двадцати идет работа с общей базой файлов (*.txt). Нужно знать, когда и кто какой файл изменил. Мне главно принцип понять. А там уже можно наворачивать: мож кто что попортить захотел или т.п.

Мне кажется вещь актуальная, кому-нибудь обязательно пригодиться кроме меня. Только вот весь инет перерыл - статья Панова да еще немного. Только быть может filemon копать, да только не наc++льник я :(


 
Игорь Шевченко ©   (2005-01-27 17:59) [4]

А технология клиент-сервер никак не применима ?


 
Rams ©   (2005-01-27 18:03) [5]

Да дело в том что ладно что сеть. Хотя бы за одним компом уследить. Ведь человек может и в Far-e с файлом поработать и Ворде открыть. Тут самая первая задача - узнать что открывалось и понять что изменилось. И лог вести.

А про сеть - это я имел в виду как возможная перспектива.


 
xShadow ©   (2005-01-27 18:13) [6]


> Rams ©   (27.01.05 18:03) [5]

А вот тут определится нужно если наблюдение за файлами на локальной машине можно и перехватом апи функций обойтись, а если в сети то это уже другое.


 
cLayDEr ©   (2005-01-27 19:12) [7]

Насколько я помню в виндах в Администрировании есть ведение логов , как на запускаемые экзешники , так и на редактирование файлов. Причем для сбора этих логов даже были какие-то проги , да и самому написать обработчик лога на машине с дальнейшем отсылом инфы на сервак не очень сложно , по-моему. Хотя конечно всякой лишней инфы там получается НАВАЛОМ. (чем смог)


 
Kerk ©   (2005-01-27 19:38) [8]

cLayDEr ©   (27.01.05 19:12) [7]

Все тупо (с)


 
Rams ©   (2005-01-28 08:53) [9]

Спасибо за советы :)
2 xShadow: главное - на локальной машине. Можно и перехват api функций, а может есть у кого нить ссылка на простейший пример?


 
xShadow ©   (2005-01-28 09:58) [10]


> Rams ©   (28.01.05 08:53) [9]

В этом направлении простых решений не бывает!
www.sysinternals.com - filemon
http://www.iamaphex.cjb.net/ - много разных примеров
http://www.madshi.net - тоже есть примеры но исходный код библиотеки платный разбирайся.
Плюс ко всему поищи на формах подобная тема поднималась не один десяток раз.


 
wal ©   (2005-01-28 10:02) [11]

А просто NTFS+права+аудит не подойдет?

С уважением.


 
Rams ©   (2005-01-29 10:51) [12]

Ну я тут посмотрел, почитал. Вот что я понял, поправьте если что.

1 путь - Debug API, куча примеров. Тогда значит висеть и ждать потенциальной программы.
2 путь - Hook - только на что? как я понял хук ставиться только на сообщения WM_*
3 путь заменить нафиг kernel32.dll своей :)

wal> А просто NTFS+права+аудит не подойдет?
Нет, поскольку нужно оформить в виде программы, которую можно установить на любой комп (WinXP, WinMe, Win9X);

2xShadow. Спасибо за ссылки :) Только одно но: в Си - я не в зуб ногой :) Может разыскать самую первую версию filemon где будет все не так сложно :(



 
kaZaNoVa ©   (2005-01-29 11:00) [13]

Rams ©   (29.01.05 10:51) [12]

> 3 путь заменить нафиг kernel32.dll своей :)

100% невозможно в виндах выше 2000))


 
Ihor Osov'yak ©   (2005-01-29 12:04) [14]

> найти аналог пройстейшего filemon. Но на дельфи.

На делфи не будет. Так как "изюминка" filemon - драйвера (причем разные и для NT-ряда, и для w9x)... А делфи и драйвера - вещи несовместимые (хотя есть оригиналы, пытающиеся на практике доказать, что это не так)...
Гуишную оболочку, взаимодействующею с драйвером, на делфи можно написать без проблем.

Перехват апишных вызовов (здесь уже полностью можно решить задачу с помощью D) для общего случая в контексте поставленной задачи не всегда может гаратнировать решение или его приемлемость...

.. Но это прелюдия. А песнь будет такова - "не тем путем идете, товарищ Rams. И очень вероятно - не туда."


 
Rams ©   (2005-01-29 18:14) [15]

Изходя из всего....

Нужно взять драйвера файлмона и приписать к ним гуи дельфи?


 
Ihor Osov'yak ©   (2005-01-29 18:58) [16]

2 [15] Rams ©   (29.01.05 18:14)

>Нужно взять драйвера файлмона и приписать к ним гуи дельфи?

Может и так. Технически - задача довольно простая. Если проблем с лицензированием не будет.
Вообще-то к книге Русиновича/Cоломона идет диск с соотв. утилитами - там чего-то говорится на предмет использования покупателями книги содержимого диска в своих целях - возможно есть и легальные лазейки приспособить драйвера файлмонитора в своей разработке - посмотрите (я могу и ошибаться).

Да, еще - вспомнил.. На рентакодере сейчас похожая тема висит (там вообще-то не логирование, а блокирование доступа по некоторым условиям) - я там даже свои услуги как исполнитель предложил :-)


 
xShadow ©   (2005-01-29 22:38) [17]

Советую внимательней изучить вторую ссылку там есть примеры перехвата вин апи функций createprocess, findfirst и т.д. а на их основе без проблем можно слепить в первой приблежении то что тебе нужно.


 
GrayFace ©   (2005-01-30 05:15) [18]

Rams ©   (29.01.05 10:51) [12]
2 путь - Hook - только на что? как я понял хук ставиться только на сообщения WM_*

Нет. Хук ставится на сообщения, мышь, клаву и т.д. Но на файлы не ставится.


 
Rams ©   (2005-01-30 06:01) [19]

Спасибо. Посмотрю - почитаю. Когда будут результаты, сообщу. :)



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

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

Наверх




Память: 0.51 MB
Время: 0.059 c
1-1109581838
Vasek
2005-02-28 12:10
2005.03.13
Координаты выделенной ячейки в DBGridEh


4-1106898466
Jetus
2005-01-28 10:47
2005.03.13
Получение результатов выполнения командной строки


14-1109112984
Александр грифин
2005-02-23 01:56
2005.03.13
Требуется программист для реализации проекта


6-1105438289
Senti
2005-01-11 13:11
2005.03.13
Передача файлов в отдельных потоках


10-1085233283
Cyber
2004-05-22 17:41
2005.03.13
Вставка даных в Word