Zaitsev Oleg

KL Russia
  • Content count

    371
  • Joined

  • Last visited

About Zaitsev Oleg

  • Rank
    Developer

Contact Methods

  • E-mail
    0

Profile Information

  • Gender
    Male
  • Location
    Smolensk
  1. Есть подозрение, что я нашел причину (нашелся один ПК, на котором можно было ставить опыты и при этом проблема стабильно воспроизводилась). Оказалось, что на диске, обычно в папке USERS, могут лежать JAR архивы, содержащие внутри имена файлов длиннее 255 символов (т.е. длиннее, чем задано стандартной переменной MAX_PATH). В общем-то это не запрещено, хотя и бессмысленно... так вот в распаковщике архивов AVZ это приводило к глюку. Я подправил код, на следующей неделе обновлю версию AVZ. А пока для поверки гипотезы стоит просто выключить "птичку" проверять архивы в настройке сканирования. Если глюк пропадет, то проблема именно в этом.
  2. Указанная информация из отчета предназначена для технических специалистов. В случае надобности это исправляется скриптом или вручную, устранение через GUI AVZ для этой ситуации не предусмотрено. Причина - для каждой из указанных настроек есть и определенная польза с плане повышения защищенности, и определенный вред, в плане блокирования некоего функционала типа того-же планировщика, через который решается масса полезных задач... решение должно приниматься на основании оценки версии ОС, характера ее использования, наличия антивируса и т.п. Исключение из перечисленного - автозапуск, который может быть блокирован мастером поиска и устранения проблем AVZ.
  3. У меня есть много жалоб от пользователей Avast, есть подозрение, что имеет место какая-то несовместимость. Вопрос - это происходит при исследовании системы, или именно при сканировании папок на диске ?
  4. По поводу добавления функции я подумаю, но значимого смысла ее добавлять может и нет, так как проверку можно легко сделать в скрипте: // Возврашает true при условии, что AVZ запущен из терминальной //сессии function IsTermSession : boolean; var stSessionName : string; begin Result := false; stSessionName := Trim(UpperCase(GetEnvironmentVariable('SESSIONNAME'))); if (stSessionName = '') or (stSessionName = 'CONSOLE') then exit; Result := true; end; begin AddToLog('SESSIONNAME=' + GetEnvironmentVariable('SESSIONNAME')); if IsTermSession then AddToLog('IsTermSession=true') else AddToLog('IsTermSession=false') end. Примерно так устроена проверка в AVZ при выводе в лог. Для обычного режима запуска SESSIONNAME содержит или пустое значение, или CONSOLE. А вот для терминальной сессии там что-то типа RDP-xxxxx, что позволяет легко определять режим
  5. Добавил. Называться пункт будет "Проводник - включить отображение расширений для файлов известных системе типов", появляется в указанном на скриншоте меню по необходимости - если на ПК отображение расширений известных типов выключено, то данный пункт будет в меню, если включено - он будет отсутствовать. Данная доработка доступна через обновляемые базы.
  6. Добрый день ! Такое поведение сделано нарочно. Логика в том, что если потом файл удаляется, то необходимо автоматически чистить реестр. Если "развернуть" путь, а в реестре он будет в виде 8.3, то тогда файл удалится, но авто-чистка реестра не сработает. Именно поэтому в лог пишется тот путь, под которым файл выловлен анализом реестра, служб и т.п., и он пишется в лог. Если взять стационарный анализатор логов и карантинов (VirusDetector и т.п.), то там отправной точкой группировки является MD5/SHA1 файла. Из того, что можно, и быть может несложно сделать - можно добавить еще один параметр - полное нормализованное имя файла (приведенное к одному регистру символов, "развернутое" в полный путь и т.п.).
  7. Я примерно так и думал ... команда "Стоп" тормозит работу скрипта, но работа большинства операций не прерывается немедленно (исключение - поиск файлов или скажем их удаление по маске). Т.е. текущая команда отработает, на следующей пройдет формирование ошибки и останов. На MessageDLG как оказалось признака проверки "Стоп" нет - вот она и отрабатывала (такое когда-то было сделано для отладки). На AddLineToTxtFile и Addtolog такая проврка есть - они видят, что прошла команда немедленно завершить работу скрипта, и выполняют ее - работа скрипта прерывается на первой из них. Кроме прерывания работы формируется ошибка EAbort, которую можно поймать секцией except, но толку от нее нет, так как скрипт уже остановлен. Я подумаю, как это лучше сделать ... один из вариантов - не тормозить столь жестким образом работу скрипта при условии, что в нем есть секции except - ограничиться только формированием исключения EAbort (логика - если есть секция except - попадем в нее, если нет - прервем работу скрипта). Другой путь - выделить операции логгирования в отдельную категорию и разрешить им сработать даже при остановке скрипта. Т.е. тогда получится так - AddLineToTxtFile, Addtolog, ShowMessage будут работать, остальные операции - нет. Ну и самый красивый путь - сделать настройку (по дефолту немедленный стоп, как сейчас, а опционально - только исключение EAbort и не более того)
  8. 1. Следует использовать ShowMessage('Exception, Class='+ExceptionClassName+', message='+ExceptionMessage); - тогда можно понять, какое именно исключение произошло в указанной ситуации и предположить, в чем дело. Ветка Excetion сработает, если в ходе работы скрипта возникнет исключение, тогда как прерывание скрипта исключение не обязано формировать 2-3. Я попробую воспроизвести такое поведение. В общем случае AVZ на таких условиях не тестировался, обычно скрипты работают при заблокированном интерфейсе и их нельзя прервать (в данном случае тем более получается вызов одного скрипта из другого)
  9. А при запуске кнопкой Run не падает ?
  10. Странно, у меня на последних сборках все работает. Для локализации поможет avz.exe debug=y SpoolLog=log.txt - тогда в файл log.txt запишется протокол работы вплоть до падения.
  11. А это по факту одна и та-же ошибка ... я обновил архив с AVZ на сайте, можно пробовать - в теории ошибка исправлена и все должно работать.
  12. Дампы не нужны - после установки обновления проблема воспроизводится. На штатном месте лежит обновленный AVZ, который должен без проблем работать на обновленной Win10
  13. Есть такой глюк, падает на начальной стадии работы антируткита. Возникло после обновления Win10, исправленная версия AVZ выйдет после выходных.
  14. Проблема на самом деле в том, что на x64 системах некоторые папки существуют в двух экземплярах - x32 приложения видят один, x64 - другой. Это может приводить к ситуации, когда одна программа видит одно содержимое папки, а другая - иное. Такой эффект возникает за счет работы так называемого редиректора, которым можно управлять. В скриптах AVZ это достигается при помощи параметра X64R: SetupAVZ('X64R=NN'); SearchFiles('C:\Windows\System32\config\systemprofile\AppData\Roaming\', '*', Lines, true, false); и SetupAVZ('X64R=YY'); SearchFiles('C:\Windows\System32\config\systemprofile\AppData\Roaming\', '*', Lines, true, false);
  15. При сравнении списков необходимо учитывать, что AVZ показывает "снимок" процессов на заданный момент, тогда как диспетчер процессов показывает процессы в реальном времени. Для сравнения нужно поставить сортировку по PID в AVZ и выбранном диспетчере процессов, а затем синхронно обновить их, сохранить и сравнить отчеты.