Правило Yara - Regex - синтаксическая ошибка: неожиданная ')' - PullRequest
0 голосов
/ 30 октября 2019

Этот ответ здесь - https://stackoverflow.com/posts/58483988/revisions (определенно стоит прочитать, чтобы понять правила якобы регулярного выражения для yara) - похоже, работает примерно для 20 из указанных двоичных файлов, которые я ищу, таких как:

cuckoo.filesystem.file_access(/^C:\\(.*\\)?dnx\.exe$/i) or
cuckoo.filesystem.file_access(/C\:\\WINDOWS\\system32\\Dxcap.exe/) or
cuckoo.filesystem.file_access(/C\:\\WINDOWS\\system32\\dxcap.exe/) or
cuckoo.filesystem.file_access(/^C:\\Program Files\\(Microsoft Office\\)?(.*\\)?Excel\.exe$/i) or
cuckoo.filesystem.file_access(/^C:\\Program Files\\(Microsoft Office\\)?(.*\\)?EXCEL\.exe$/i) or
cuckoo.filesystem.file_access(/^C:\\Program Files\\(Microsoft Office\\)?(.*\\)?excel\.exe$/i) or
cuckoo.filesystem.file_access(/^C:\\Program Files (x86)\\(Microsoft Office\\)?(.*\\)?Excel\.exe$/i) or
cuckoo.filesystem.file_access(/^C:\\Program Files (x86)\\(Microsoft Office\\)?(.*\\)?EXCEL\.exe$/i) or
cuckoo.filesystem.file_access(/^C:\\Program Files (x86)\\(Microsoft Office\\)?(.*\\)?excel\.exe$/i) or

Однако, по-видимому, возникают ошибки со следующей строкой:

cuckoo.filesystem.file_access(/^C:\\Program Files (x86)\\)?(.*\\)?mftrace\.exe$/i) or

ошибка: синтаксическая ошибка строки 28: неожиданная ')'

Строки 27, 28 и29:

cuckoo.filesystem.file_access(/^C:\\Program Files (x86)\\(Microsoft Office\\)?(.*\\)?excel\.exe$/i) or
cuckoo.filesystem.file_access(/^C:\\Program Files (x86)\\)?(.*\\)?mftrace\.exe$/i) or
cuckoo.filesystem.file_access(/^C:\\Program Files\\)?(.*\\)?mftrace\.exe$/i) or

Какую ошибку я совершаю с правилами yara.

Для сопоставления со следующими каталогами:

C:\Program Files (x86)\ * \ mftrace.exe

Где звездочка обозначает практически любого посредникапуть между программными файлами (x86) и mftrace.exe

1 Ответ

1 голос
/ 30 октября 2019

Похоже, у вас есть лишняя правая скобка прямо здесь, в строке 28:

cuckoo.filesystem.file_access(/^C:\\Program Files (x86)\\)?(.*\\)?mftrace\.exe$/i)
                                                         ^

Еще одна почти в том же месте в следующей строке.

Кроме того, вывероятно, вы хотите избежать других круглых скобок в вашем шаблоне, которые следует рассматривать как литералы (например, с (x86)).

...