Какая API-функция перехватывается антивирусником?
От: Ortodocs США  
Дата: 11.03.06 21:40
Оценка:
Кто-нибудь знает, каким образом антивирусник определяет момент открытия папки пользователем, начиная тутже проверять в ней файлы (конечно только потенциально опасные). Возможно он перехватывает какую-то API-функцию. Но какую? И вообще, есть ли у кого-нибудь какие-нибудь сведения по этому вопросу? На самом деле, я должен написать прогу, которая следит за тем, по каким папкам лазеет пользователь. Чую без перехватов API-функций здесь не обойтись. А вот каких именно? Пробовал другие способы — не подходят. Помогите, пожалуйста!!!
Re: Какая API-функция перехватывается антивирусником?
От: Valery A. Boronin Россия linkedin.com/in/boronin
Дата: 11.03.06 23:14
Оценка: 1 (1)
Здравствуйте, Ortodocs, Вы писали:

O>Кто-нибудь знает, каким образом антивирусник определяет момент открытия папки пользователем, начиная тутже проверять в ней файлы (конечно только потенциально опасные). Возможно он перехватывает какую-то API-функцию. Но какую? И вообще, есть ли у кого-нибудь какие-нибудь сведения по этому вопросу? На самом деле, я должен написать прогу, которая следит за тем, по каким папкам лазеет пользователь. Чую без перехватов API-функций здесь не обойтись. А вот каких именно? Пробовал другие способы — не подходят. Помогите, пожалуйста!!!

чтобы точно определять какие папки\диски\файлы\потоки трогает какой пользователь и зачем — только путь фильтров файловых систем (поиск по словам file system filter drivers). если нужен просто факт того что где-то что-то изменилось — можно обойтись малой кровью:
Re[4]: События файловой системы
Автор: Valerio
Дата: 03.04.04

Re: Удаление файлов?
Автор: Valerio
Дата: 06.02.04


PS перехватывать какой-то API не рекомендуется без крайней нужды:
Re: перехват обращений к ФС
Автор: Valerio
Дата: 20.09.04

Re[7]: API функции работы с файлами и каталогами
Автор: Valery A. Boronin
Дата: 27.10.05
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
Re: Какая API-функция перехватывается антивирусником?
От: Slava Antonov Россия http://deadbeef.narod.ru
Дата: 12.03.06 03:16
Оценка:
Hello Ortodocs, you wrote:

> Кто-нибудь знает, каким образом антивирусник определяет момент открытия папки пользователем, начиная тутже проверять в ней файлы


Скорее всего он использует фильтр файловой системы (т.е. драйвер).

--
Всего хорошего, Слава
ICQ: 197577902
Posted via RSDN NNTP Server 2.0
Re: Какая API-функция перехватывается антивирусником?
От: SmK  
Дата: 12.03.06 08:36
Оценка:
Здравствуйте, Ortodocs, Вы писали:

O>Кто-нибудь знает, каким образом антивирусник определяет момент открытия папки пользователем, начиная тутже проверять в ней файлы (конечно только потенциально опасные). Возможно он перехватывает какую-то API-функцию. Но какую? И вообще, есть ли у кого-нибудь какие-нибудь сведения по этому вопросу? На самом деле, я должен написать прогу, которая следит за тем, по каким папкам лазеет пользователь. Чую без перехватов API-функций здесь не обойтись. А вот каких именно? Пробовал другие способы — не подходят. Помогите, пожалуйста!!!


Ну если только папки, то достаточно
FindFirstFile
FindNextFile

если ещё и какие файлы открывает
CreateFile 
OpenFile //насчёт этого не уверен

а вообще тут проблема не какие функции, а как всё это сделать чтобы не глючило и работало во всех программах.
Например если прользователь работает с explorer-ом, то всё ок, а вот если с Far или TotalCommander то тут начнутся проблемы.
Покопайся по форуму до тебя перехватом не один десяток человек интересовались. Почитай Дж.Рихтера.
Re[2]: Какая API-функция перехватывается антивирусником?
От: SmK  
Дата: 12.03.06 08:49
Оценка:
Здравствуйте, SmK, Вы писали:

SmK>Здравствуйте, Ortodocs, Вы писали:


O>>Кто-нибудь знает, каким образом антивирусник определяет момент открытия папки пользователем, начиная тутже проверять в ней файлы (конечно только потенциально опасные). Возможно он перехватывает какую-то API-функцию. Но какую? И вообще, есть ли у кого-нибудь какие-нибудь сведения по этому вопросу? На самом деле, я должен написать прогу, которая следит за тем, по каким папкам лазеет пользователь. Чую без перехватов API-функций здесь не обойтись. А вот каких именно? Пробовал другие способы — не подходят. Помогите, пожалуйста!!!


А вообще прав Slava Antonov. Если хочешь, чтобы всё действительно работало всегда, а не через раз, то придётся писать драйвер.
Re: Какая API-функция перехватывается антивирусником?
От: Ortodocs США  
Дата: 12.03.06 10:40
Оценка:
Спасибо за ответы. Я вчера сначала задал вопрос свой на форуме. А потом решил тщательно поискать подобные темы. И оказалось, что вопросов подобных моей теме и совпадающих с ней задавалось уже очень много раз и было получено очень много ответов. Так что я сейчас разбираюсь с ними.
Только вот одно обстоятельство. Я сначала не предавал ему значения, не считая это важным. Дело в том что я собираюсь контролировать лазанья пользователем по папкам, находящихся не на его машине, а на сервере (т.е. идёт речь про лок. сеть с сервером). Так вот, когда пользователь на лок. машине лазеет по сетевому диску, используются ли те самые API функции типа CreateFile, FindFirst и т.д. (на его машине) Я думаю, что да. Но вдруг ошибаюсь — и тогда пойдёт всё крахом для меня.
Re[2]: Какая API-функция перехватывается антивирусником?
От: _Winnie Россия C++.freerun
Дата: 12.03.06 15:54
Оценка:
Здравствуйте, Ortodocs, Вы писали:

O>Дело в том что я собираюсь контролировать лазанья пользователем по папкам, находящихся не на его машине, а на сервере (т.е. идёт речь про лок. сеть с сервером). Так вот, когда пользователь на лок. машине лазеет по сетевому диску, используются ли те самые API функции типа CreateFile, FindFirst и т.д. (на его машине) Я думаю, что да. Но вдруг ошибаюсь — и тогда пойдёт всё крахом для меня.


ИМХО, ты всё равно перехватишь эти функции. Но не на машине клиента, а на сервере, когда системный сервис попытается при пересылке файлов узнать что-т о них
Правильно работающая программа — просто частный случай Undefined Behavior
Re[3]: Какая API-функция перехватывается антивирусником?
От: Ortodocs США  
Дата: 12.03.06 18:59
Оценка:
Здравствуйте, _Winnie, Вы писали:

_W>Здравствуйте, Ortodocs, Вы писали:


O>>Дело в том что я собираюсь контролировать лазанья пользователем по папкам, находящихся не на его машине, а на сервере (т.е. идёт речь про лок. сеть с сервером). Так вот, когда пользователь на лок. машине лазеет по сетевому диску, используются ли те самые API функции типа CreateFile, FindFirst и т.д. (на его машине) Я думаю, что да. Но вдруг ошибаюсь — и тогда пойдёт всё крахом для меня.


_W>ИМХО, ты всё равно перехватишь эти функции. Но не на машине клиента, а на сервере, когда системный сервис попытается при пересылке файлов узнать что-т о них


Поясню кое-что. Изначально я подумал о 2-х вариантах. Либо на серваке следить, что кто-то лазеет, либо на лок. машине за тем, где юзер ползает. 1-й выриант я отбросил, т.к. нигде в инете не могу получить никаких сведений о том, как это реализовать. 2-й вариант у меня хоть мысли есть, т.к. там я могу просто отправлять с каждой машины результаты слежки на сервер. Но 1-й вариант более предпочтительней для меня, т.к. он более универсальный и ненадо устанавливать прогу на каждую машину.
Так вот. _Winnie, ты имеешь ввиду, что я могу непосредственно на сервере узнавать о том, что кто-то лазеет, копирует и т.д. (Я конечно понимаю что всё можно, но через перехват каких функций? — не знаю. Или возможно другим способом?)
Может мне этот вопрос вынести в отдельную тему (т.к. ушёл от своей первичной)?
Re[4]: Какая API-функция перехватывается антивирусником?
От: Alexey Frolov Беларусь  
Дата: 13.03.06 08:19
Оценка:
Здравствуйте, Ortodocs, Вы писали:

O>Поясню кое-что. Изначально я подумал о 2-х вариантах. Либо на серваке следить, что кто-то лазеет, либо на лок. машине за тем, где юзер ползает. 1-й выриант я отбросил, т.к. нигде в инете не могу получить никаких сведений о том, как это реализовать. 2-й вариант у меня хоть мысли есть, т.к. там я могу просто отправлять с каждой машины результаты слежки на сервер. Но 1-й вариант более предпочтительней для меня, т.к. он более универсальный и ненадо устанавливать прогу на каждую машину.

O>Так вот. _Winnie, ты имеешь ввиду, что я могу непосредственно на сервере узнавать о том, что кто-то лазеет, копирует и т.д. (Я конечно понимаю что всё можно, но через перехват каких функций? — не знаю. Или возможно другим способом?)
O>Может мне этот вопрос вынести в отдельную тему (т.к. ушёл от своей первичной)?

Все таки мне кажется что от фильтров файловых систем вам не уйти. А здесь малой кровью не отделаешься.
Re[4]: Какая API-функция перехватывается антивирусником?
От: Valery A. Boronin Россия linkedin.com/in/boronin
Дата: 13.03.06 14:00
Оценка:
Здравствуйте, Ortodocs, Вы писали:

O>>>Дело в том что я собираюсь контролировать лазанья пользователем по папкам, находящихся не на его машине, а на сервере (т.е. идёт речь про лок. сеть с сервером). Так вот, когда пользователь на лок. машине лазеет по сетевому диску, используются ли те самые API функции типа CreateFile, FindFirst и т.д. (на его машине) Я думаю, что да. Но вдруг ошибаюсь — и тогда пойдёт всё крахом для меня.

да, API другого нет. единственное что есть еще тот же самый API на уровне ядра и его Вы не перехватите из user mode.

еще имейте ввиду, если на сервере кто-то поработает с теми же файлами локально (или с другого клиента), то Ваш клиент уже не будет при делах, контроля над файлами на сервере не будет (разве только эксклюзивно сетевой файл открыть и все остальные не смогут с ним работать)

_W>>ИМХО, ты всё равно перехватишь эти функции. Но не на машине клиента, а на сервере, когда системный сервис попытается при пересылке файлов узнать что-т о них

этого я не понял совсем, к слову

O>Поясню кое-что. Изначально я подумал о 2-х вариантах. Либо на серваке следить, что кто-то лазеет, либо на лок. машине за тем, где юзер ползает. 1-й выриант я отбросил, т.к. нигде в инете не могу получить никаких сведений о том, как это реализовать. 2-й вариант у меня хоть мысли есть, т.к. там я могу просто отправлять с каждой машины результаты слежки на сервер. Но 1-й вариант более предпочтительней для меня, т.к. он более универсальный и ненадо устанавливать прогу на каждую машину.

про 1й способ. если нужно с сервера контролировать клиентов, то не существует способа это сделать без клиентских компонентов.

просто от противного: иначе бы все наши машины кем-то всегда контролировались полностью, да и софт такой был бы уже написан в огромных кол-вах.

2й способ конечно реальней.

O>Так вот. _Winnie, ты имеешь ввиду, что я могу непосредственно на сервере узнавать о том, что кто-то лазеет, копирует и т.д. (Я конечно понимаю что всё можно, но через перехват каких функций? — не знаю. Или возможно другим способом?)

Когда пользователь лазает с клиента по серверу, у Вас есть 2 варианта + их комбинация:
— на клиенте следить — куда лезем, типа пользователь А полез на \\??\UNC\Server\Share\Path\File, хочет сотворить то-то
— на сервере следить — некто из под сессии, открытой с правами пользователя Б (кстати не обязательно Б лично!), с машины С, лезет к файлу такому-то.

уровень контроля как уже было сказано
Автор: Valery A. Boronin
Дата: 12.03.06
весьма разный, достигается либо из user mode (но реально информации дает немного, разве что факт изменения и никаких деталей + никакой возможности активно повлиять на ситуацию, да и от не всегда) дешево и сердито, либо максимальный контроль, но это уже из компонентов ядра, дорого и гораздо более сердито.

общее правило — имеем полный контроль над локальными файлами\ресурсами, т.е. на сервере — над серверными, на клиентах — над клиентскими.

если хочется нечто распределенное-сетевое, т.е. с сервера контролировать нечто на клиентах, то тут нужно думать о клиент-серверной архитектуре. в любом случае и все сильно зависит от задачи. во всех случаях прехват API не самый хороший вариант, скорее самый нехороший.

лучше опишите задачу (в отдельном топике) максимально четко и коротко, с точки зрения пользователя проектируемой системы, без размышлений о возможных путях решения
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
Re[5]: Какая API-функция перехватывается антивирусником?
От: Ortodocs США  
Дата: 15.03.06 17:52
Оценка:
Здравствуйте, Valery A. Boronin, Вы писали:

VAB>про 1й способ. если нужно с сервера контролировать клиентов, то не существует способа это сделать без клиентских компонентов.

VAB>просто от противного: иначе бы все наши машины кем-то всегда контролировались полностью, да и софт такой был бы уже написан в огромных кол-вах.
А ведь и правда... логика... Я как-то об этом не подумал

VAB>лучше опишите задачу (в отдельном топике) максимально четко и коротко, с точки зрения пользователя проектируемой системы, без размышлений о возможных путях решения

На данный момент я получил приличное количествто информации с форумов (да и вообще с сайта). Буду разбираться, пробовать, а если что, тогда опять загляну...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.