(1)yara文档

链接:http://yara.readthedocs.io/en/v3.7.0/
yara规则_第1张图片
(2)规则
yara规则_第2张图片
分为三个段,meta主要为该规则的描述信息,strings段,写匹配的字符串或十六进制特征,支持正则表达式。,condition段主要为条件,即写特征满足的条件。
延续c语言语法,使用/**/注释,多行语法无需符号分行。

rule RuleName{
meta:

             strings:

             condition:

}
参考网站:http://www.freebuf.com/articles/system/26373.html

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