Вредоносность бат-скриптов (batch-язык, bat-файлы с расширением .bat) заключается в следующем:
- возможна модификация реестра
- -//- файлов
, за примерами подобного говнеца ходить далеко не нужно, https://vk.com/topic-86450324_33107504
АВ не умеет это эмулировать.
(?предполагаю)хуже того, выполнение происходит от доверенного cmd.exe, которому можно многое.
По первому пункту, это добавление чего-либо в автозагрузку, изменение файлассоциаций, отключение редактора реестра или task manager'а.
По второму, тупо удаление, переименовывание (реже) файлов, часто - извлечение (создание) еще одного файла для его запуска, например vbs/js-скрипта.
В продвинутых версиях используется обфускация - это когда для команд или частей команд создаются алиасы, через которые затем исполняется задуманное.
Нас интересует, как это ловить, интерпретируя батник самостоятельно.
И, как в примере с feed the bird, я все же прихожу к выводу, что нет смысла реагировать на отдельные команды, потому что способов сделать гадость (модификацию файлов и/или реестра) множество. Т.о., требуется, по возможности, имитировать выполнение, и по завершению работы, смотреть изменения среды.
Сложности добавляет то, что бат-файл может являться частью другого файла, напр. EXE, речь идет о видоизмененном EXE. Который будучи переименован в EXE, работает как экзешник, а если его переименовать в BAT, то работает как батник.
Сейчас я не хочу забивать себе голову таким.
( батник, который при запуске запускает себя еще раз как EXE )
(подсказка - после MZ идут байты 0D,0A. кроме того, есть ограничение на размер, несколько Кб)
---
По возможности мы производим действия в реальной системе в режиме только-чтение (напр. батник запрашивает через if exist существование какого-либо файла), но если производятся пакостные действия, совершаем их "понарошку", отмечая у себя в записях о произведенных изменениях.
Надо иметь ввиду, что команды могут претерпевать игрища с заглавными буквами (if exist может быть и iF EXiST, и If exiST).
( Надо иметь ввиду, что возможно переименование файлов для совершения определенных действий. )
---
Извращений может быть много. Но мы будем двигаться от простого к сложному.
Язык программирования - Си.
/ akrobat - название модуля для проверки батников.
- возможна модификация реестра
- -//- файлов
, за примерами подобного говнеца ходить далеко не нужно, https://vk.com/topic-86450324_33107504
АВ не умеет это эмулировать.
(?предполагаю)хуже того, выполнение происходит от доверенного cmd.exe, которому можно многое.
По первому пункту, это добавление чего-либо в автозагрузку, изменение файлассоциаций, отключение редактора реестра или task manager'а.
По второму, тупо удаление, переименовывание (реже) файлов, часто - извлечение (создание) еще одного файла для его запуска, например vbs/js-скрипта.
В продвинутых версиях используется обфускация - это когда для команд или частей команд создаются алиасы, через которые затем исполняется задуманное.
Нас интересует, как это ловить, интерпретируя батник самостоятельно.
И, как в примере с feed the bird, я все же прихожу к выводу, что нет смысла реагировать на отдельные команды, потому что способов сделать гадость (модификацию файлов и/или реестра) множество. Т.о., требуется, по возможности, имитировать выполнение, и по завершению работы, смотреть изменения среды.
Сложности добавляет то, что бат-файл может являться частью другого файла, напр. EXE, речь идет о видоизмененном EXE. Который будучи переименован в EXE, работает как экзешник, а если его переименовать в BAT, то работает как батник.
Сейчас я не хочу забивать себе голову таким.
( батник, который при запуске запускает себя еще раз как EXE )
(подсказка - после MZ идут байты 0D,0A. кроме того, есть ограничение на размер, несколько Кб)
---
По возможности мы производим действия в реальной системе в режиме только-чтение (напр. батник запрашивает через if exist существование какого-либо файла), но если производятся пакостные действия, совершаем их "понарошку", отмечая у себя в записях о произведенных изменениях.
Надо иметь ввиду, что команды могут претерпевать игрища с заглавными буквами (if exist может быть и iF EXiST, и If exiST).
( Надо иметь ввиду, что возможно переименование файлов для совершения определенных действий. )
---
Извращений может быть много. Но мы будем двигаться от простого к сложному.
Язык программирования - Си.
/ akrobat - название модуля для проверки батников.