работаем с YARA

YARA - это многоплатформенная программа, работающая в Windows, Linux и Mac OS X. Вы можете найти последнюю версию на https://github.com/VirusTotal/yara/releases.

Правила YARA просты в написании и понимании, и у них есть синтаксис, похожий на язык C. Вот самое простое правило, которое вы можете написать для YARA, который абсолютно ничего не делает:
rule dummy
{
    condition:
       false
}

Каждое правило в YARA начинается с правила ключевого слова, за которым следует идентификатор правила. Идентификаторы должны следовать тем же лексическим соглашениям языка программирования C, они могут содержать любой буквенно-цифровой символ и символ подчеркивания, но первый символ не может быть цифрой. Идентификаторы правил чувствительны к регистру и не могут превышать 128 символов. Следующие ключевые слова зарезервированы и не могут использоваться в качестве идентификатора:

rme5h276fo4k.jpg

Правила обычно состоят из двух разделов: определение и условие строк. Раздел определения строк может быть опущен, если правило не полагается на какую-либо строку, но всегда требуется раздел условия. Раздел определения строк - это то, где определены строки, которые будут частью правила. Каждая строка имеет идентификатор, состоящий из символа $, за которым следует последовательность буквенно-цифровых символов и подчеркиваний, эти идентификаторы могут использоваться в разделе условия для ссылки на соответствующую строку. Строки могут быть определены в текстовой или шестнадцатеричной форме, как показано в следующем примере:
rule ExampleRule
{
    strings:
        $my_text_string = "text here"
        $my_hex_string = { E2 34 A1 C8 23 FB }

    condition:
        $my_text_string or $my_hex_string
}

Текстовые строки заключены в двойные кавычки, как на языке C. Шестнадцатеричные строки заключены в фигурные скобки, и они состоят из последовательности шестнадцатеричных чисел, которые могут появляться смежно или разделены пробелами. Десятичные числа не допускаются в шестнадцатеричных строках.

Раздел условия содержит логику правила. Этот раздел должен содержать логическое выражение, указывающее, при каких обстоятельствах файл или процесс удовлетворяет правилу или нет. Как правило, условие будет ссылаться на ранее определенные строки, используя их идентификаторы. В этом контексте строковый идентификатор действует как логическая переменная, которая вычисляет значение true, если строка была найдена в файле или в памяти процесса, или false, если в противном случае.

http://yara.readthedocs.io/en/latest/index.html
Мы ищем точки опоры не с целью перевернуть мир, но чтобы не позволить миру опрокинуть нас.
Тэги темы:
Войдите или Зарегистрируйтесь чтобы комментировать.