AVZ LNK Script Helper

Тема в разделе "Наши разработки", создана пользователем Dragokas, 17 сен 2014.

  1. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.478
    Симпатии:
    4.306
    Привет !

    Набросал прогу для составления скрипта AVZ:
    - парсинг лога (неважно какого).
    - создает команды для карантина / удаления файлов со скриптовыми расширениями.
    - карантин ярлыков (на будущее, если понадобятся образцы).
    - умеет исправлять и сводить воедино симлинки.

    Предупрежу: не будет вытягивать файлы с относительным (или неполным) путем.
    + пока не умеет подставлять аргумент '64', если файл находится в папке Windows.

    Скрипт на выходе примерно такой:
    Код (Pascal):

    begin
      ShowMessage('Внимание! Перед выполнением скрипта AVZ автоматически закроет все сетевые подключения.' + #13#10 + 'После перезагрузки компьютера подключения к сети будут восстановлены в автоматическом режиме.');
      ExecuteFile('net.exe', 'stop tcpip /y', 0, 15000, true);
      if not IsWOW64
       then
        begin
         SearchRootkit(true, true);
         SetAVZGuardStatus(True);
        end;
      QuarantineFile('C:\Users\Public\Desktop\Google Chrome.lnk','');
      QuarantineFile('C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Google Chrome\Google Chrome.lnk','');
      QuarantineFile('C:\Users\Сергей\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\Google Chrome.lnk','');
      QuarantineFile('C:\Users\Сергей\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\Launch Internet Explorer Browser.lnk','');
      QuarantineFile('C:\Users\Сергей\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\Google Chrome.lnk','');
      QuarantineFile('C:\Users\Сергей\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\Opera.lnk','');
      QuarantineFile('C:\Users\Сергей\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessories\System Tools\Internet Explorer (No Add-ons).lnk','');
      QuarantineFile('C:\Users\Сергей\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Internet Explorer.lnk','');
      QuarantineFile('C:\Users\Сергей\Desktop\Internet Explorer (64-bit).lnk','');
      QuarantineFile('C:\Users\Сергей\AppData\Local\Yandex\yapin\Yandex.lnk','');
      QuarantineFile('C:\Users\Сергей\AppData\Roaming\Microsoft\Office\Последние файлы\YandexDisk.LNK','');
      QuarantineFile('C:\Users\Сергей\AppData\Local\Application Data\Yandex\yapin\Yandex.lnk','');
      QuarantineFile('C:\Users\Сергей\AppData\Roaming\Microsoft\Windows\Recent\YandexDisk.lnk','');
      QuarantineFile('C:\Program Files (x86)\Google\chrome.bat','');
      QuarantineFile('C:\iexplore.bat','');
      QuarantineFile('C:\launcher.bat','');
      DeleteFile('C:\Program Files (x86)\Google\chrome.bat','');
      DeleteFile('C:\iexplore.bat','');
      DeleteFile('C:\launcher.bat','');
      BC_ImportAll;
      ExecuteSysClean;
      BC_Activate;
      RebootWindows(false);
    end.

    Постоянная ссылка на программу - http://Dragokas.16mb.com/Safe/AVZ_LNK_Script_Helper.zip

    Способ использования:
    Перетянуть лог на файл или окно программы, или скопировать лог в ее окно.
     
    Последнее редактирование: 21 сен 2014
    ScriptMakeR, -SEM-, Drongo и 2 другим нравится это.
  2. грум
    Оффлайн

    грум Команда форума Преподаватель Модератор

    Сообщения:
    2.874
    Симпатии:
    1.535
    Осмелюсь спросить, а какой лог надо скопировать в окошко?
    От какой программы?
     
  3. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.478
    Симпатии:
    4.306
    Абсолютно любой: FixerBro, FixerBroLog и CheckBrowserLNK (та что в составе AutoLogger), MBAM, AdwCleaner...
    Любой, откуда нужно автоматически подставить файлы со скриптовыми расширениями в команды AVZ. + LNK.
     
    Drongo нравится это.
  4. regist
    Оффлайн

    regist гоняюсь за туманом Ассоциация VN/VIP VIP Разработчик

    Сообщения:
    11.382
    Симпатии:
    5.268
    :Rofl: А ты думаешь сам AVZ это умеет?
    --- Объединённое сообщение, 17 сен 2014 ---
    можно чтобы эту часть не добавлял?
     
    Последнее редактирование: 17 сен 2014
  5. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.478
    Симпатии:
    4.306
    :)
    Можно.
    Что делать, если файл имеет юникодное имя? (такие символы обычно при переносе выглядят как знаки "?").
    Могу добавить команды DeleteFileMask и QuarantineFileF.

    Сам мой утиль юникодный лог понимает. А вот AVZ полагаю, что нет.
     
  6. regist
    Оффлайн

    regist гоняюсь за туманом Ассоциация VN/VIP VIP Разработчик

    Сообщения:
    11.382
    Симпатии:
    5.268
    если это касается карантина ярлыков, то имхо можно их просто не добавлять.
    правильно полагаешь.
     
  7. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.478
    Симпатии:
    4.306
    Убрал.
    x64 добавил, но потом отключил. Нужно однозначно быть уверенным, лог какой системы анализируется. Сделаю позже.
    Если на x32-разрядной системе выставить в команде AVZ флаг '64', команда пройдет неудачно.
     
  8. regist
    Оффлайн

    regist гоняюсь за туманом Ассоциация VN/VIP VIP Разработчик

    Сообщения:
    11.382
    Симпатии:
    5.268
    Dragokas, если ты ещё не в курсе, то открою секрет. Олег всегда для карантина и удаления всех файлов ставит флаг 32 не зависимо от того системе какой рязрядности сделан лог и в какой папке лежит файл. Исключение нормально флаг ставится только для тасков. PS. речь идёт о генерации скрипта через логи AVZ.
    PPS. в итоге новая версия парсера логов AVZ поступает также. Теперь его скрипты практически не отличаются от скриптов написанных через кнопки в логе.
    --- Объединённое сообщение, 17 сен 2014 ---
    ppps. но в твоём случае в случае с ярлыками я думаю флаг вообще лишний.
     
    Drongo нравится это.
  9. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.478
    Симпатии:
    4.306
    Да, я в курсе.
    Я веду речь, что консультант потом в обязательном порядке должен
    добавить аргумент '64', если видит, что система x64, и что файл находится в %SystemRoot%\System32,
    кроме случаев, описанных в этой статье, (в x64-битной системе для этих папок-исключений можно указывать как '32', так и '64' (хотя это будет ошибкой)).
     
  10. regist
    Оффлайн

    regist гоняюсь за туманом Ассоциация VN/VIP VIP Разработчик

    Сообщения:
    11.382
    Симпатии:
    5.268
    В теории AVZ сам должен включить или отключить редирект (если флаг не указан). А на практике этот флаг появился после того как я обнаружил, что задания можно удалить только принудильно скриптовой командой отключив редирект. В итоге AVZ этот флаг и вставляет правильно только для заданий :(. Разумеется проблемы с карантином и других файлов есть, просто тогда была эпидемия вирусов, где надо было удалять задания. Так что на них этот баг особенно наглядно был виден. Тема с обсуждением этого находится на форуме ЛК.
     
  11. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.478
    Симпатии:
    4.306
    На практике, если не указать этот флаг в условиях, о которых я сказал,
    то файл не будет удален / не попадет в карантин.

    То же самое касается реестра, но там делается совершенно по-другому.
     
    Kиpилл нравится это.
  12. regist
    Оффлайн

    regist гоняюсь за туманом Ассоциация VN/VIP VIP Разработчик

    Сообщения:
    11.382
    Симпатии:
    5.268
    Просьба сменить иконку и добавить кнопку вставить из буфера.
     
  13. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.478
    Симпатии:
    4.306
    Обновил, заодно убрал команды BC, когда в логе кроме ярлыков и батников, больше ничего нет.
     
    Последнее редактирование: 18 сен 2014
  14. regist
    Оффлайн

    regist гоняюсь за туманом Ассоциация VN/VIP VIP Разработчик

    Сообщения:
    11.382
    Симпатии:
    5.268
    Ещё бы добавлять в конце команду
    Код (Text):
    CreateQurantineArchive(GetAVZDirectory+'quarantine.zip');
     
  15. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.478
    Симпатии:
    4.306
    Обновил + добавил кнопачек "Вставка из буфера".
     
  16. Drongo
    Оффлайн

    Drongo Ассоциация VN/VIP Разработчик

    Сообщения:
    7.902
    Симпатии:
    8.221
    Самое интересное здесь то, что параметр Is64 в логе XML отображают правильно 1 - 64, 0 - 32, но в логе HTM генерится как уже сказал регист банальной вставкой значения 32 не зависимо от файла. Исключение составляет .job, причём для них в XML нет параметра Is64.
     
  17. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.478
    Симпатии:
    4.306
    Вот я только что проверил.
    Если вставить команду QuarantineFile, то ей неважно какой флаг 32 или 64. Карантинит в любом случае.
    А вот DeleteFile более щепетильна. Видимо сделано специально, чтобы случайно не удалить одноименный файл в соседней ветке,
    т.к. вирье чаще 32-битное.
     
  18. regist
    Оффлайн

    regist гоняюсь за туманом Ассоциация VN/VIP VIP Разработчик

    Сообщения:
    11.382
    Симпатии:
    5.268
    там вообще целый алгоритм поиска файла, где-то тут писал подробней. Возможно в чей-то практике.
     
  19. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.478
    Симпатии:
    4.306
    Обновлено до 1.7.
    Лог теперь в юникодном формате.
    Расширение лога изменено на .pas (для поддержки подсветки). Будет открываться программой, ассоциированной с .txt

    Avira убрала детект на старую версию программы.
    Новые версии с другими опциями компиляции больше не вызывают подозрений.
     
  20. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.478
    Симпатии:
    4.306
    Обновлено до 1.8.
    Лог снова в формате ANSI (для совместимости с форумными движками и оконными интерфейсами других AV-утилит).
    Автоматическое распознание входного формата файла (юникод или нет).
     

Поделиться этой страницей