function  QuarantineFileF

function  QuarantineFileF

Previous pageReturn to chapter overviewNext page

function  QuarantineFileF(ASearchPath:string;AMaskList:string;

                         ARecurse : boolean;

                         AMsg : string;

                         ASizeMin, ASizeMax : integer;

                         ADateMin : string = ''; ADateMax : string = '';

                         ACopyRigth : string = '';

                         AMD5 : string = ''):integer

 

Поиск файлов по заданному набору условий и копирование найденных файлов в карантин.

Является аналогов функции QuarantineFile для случая, когда неизвестно точное имя файла, но есть некоторые данные о нем (например, известен размер файла, его дата создания/модификации, копирайты или MD5).

Если любой из найденных файлов уже есть в карантине, или он опознан по базе безопасных, то копирование в карантин блокируется.

На работу функции влияют маски фильтрации, задаваемые при помощи AddQuarantineFilter

 

Параметры

 

ASearchPath - путь к каталогу, в котором осуществляется поиск. В пути допустимы макросы. Параметр обязателен

 

AMaskList - одна или несколько масок имени файла. В случае указания нескольких масок они разделяются запятой или точкой с запятой (,;). Например: "*.dll" или "*.exe;*.dll;xx0????.tmp". В маске могут использоваться стандартные символы * (любое количество любых символов) и ? - один произвольный символ в заданной позиции. Параметр обязателен, должна быть задана хотя-бы одна маска. Вместо маски (или в качестве одной из масок в списке) можно указывать имя файла, например "*.dll;trojan.exe;virus.exe" - в данном случае условию соответствуют все файлы с расширением DLL и файлы с именами trojan.exe и virus.exe

 

ARecurse - управление рекурсивным поиском по вложенным папкам. Если равен false, то поиск файла ведется только в указанном каталоге. Если true - то в указанном каталоге и всех его вложенных подкаталогах.

 

AMsg - произвольный текст, который при помещение в карантин вносится в описание файла. Параметр обязателен, допускается задание пустой строки

 

ASizeMin - минимальный размер файла в байтах. Параметр обязателен

 

ASizeMax - максимальный размер файла в байтах. Параметр обязателен, задание максимального размера 0 выключает контроль максимального размера

 

ADateMin - минимальная дата файла. Дата задается в виде строки формата DD.MM.YYYY. При сравнении проверяется дата создания и дата последней модификации файла, если любая из дат больше заданной, то условие считается выполненным. Параметр необязателен, если контроль минимальной даты не нужен, то задается пустая строка.

 

ADateMax - максимальная дата файла. Дата задается в виде строки формата DD.MM.YYYY. При сравнении проверяется дата создания и дата последней модификации файла, если любая из дат меньше заданной, то условие считается выполненным. Параметр необязателен, если контроль максимальной даты не нужен, то задается пустая строка.

 

ACopyRigth - фрагмент копирайтов файла. Если задана пустая строка, то контроль копирайтов не производится. Если задан некий образец, то производится его поиск в тексте копирайтов, в случае нахождения условия считается выполненным. Поиск идет без учета регистра

 

AMD5 - MD5 сумма файла. Задание пустой строки или отсутствие параметра отключает контроль MD5.

 

Совместимость: AVZ 4.34 и выше

 

На заметку

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

 

На заметку

В случае, если задан образец копирайтов или MD5 сумма, требуется выполнение операций с файлом. При это на чтение копирайтов затрачиваются сравнительно небольшие ресурсы, тогда как для вычисления MD5 требуется чтение всего файла с диска, что весьма негативно влияет на быстродействие.  Поэтому при проверке установлен приоритет проверок:

- размер

- дата создания и модификации

- копирайты

- MD5

Поэтому к примеру поиск по размеру и MD5 будет идти значительно быстрее, чем просто по MD5 - за счет того, что ресурсоемкая операция вычисления MD5 будет производиться только для файлов с подходящим размером.

 

Примеры:

 

1. Пример карантина файла по маскам имени без учета прочих параметров

begin

QuarantineFileF('c:\windows', 'avm*.*', false, '', 0, 0);

end.

 

2. Пример карантина EXE файлов с заданным размером (очень удобно для поиска семпла с известным размером и неизвестным именем)

begin

QuarantineFileF('c:\windows', '*.exe', false,'', 98154, 98154);

end.

 

3. Пример карантина EXE и DLL файлов, созданных или модифицированных в пределах заданного интервала времени

begin

QuarantineFileF('c:\windows', '*.exe,*.dll', false,'', 0, 0, '1.06.2010', '3.06.2010');

end.

 

4. Пример карантина DLL файлов по MD5

begin

QuarantineFileF('c:\windows', '*.dll', false,'', 0, 0, '', '', '', '91D52886E142ACB998D7539B6EF2040C');

end.

 

5. Пример карантина DLL файлов по MD5 размеру

begin

QuarantineFileF('c:\windows', '*.dll', false,'', 98154, 98154, '', '', '', '91D52886E142ACB998D7539B6EF2040C');

end.

 

6. Пример карантина EXE файлов по размеру и фрагментам копирайтов

begin

QuarantineFileF('c:\windows', '*.exe', false, '', 80000, 12000, '', '', 'cool malware');

end.