yara是一款旨在帮助恶意软件研究人员识别和分类恶意软件样本的开源工具,yara规则基于字符串或者二进制模式信息创建恶意软件家族描述信息,yara的每一条描述和规则都是通过一系列字符串和一个布尔表达式构成,并阐述其逻辑。yara规则可以提交给文件或者在运行进程,以帮助研究人员识别其是否属于某个已知运行规则描述的恶意软件家族。
下面是一个yara规则简单的例子:
meta是对这个yara规则的描述
strings是 字符串规则,都是以$开头,字符串有三种类型:文本类型、十六进制字符串、正则表达式。
文本字符串用来定义文件或者进程内存中可读型内容,十六进制字符串用来定义字节内容,正则表达式可以用在文本字符串和十六进制字符串中。
condition是条件区域,条件区域中的内容是布尔类型表达式,该区域可以使用布尔操作符and、or和not,关系操作符> < == <=
>= !=,算数操作符+ - * / %和按位操作符&
| >> << ^ ~。