本文共 787 字,大约阅读时间需要 2 分钟。
(1)yara文档
链接:
(2)规则分为三个段,meta主要为该规则的描述信息,strings段,写匹配的字符串或十六进制特征,支持正则表达式。,condition段主要为条件,即写特征满足的条件。延续c语言语法,使用/**/注释,多行语法无需符号分行。rule RuleName{
meta:strings: condition:
}
参考网站:string编写:
字符串特征,使用$符号命令变量,双引号引起字符串内容
$a_test="Virus"使用nocase忽略大小写$a_text="Virus"nocase还可以使用关键字字ascii,wide十六进制特征使用大括号括起来,每个十六进制数据用空格空开。
$a_hex={3F 76 98 2F}十六进制支持通配符,使用??表示任意的一个十六进制数据,当你的十六进制特征匹配到其中一个十六进制数据可变时就需要了,$a_hex1={34 67 ?? 3F}如果出现一段十六进制未知,那么就使用跳转,用中括号括起来,指定跳转最小和最大位数。$a_hex2={34 56 25 [4-8] 78} 表示在 34 56 25和78 之间可以有4到8个任意的十六进制组合。正则表达式,可使用正则表达式丰富特征,在字符串和十六进制数据中使用$ hex_string = {F4 23(62 B4 | 56 | 45 ?? 67)45}使用/号表示正则的开始和结束condition编写
使用逻辑表达式,对string中的变量操作,达到效果。 AND or not 关系操作符>、<、==、<=、>=和!=
使用#号表示该字符出现的次数 如:#hex_tsring==10
转载于:https://blog.51cto.com/antivirusjo/2044651