亚拉规则-正则表达式-匹配通配符

时间:2019-10-18 23:50:57

标签: regex yara

正则表达式对我来说一直是一个黑匣子。

我认为我需要使用一些正则表达式来编写以下一些yara规则。 Yara规则使用正则表达式来匹配恶意软件中特定二进制文件的执行。知道这一点对于回答这个问题不是必需的,只需使用正则表达式即可。

我掌握了一些基本规则,例如检测以下程序:

    C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\cdb.exe
    C:\Program Files (x86)\Windows Kits\10\Debuggers\x86\cdb.exe

遵循以下规则

    cuckoo.filesystem.file_access(/C\:\\Program\ Files\ \(x86\)\\Windows\ Kits\\10\\Debuggers\\x64\\cdb.exe/) or
    cuckoo.filesystem.file_access(/C\:\\Program\ Files\ \(x86\)\\Windows\ Kits\\10\\Debuggers\\x86\\cdb.exe/) or

但是,如果我尝试检测以下二进制文件的执行,则该文件是与C:\ Program Files \或C:\ Program Files \ Microsoft Office开头并以excel.exe结尾的模式匹配的任何文件

类似以下内容?

    cuckoo.filesystem.file_access(/C\:\\*\\Excel.exe/) or

需要检测的是dnx.exe,也许这样可以工作:

    cuckoo.filesystem.file_access(/C\:\\*\\dnx.exe/) or

还需要检测以下内容:

    C:\Program Files\Microsoft Office\root\client\appvlp.exe

root用户可以是任何特定用户,理想情况下可以用通配符代替。

1 个答案:

答案 0 :(得分:1)

阅读Yara source似乎证明了它本身是正则表达式的味道。仅支持基本构造:

  • 替代($('form').on('submit',function(event){ event.preventDefault(); var form = event.currentTarget; $.ajax( { url : $(form).attr('action'), type: 'post', data: $(form).serialize() } ).done( function(html) { $( ".form-message" ).append( html ); } ); });
  • 串联
  • 重复(|**?++????,{{1 }},{digit*,digit*}
  • 边界({digit*,digit*}?{digit+}\b\B
  • 分组(^$
  • 字符类(().\w\W\s\S,{{ 1}},\d
  • 十六进制逃脱(\D
  • 正常转义([...] +任何特殊字符)
  • 其他任何文字或非法内容

在表达式结束后,它还支持正则表达式标志[^...]\xHH。 (\

有关不同结构的说明,请参见Regular Expressions Quick Reference。请记住,Yara仅支持上面列出的那些。


要回答此问题,以匹配is下的/.../is或任何子目录,可以使用以下方法:

Excel.exe
  • C:\Program FilesC:\Program Files\Microsoft Office在那里将模式锚定到目标字符串的开始和结束。如果模式不匹配,可以尝试删除它们。
  • cuckoo.filesystem.file_access(/^C:\\Program Files\\(Microsoft Office\\)?(.*\\)?Excel\.exe$/i) 是多余的,因为^将匹配$下的任何子目录。我包括了它以匹配问题。
  • (Microsoft Office\\)?匹配以反斜杠((.*\\)?)结尾的任何内容,包括更多的反斜杠。我将其设为可选,以允许直接位于C:\Program Files下的文件匹配。
  • 点((.*\\)?)必须转义(\)才能匹配文字点,因为它被认为是特殊字符。
  • 最后的C:\Program Files使模式不区分大小写,以与Windows比较文件名的方式保持一致。

要匹配.下任何地方的\.,您可以使用以下方法:

/i

要匹配dnx.exe下任何目录中的所有三个二进制文件:

C:\