Сортировка команд в скрипте AVZ по рекомендуемому шаблону

Сортировка команд в скрипте AVZ по рекомендуемому шаблону 2018-10-04

Исправлена ошибка:
если в файле настроек параметр SyntaxCheck был задан, как SyntaxCheck = 0, то не удавалось оформить скрипт на базе одного из подходящих профилей для форума (подробнее, о файлах профилей редактора AVZ и их использованию см. в справке к программе в разделе Параметры командной строки).
Небольшие изменения:
Утилита может обрабатывать только простые скрипты. Скрипты с дополнительными условиями:
if
then
begin
....
end;

являются сложными для обработки и не будут отсортированы по шаблону. Но для конструкции:
if not IsWOW64
then
begin
SearchRootkit(true, true);
SetAVZGuardStatus(True);
end;

добавлено исключение. Теперь скрипты с такой конструкцией будут обрабатываться правильно.

Исправление ошибок:
1. Исправлена ошибка, когда при наличии в скрипте команды: ShowMessage('Внимание! Перед выполнением скрипта AVZ автоматически закроет все сетевые подключения.'+#13#10+'После перезагрузки компьютера подключения к сети будут восстановлены в автоматическом режиме.');, она располагалась ниже функции - ExecuteFile('net.exe', 'stop tcpip /y', 0, 15000, true);.
2. Исправлена ошибка с неверной сортировкой команд ExecuteRepair(...); при наличии в скрипте (напр. команда ExecuteRepair(16); располагалась выше команды ExecuteRepair(2);).
3. Исправлена ошибка, при которой в шаблон в некоторых случаях нельзя было добавить какую-то команду в определённое место. Например, добавление команды ExecuteFile('ipconfig', '/flushdns', 0, 10000, true), приводило к ошибкам во время обработки скрипта из за наличия в шаблоне команды ExecuteFile.
Мы с regist сделали необходимые исправления и усовершенствования:
  • Добавлена сортировка по используемым путям в командах одной категории, а также дополнительная сортировка по цифрам, если в путях содержатся цифровые индексы.
  • Исправлена ошибка при обработке в скрипте некоторых команд (ClearQuarantineEx, QuarantineFileF и др.похожих), которые неправильно обрабатывались из за сходства с командами из шаблона, имена которых входят в их названия (ClearQuarantine, QuarantineFile и др.похожих).
  • Были проведены некоторые изменения для работы с новой версией редактором скриптов AVZ, в котором проверка скрипта другими утилитами стала проще. В связи с этим, для работы с утилитой ScriptPoShablonu теперь требуется наличие последней версии редактора скриптов AVZ.
  • В файле настроек Settings.ini появился новый параметр CountdownInMsg=false. Если значение будет true, то на кнопке в окне сообщения будет отображен обратный отсчёт, информирующий сколько времени (в сек.) осталось до автоматического закрытия окна.
  • В файле настроек Settings.ini появился новый параметр Open_editor=true. Если значение будет true и в настройках, в параметре SyntaxCheck=true также будет разрешена проверка скрипта на ошибки в редакторе скриптов AVZ, то при обнаружении ошибки в скрипте, по умолчанию, после автоматического закрытия информационного сообщения об ошибке в скрипте, будет запущен редактор скриптов AVZ с переданным ему скриптом для исправления.
  • В файле настроек Settings.ini появился новый параметр ShowMissedCommands = True. Если значение будет true, то при наличии в скрипте проигнорированных команд, не прошедших обработку по шаблону, будет отображено сообщение с предупреждением об этом.
  • При наличии в скрипте функции на отключение сети - ExecuteFile('net.exe', 'stop tcpip /y', 0, 15000, true);, после обработки данная команда теперь будет располагаться вначале скрипта. Исключением будет, когда эта команда будет добавляться через БЛОК команд в секции [AddFunctions], тогда она будет добавлена на указанное пользователем место в шаблоне (подробнее о блоке команд смотрите в описании файла Shablon.txt).
Прочие мелкие изменения в версии 1.5 описаны в справке, которая также была немного переработана для более удобного чтения и понимания.
В связи с тем что некоторым антивирусным утилитам не нравятся программы написанные на Autoit и упакованные при компиляции, упаковка Upx - ом не производилась, в связи с чем программа немножко "прибавила в весе".
Изменения в версии 1.4
После обработки программой теперь в функциях автоматически добавляются пробелы между параметрами (после запятых, разделяющих параметры).

До обработки программой:
begin
DeleteFile('C:\test\test.exe','32');
end.


После обработки (в данном случае параметры разделены не просто запятой, а запятой с пробелом, это сделано, как для лучшего визуального восприятия, так и для избежания возможных проблем, когда две вроде бы похожие команды в скрипте считались разными, если в одной записи присутствовал пробел в описанном выше месте):
begin
DeleteFile('C:\test\test.exe','32');
end.
Сверху Снизу