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

Вниз

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

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

Наверх




Память: 0.49 MB
Время: 0.035 c
1-1109591627
Object
2005-02-28 14:53
2005.03.13
Как сохранить таблицу из DBGrid в xml - файл?


1-1109337368
Strori
2005-02-25 16:16
2005.03.13
Таблица Word


14-1108993511
juice
2005-02-21 16:45
2005.03.13
C++ Builder 5 Fatal: Unable to open file FILECTRL.OBJ


9-1101644082
XProger
2004-11-28 15:14
2005.03.13
TIME FOR KILL


3-1107858771
Manfred8
2005-02-08 13:32
2005.03.13
TClientDataSet.Locate не работает с кириллицей?





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