YARA:第六章-更多关于规则

        

目录

1 全局规则(Global rules)

2 私有规则(Private rules)

3 规则标签(Rule tags)

4 元数据(Metadata)


        Yara规则除了字符串、条件快外,还有其它的一些功能也十分重要。包括全局规则(global rules),私有规则(private rules),标签(tags)和元数据(metadata)。

1 全局规则(Global rules)

        全局规则会对当前所有规则施加限制。例如用户希望所有规则都忽略掉超过特定大小限制的文件时,不需要每条规则中添加此限制(当然也可以这样做,但是工作量可能很大),只需要写一个全局规则即可。示例如下:

global rule SizeLimit
{
    condition:
        filesize < 2MB
}

        用户可以定义任意数量的全局规则,而在实际匹配过程中,会优先全局规则进行匹配,如果全局规则匹配失败,则剩下的规则将不再进行匹配操作。

2 私有规则(Private rules)

        私有规则即规则命中时也不会输出任何规则信息。此类规则一般用于被其它普通规则所引用,私有规则可以对规则进行保密防止泄露。私有规则也可以和全局规则共同修饰同一条规则。示例如下:

private rule PrivateRuleExample
{
    ...
}

private global rule PrivateGlobalRuleExample
{
    ...
}

3 规则标签(Rule tags)

        Yara支持给规则添加标签,可用于查看Yara规则是进行过滤,即只显示指定tag的规则信息。每个规则可以包含任意数量的tag。tag的命名规则与规则标识符规则一致,只允许使用字母、数字和下划线,并且不能以数字开头且大小写敏感。示例如下:

rule TagsExample1 : Foo Bar Baz
{
    ...
}

rule TagsExample2 : Bar
{
    ...
}

4 元数据(Metadata)

        Yara规则中除了字符串块和条件块外,还可以包含元数据信息用于补充说明规则相关信息例如作者、时间、引用连接、描述等。示例如下:

rule MetadataExample
{
    meta:
        describe = "Some string data"
        num = 24
        is_valid = true

    strings:
        $my_text_string = "text here"
        $my_hex_string = { E2 34 A1 C8 23 FB }

    condition:
        $my_text_string or $my_hex_string
}

        元数据的格式是数据标识符、等号和值的形式。元数据值可以是字符串(UTF8格式)、数值或者布尔值(true或者false)。元数据定义的标识符不能在条件块中使用。元数据不参与规则的匹配,它们唯一的用途就是用来存储规则的相关信息。

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_只道当时是寻常

打赏不得超过工资的一半呦

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值