Полиморфный AVZ

Полиморфный AVZ 5.50 от 28.04.2021

Обновился полиморфный AVZ, в нем ряд всяких правок, в частности исправлен сбой при сканировании систем на примерно 50%, обновлены эвристики.
  • Like
Реакции: Dragokas
Исправлено падения AVZ на windows 10.
  • Like
Реакции: Dragokas
Ключ X64R=XX теперь немного иначе работает, расширенно:
Начиная с версии 4.45 кроме значений N и Y поддерживается значение X, которое рассматривается как "не изменять текущее состояние настройки редиректора". Например:
X64R=XN - состояние редиректора реестра не меняется, а редиректор файловой системы отключается
X64R=NX - состояние редиректора реестра меняется на "выключен", а состояние редиректора файловой системы не изменяется
function ZIP_CreateArchive(AArchiveFile : string; AFileList, AResCodes : TStrings; APWD : string = '') : boolean;

Создает на диске ZIP архив c именем AArchiveFile и помещает в него файлы из списка AFileList.

Результат обработки каждого из файлов заносится в список AResCodes (если файл успешно помещен в архив, в список записывается "0", если файл не найден - "1", если в ходе добавления файла в архив возникли некие ошибки (например, файл заблокирован на чтение или не хватает прав для его открытия) - "2". Если в скрипте не требуется анализировать успешность добавления файлов в архив, следует в качестве значения параметра AResCodes передать nil. Важно, что список AResCodes будет заполнен только при условии, что функция успешно отработала и вернула true.

Параметр APWD не обязателен и позволяет задать пароль архива. По умолчанию пароль не задан.

Каждая строка списка файлов AFileList должна содержать полное имя добавляемого файла, и отделенное от него точной с запятой имя этого файла в архиве. Например 'd:\avz_sysinfo.htm;LOG\avz_sysinfo.htm' - в данном случае файл d:\avz_sysinfo.htm будет добавлен в архив в каталог LOG под именем avz_sysinfo.htm.
Если в строке списка не указано имя файла в архиве (т.е. нет разделителя , то файл добавляется в корень архива, причем имя файла в архиве будет совпадать с именем добавляемого файла.

Если на диске существует файл с именем, заданным в AArchiveFile, то такой файл удаляется перед началом процесса архивации.

Функция возвращает true в случае успешного выполнения и false при обнаружении критических ошибок.

В параметре AArchiveFile и именах файлов списка AFileList допустимо указывать макросы, подробнее см. в разделе "макросы, допустимые в именах файлов"

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


Код:
var
FileList : TStrings;
begin
FileList := TStringList.Create;
FileList.Add('d:\avz_sysinfo.htm');
FileList.Add('d:\avz_sysinfo.xml');
ZIP_CreateArchive('d:\test.zip', FileList, nil, 'infected');
FileList.Free;
end.

В данном примере на диске d:\ создается архив test.zip, в корень архива добавляется два файла, имена файлов в архиве будут совпадать с их именами на диске.
Код:
var
FileList : TStrings;
begin
FileList := TStringList.Create;
FileList.Add('d:\avz_sysinfo.htm;LOG\sysinfo.htm') ;
FileList.Add('d:\avz_sysinfo.xml;LOG\sysinfo.xml') ;
ZIP_CreateArchive('d:\test.zip', FileList, nil, 'infected');
FileList.Free;
end.

Код:
var
FileList, ResCodes : TStrings;
i : integer;
begin
FileList := TStringList.Create;
ResCodes := TStringList.Create;
FileList.Add('d:\avz_sysinfo.htm;LOG\sysinfo.htm') ;
FileList.Add('d:\avz_sysinfo.xml;LOG\sysinfo.xml') ;
if ZIP_CreateArchive('d:\test.zip', FileList, ResCodes, 'infected') then
for i := 0 to FileList.Count-1 do
AddToLog('Файл '+FileList[i]+', результат архивации = '+ResCodes[i]);
FileList.Free;
ResCodes.Free;
end.
  • Like
Реакции: Dragokas
Добавлена проверка папок альтернативного запуска.
Теперь в папках автозапуска список разделен, чтобы было видно, что найдено в Startup, AltStartup и Common Startup
Добавлена новая функция IsAdmin для проверки запущен ли AVZ с правами администратора. Подробней здесь.
------------- 28.04.2015 -------------
Команды:
function ZIP_ExtractArchive(AArchiveFile, ADestDir, AMask : string; APWD : string = ''); - извлекает их архива с именем AArchiveFile файлы, соответствующие маске AMask в каталог ADestDir. Структура каталогов в архиве и ADestDir будут идентичны. Если архив с паролем, то необходимо задать необязательный 4-й параметр APWD и указать в нем пароль (если это не сделать, то защищенные паролем файлы не извлекутся или извлекутся с нулевым размером). Пример:
Код:
begin
ZIP_ExtractArchive('d:\test.zip', 'e:\распаковка ZIP', '*.*');
end.
Создание архива ведется функцией function ZIP_CreateArchive(AArchiveFile : string; AFileList : TStrings; APWD : string = ''), где
AArchiveFile - полное имя создаваемого архива
AFileList - список добавляемых файлов
APWD - необязательный параметр, пароль архива (если не задан - то создается архив без пароля).

Список файлов содержит или полные имена файлов (они добавляются в корень архива), или <полное имя файла на диске>;<имя файла в архиве> - в этом случае можно добавлять файлы в различные каталоги в архиве и не обязательно под именами как на диске. Пример:
Код:
var
FileList : TStrings;
begin
FileList := TStringList.Create;
FileList.Add('d:\msdia80.dll');
FileList.Add('d:\msdia80.dll;test.dll');
FileList.Add('d:\avz_sysinfo.htm;LOG\avz_sysinfo.htm');
FileList.Add('d:\avz_sysinfo.xml;LOG\avz_sysinfo.xml');
ZIP_CreateArchive('d:\test.zip', FileList, 'infected');
end.

------------- 27.04.2015 -------------

Добавлена возможность архивировать карантин с произвольным паролем. В скрипт в любое место до начала создания архива с карантином вставить:
SetupAVZ('QrPWD=infected');
Например:
Код:
begin
// Очистка карантина
ClearQuarantine;
// Автокарантин
ExecuteAutoQuarantine;
// Создание архива с файлами, помещенными в карантин
SetupAVZ('QrPWD=infected');
CreateQurantineArchive(GetAVZDirectory+'quarantine.zip');
end.
За счет использования SetupAVZ получается полная совместимость скриптов с старыми версиями AVZ (они попросту проигнорируют данную настройку). Системы Кибера кстати принимают архивы с паролем infected наравне с паролем virus
источник.
Исправлен баг из-за которого создавались "битые" XML логи.
1. В описании процессов и DLL ссылки удалены, сведения по файлу вынесены в столбец с описанием файла (для DLL это ранее был столбец с MD5)
2. В всех остальных секциях ссылки удалены, а то, что выводилось в них, выводится более мелким шрифтом под именем файла
3. Важные моменты в данных по файлу (создан с пределах последних 2 недель, атрибуты "скрытый" и "системный") выделяются цветом и жирностью, чтобы сразу бросалось в глаза
4. Добавлены сведения по файлам в планировщике заданий (ранее их не было)
5. Добавлен нормальный парсинг имен файлов и фильтрация по базе чистых в менеджере протоколов (ранее почему-то он там не был подключен)
Сверху Снизу