对我来说,Regex一直是个黑匣子。
我认为我需要使用一些正则表达式来编写以下的yara规则。Yara规则使用regex来匹配恶意软件中特定二进制文件的执行。要回答这个问题,不需要了解这一点,只是因为他们使用regex。
我已经制定了一些基本规则,例如检测以下程序:
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 \或C:\Program \Microsoft并以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其中根用户可能是任何特定用户,理想情况下将被通配符替换。
发布于 2019-10-21 10:04:15
阅读Yara源,它似乎有了自己的regex风格。只支持基本结构:
|)*,*?,+,+?,?,??,{digit*,digit*},{digit*,digit*}?,{digit+})\b,\B,^,$)(,)).、\w、\W、\s、\S、\d、\D、[...]、[^...])\xHH)\ +任何特殊字符)它还支持表达式结束后的regex标志i和s。(/.../is)
有关不同结构的说明,请参见正则表达式快速引用。记住,只有上面列出的是由Yara支持的。
要回答这个问题,要匹配Excel.exe在C:\Program Files或C:\Program Files\Microsoft Office或任何子目录下,可以使用以下命令:
cuckoo.filesystem.file_access(/^C:\\Program Files\\(Microsoft Office\\)?(.*\\)?Excel\.exe$/i)^和$在那里将模式锚定在目标字符串的开始和结束处。如果模式不匹配,可以尝试删除它们。(Microsoft Office\\)?是多余的,因为(.*\\)?将匹配C:\Program Files下的任何子目录。我把它包括进来是为了配合这个问题。(.*\\)?匹配以反斜杠(\)结尾的任何内容,包括更多的反斜杠。我让它是可选的,允许直接在C:\Program Files下的文件匹配。.)需要转义(\.)来匹配一个文字点,因为它被认为是一个特殊字符。/i使模式大小写变得不敏感,以与Windows比较文件名的方式对齐。要匹配dnx.exe在C:\下的任何位置,您可以使用以下命令:
cuckoo.filesystem.file_access(/^C:\\(.*\\)?dnx\.exe$/i)匹配C:\下任意目录中的所有三个二进制文件
cuckoo.filesystem.file_access(/^C:\\(.*\\)?(Excel\.exe|dnx\.exe|appvlp\.exe)$/i)https://stackoverflow.com/questions/58459359
复制相似问题