Jump to content
Vorland

Дата обновления баз

Recommended Posts

Запускаю обновление AVZ таким образом:

avz.exe HiddenMode=1 script=update.script

где в скрипте "update.script" используется функция "ExecuteAVUpdate"

 

Вопрос в следующем:

как из этого же скрипта после выполнения функции "ExecuteAVUpdate" узнать дату обновленных баз AVZ и вывести её пользователю?

 

Или хотя бы как из скрипта показать окно AVZ с версиями баз из меню "Справка"?

 

Или если варианты, описанные выше, недоступны, и придётся смотреть даты у файлов из папки AVZ\Base - эти даты будут совпадать с датами обновления баз?

 

Share this post


Link to post
Я так понимаю вопрос уже не актуален? :)

Ну почему же? Если есть что-то по существу вопроса - то актуален...

 

Share this post


Link to post
Ну почему же? Если есть что-то по существу вопроса - то актуален...

Боюсь, простых вариантов нет, по крайней мере, документированных. Теоретически, дата основной базы должна совпадать с датой файла обновлений, последнее - main029.avz, только скоро это будет уже main030.avz и т. д. Так что придётся искать самое новое обновление и определять его дату. Задача не совсем тривиальная, хотя и несложная.

Второй вариант, пришедший в голову, ещё более извращённый. :blink: Выполняете 2-й стандартный скрипт через ExecuteStdScr(2) и извлекаете из virusinfo_syscheck.xml дату обновления баз, она там в виде MainDBDate="ДД.ММ.ГГГГ".

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

Share this post


Link to post
Боюсь, простых вариантов нет, по крайней мере, документированных. Теоретически, дата основной базы должна совпадать с датой файла обновлений, последнее - main029.avz, только скоро это будет уже main030.avz и т. д. Так что придётся искать самое новое обновление и определять его дату. Задача не совсем тривиальная, хотя и несложная.

Второй вариант, пришедший в голову, ещё более извращённый. :blink: Выполняете 2-й стандартный скрипт через ExecuteStdScr(2) и извлекаете из virusinfo_syscheck.xml дату обновления баз, она там в виде MainDBDate="ДД.ММ.ГГГГ".

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

 

Первый вариант я и реализовал - но он как-то не надёжно выглядет, а вот за наводку на 2 вариант спасибо! Надо только подобрать для запуска такой скрипт, который работает минимальное время и формирует в своём выходном файле дату баз. Кроме 2-го скрипта какой ещё подходить может под эти условия?

 

P.S. Я так понял, Автор с virusinfo ушёл, этот форум - типа оффициальная поддержка, но видимо работа на Kaspersky Lab занимает слишком много времени, так что на AVZ нет времени...

 

Share this post


Link to post
Первый вариант я и реализовал - но он как-то не надёжно выглядет, а вот за наводку на 2 вариант спасибо! Надо только подобрать для запуска такой скрипт, который работает минимальное время и формирует в своём выходном файле дату баз. Кроме 2-го скрипта какой ещё подходить может под эти условия?

 

P.S. Я так понял, Автор с virusinfo ушёл, этот форум - типа оффициальная поддержка, но видимо работа на Kaspersky Lab занимает слишком много времени, так что на AVZ нет времени...

Я присутствую на огромном множестве форумов, причем не всегда "живьем" :) Но эту ветку отслеживают, и о вопросах я получу информацию, не факт только что немедленно ...

По поводу проблемы:

1. ExecuteAVUpdate вернет true, если базы успешно обновились. Какая дата апдейта, собствено не сильно важно - главное, что базы синхронизированы (базы выходят сейчас 2 раза в сутки - в 4 утра и 16 вечера, упор на обновление эвристики)

2. Если так критична дата, то есть 2 пути

- просканировать файлы в папке BASE и найти файла с максимальной датой - это и будет дата последнего апдейта (но не дата формирования базы)

- узнать дату от модуля исследования системы

begin
// Выполняем обновление
if ExecuteAvUpdate then begin
  // Обновились успешно. Выключим весь функционал и заставим AVZ загрузить базу
  SetupAVZ('ScanProcess=N');
  SetupAVZ('ScanSystem=N');
  SetupAVZ('ScanSystemIPU=N');
  SetupAVZ('RootKitDetect=N');
  SetupAVZ('KeyloggerSearch=N');
  SetupAVZ('CheckLSP=N');
  RunScan;
  // База заружена (ее подгружает RunScan). Выполним исследование системы с формированием базы р-тов в памяти
  ExecuteSysCheckEX('test.htm', 0, false, 8+16+32);
  // Открываем базу р-тов исследования в памяти
  if SC_INIT('') then begin
   // Открылась - ищем и читаем сведения о базе. 
   if SC_SelectNode('AVZ') then
    AddToLog('Дата обновления базы = '+SC_GetParamVal(-1, 'MainDBDate', ''));
   // Закроем базу - чтобы не расходовать ресурсы
   SC_FREE;
  end;
end else
  AddToLog('Базу обновить не удалось !!');
end.

Логика скрипта видна из комментариев

3. Если для чего-то важна дата, то получить ее можно без шаманства - я могу ввести в апдейт небольшой файлик, скажем db_info.ini с сведениями о базе (обновляться он бужет вместе с базой естественно). По формату он будет INI и оттуда скриптом можно будет читать данные.

Share this post


Link to post
- узнать дату от модуля исследования системы

 

3. Если для чего-то важна дата, то получить ее можно без шаманства - я могу ввести в апдейт небольшой файлик, скажем db_info.ini с сведениями о базе (обновляться он бужет вместе с базой естественно). По формату он будет INI и оттуда скриптом можно будет читать данные.

 

Спасибо за ответ, Олег! Этот скрипт - именно то, что нужно. Не зря я ждал почти полтора месяца ответ... А насчёт db_info.ini - если это не так сложно, то можно и сделать. Получится узнать дату обновления баз БЕЗ ЗАПУСКА AVZ - что иногда может быть нужно...

 

Share this post


Link to post
Спасибо за ответ, Олег! Этот скрипт - именно то, что нужно. Не зря я ждал почти полтора месяца ответ... А насчёт db_info.ini - если это не так сложно, то можно и сделать. Получится узнать дату обновления баз БЕЗ ЗАПУСКА AVZ - что иногда может быть нужно...

Готово. Необходимо запускать AVZ с ключиком ExtUpdates=Y в командной строке, или в скрипте перед обновлением посредством ExecuteAvUpdate вставить SetupAVZ(ExtUpdates=Y');. В такой ситуации кроме баз будет загружен и сохранен на диск в папке Base файл avzupd.zip. Это обычный ZIP архив, там внутри единственный файл file.dta, который по формату является XML файлом. В этом файле содержится описание всех файлов базы в открытом виде, по каждому файлу есть:

-имя файла

-размер

-MD5

-дата сборки

-количество записей

В корневом теге AVZ указана дата сборки апдейта в целом.

 

Share this post


Link to post
Готово. Необходимо запускать AVZ с ключиком ExtUpdates=Y в командной строке, или в скрипте перед обновлением посредством ExecuteAvUpdate вставить SetupAVZ(ExtUpdates=Y');. В такой ситуации кроме баз будет загружен и сохранен на диск в папке Base файл avzupd.zip ...

 

Олег, эта функция будет доступна в новой версии AVZ или добавится после стандартного обновления через ExecuteAvUpdate() текущей версии 4.37 ???

 

Share this post


Link to post
Олег, эта функция будет доступна в новой версии AVZ или добавится после стандартного обновления через ExecuteAvUpdate() текущей версии 4.37 ???

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

Share this post


Link to post
Это станет доступно после стандартного обновления (параметр командной строки поддерживается сейчас, а файл с расширенным описанием баз загрузится в ходе апдейта)

Олег, спасибо за внимание к вопросу. Можно надеяться на добавление функции, которая без лишних хлопот возвращала бы дату обновления? Иногда это нужно.

И ещё вопрос: есть у нас avzupd.zip, а как, не используя внешние программы, скрипты и т. п. распаковать архив средствами AVZ?

Share this post


Link to post
Олег, спасибо за внимание к вопросу. Можно надеяться на добавление функции, которая без лишних хлопот возвращала бы дату обновления? Иногда это нужно.

И ещё вопрос: есть у нас avzupd.zip, а как, не используя внешние программы, скрипты и т. п. распаковать архив средствами AVZ?

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

Share this post


Link to post
В новой версии появится архивация и разархивация произвольных файлов, плюс будет функция запроса информации о базах

Отлично, ждём.

 

Share this post


Link to post

Доброго времени суток.

Насколько вредно использовать изначально имеющийся ZIP архиватор в Windows ?.

Пока командную строку никто не отменял.

С уважением к читателям.

Share this post


Link to post

×
×
  • Create New...

Important Information

We use cookies to make your experience of our websites better. By using and further navigating this website you accept this. Detailed information about the use of cookies on this website is available by clicking on more information.