精华内容
下载资源
问答
  • YARA in a nutshell YARA is a tool aimed at (but not limited to) helping malware researchers to identify and classify malware samples. With YARA you can create descriptions of malware families (or ...
  • CCCS YARA规范 创建是为了定义和验证YARA规则元数据的样式和格式。 多年来,我们看到了许多YARA规则; 为了充分利用它们的潜力,即使对于我们自己制定的规则,我们也总是必须修改一些与它们相关的元数据。 调整简单...
  • Yara规则”项目旨在通过尽可能完整地收集规则集,从而成为Yara用户的聚会点,从而为用户提供一种使Yara做好使用准备的快速方法。 我们希望该项目对安全社区和所有Yara用户有用,并期待您的反馈。 订阅我们的...
  • yara-python 使用此库,您可以从Python程序中使用 。 它涵盖了YARA的所有功能,从编译,保存和加载规则到扫描文件,字符串和进程。 这里有一个小例子: >> > import yara >> > rule = yara . compile ( source = ...
  • default[:yara][:install_yara_python] = false 测试 bundle install # Run Unit and Lint Tests bundle exec rake # Run Test-Kitchen Integration Tests kitchen test 贡献 分叉吧 创建您的功能分支( git ...
  • ReversingLabs YARA规则 欢迎使用官方的ReversingLabs YARA规则存储库!随着我们为新威胁制定规则,并在我们的云和其他环境中通过测试证明了它们的质量之后,该存储库将不断更新。 这些规则已由我们的威胁分析师编写...
  • Yara_Merger 将来自官方Yara github存储库的所有Yara规则合并到一个.yar文件中 过滤规则以与Nessus漏洞扫描仪V7兼容
  • yara-源码

    2021-03-12 14:39:16
    简而言之,YARA YARA是一种旨在(但不限于)帮助恶意软件研究人员识别和分类恶意软件样本的工具。 使用YARA,您可以基于文本或二进制模式来创建恶意软件家族的描述(或您想要描述的任何事物)。 每个描述(又称规则...
  • McAfee ATR博客文章和调查随附的YARA规则存储库 我们赞同为改善规则做出贡献-请向我们发送拉动请求以及您的建议 如果您发现我们的规则有误报,请在问题报告中与我们分享您的详细信息,我们将尝试改进Yara规则。 ...
  • YARA语法

    2020-03-21 18:36:16
    文章目录YARA基础语法 YARA基础语法 YARA关键字 all in private and include rule any index rva ascii indexes section at int8 strings condition int16 them contains int32 true entrypoint ...

    YARA基础

    YARA关键字

    allinprivateandinclude
    ruleanyindexrvaascii
    indexessectionatint8strings
    conditionint16themcontainsint32
    trueentrypointmatchesuint8false
    metauint16filesizenocaseuint32
    fullwordnotwideforor
    globalof

    关键字解释:
    rule:规则标识
    strings:字符串区域
    condition:条件区域

    字符串末尾标注的关键字:
    nocase:表示匹配大小写
    wide:表示是宽字节
    ascii:表示是ASCII码
    fullword:表示匹配单个词组文本字符串

    语法

    //:单行注释
    /**/:多行注释
    $:字符串定义
    #:表示字符串在文件或内存中出现的次数

    condtion:
            #a == 1 or #b > 4 and #c < 6   //a出现1次或b大于四次且c小于6次
    
    

    at:表示字符串在文件中的偏移量条件或虚拟地址的条件

        condition:         $a at 100 and $b at 0x004C0000 and $c at 300    //a的地址为100且b的地址为0x004C00000且c的地址为300
    

    in:表示文件偏移范围

    condition:         
        $a in(1..100)  //a的地址在1与100之间
    

    filesize:表示文件大小(单位是字节)

        condition:        
            filesize > 200KB//表示匹配文件大小大于200kb的文件
    

    entrypoint:表示文件入口点,适用于PE和ELF,也适用在运行进程

        string:         
            $a = {E8 00 00 00}    
        condition:         
            $a at entrypoint    //匹配文件入口点为E8 00 00 00的文件
    

    uinint:访问文件偏移和访问内存虚拟地址,intx,x可以是8、16、32,uin读取的是无符号整数,int读取的是有符号整数,默认读取的是小端

        condition:         
            // MZ 
            uint16(0) == 0x5A4D and
            // PE
            uint32(uint32(0x3C)) == 0×00004550
    

    global rule:全局规则,优先级最高
    private rule:私有规则,进行匹配时不会输出任何匹配信息
    rule TagRule:仅输出用户感兴趣的匹配结果

    rule TagRule : dummy1 dummy 2 
    {    
        strings:        
            $a = "dummy1"        
            $b = "dummy2"      
        condition:        
            $a and $b 
    }
    

    of:集合

        condtion:
            2 of ($a,$b,$c)  //当abc中有两个字符串存在于文件时,表示匹配
    

    符号:
    ??:匹配一字节未知数
    ?:匹配半字节未知数
    [4-6]:跳转,该跳转指示4-6个字节的任意序列可以占据跳转的位置
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HGCLD4f1-1584786924950)(index_files/3ce98492-d89a-4771-b81c-1b1a21454e1f.png)]
    \":双引号
    \\:反斜杠
    \t:制表符
    \n:换行符
    \xdd:16进制表示

    语法说明:
    1.规则声明以rule标识
    2.规则以字母、数字、下划线组成,字符串首字符不能是数字,单条描述不超过128字符
    3.条件区域必须存在,字符串区域可有可无
    4.字符串区域的每条规则由$开头的字符串定义
    5.字符串规则使用"",十六进制规则使用{}
    6.条件区域的字符串表达式的表述方式为布尔型变量,结果只有True和False
    7.接受正则表达式

    使用记事本编写,则需要在使用YARA规则匹配前去除BOM(用vi编辑并使用“set nobomb”可以去除BOM),否则会提示“error:non-ascii character”

    命令行参数

    在命令行下使用YARA进行规则匹配后,若目标文件或进程符合规则,则输出“<规则文件名> <目标文件名>”,否则无任何输出

    -n:反转输出提示,匹配时无输出,不匹配时有输出

    展开全文
  • YARA签名人 自动为恶意软件存储库生成YARA规则。 当前用于为Malpedia( )构建YARA签名,并且仅限于Linux,macOS和Windows的x86 / x86-64可执行文件和内存转储。 目标听众 该软件对于公司或CERT等大型组织以及个人而...
  • awesome-yara:精选的YARA出色规则,工具和人员的清单
  • yara语法

    2020-01-14 18:46:53
    yara 文章目录yara1. Strings1.1 Hexadecimal stringswild-cardsjumpalternatives1.2 text stringsxorfull words1.3 regular expressions2. condition2.1 Counting strings2.2 String offsets or virtual addresses...

    yara

    • C语言编写,跨平台;
    • 提供python扩展,允许通过python脚本访问搜索引擎;
    • 规则类似c代码,如注释,但变量以美元符开头;
    • 规则由脚本定义和布尔表达式(condition)组成;
    • 该引擎也可以扫描正在运行的进程。

    1. Strings

    three types of strings in YARA:

    • hexadecimal strings
    • text strings
    • regular expressions

    1.1 Hexadecimal strings

    三个特殊的结构,使它们更灵活:

    • wild-cards,通配符;
    • jump,跳转;
    • alternatives,替代。

    wild-cards

    rule WildcardExample
    {
        strings:
           $hex_string = { E2 34 ?? C8 A? FB }
    
        condition:
           $hex_string
    }
    

    jump

    需要使用可变内容和长度的块来定义字符串时,就要用到jump。

    rule JumpExample
    {
            strings:
               $hex_string = { F4 23 [4-6] 62 B4 }
    
            condition:
               $hex_string
    }
    

    4 到 6 个字节的任意序列可以占据跳转的位置。

    Any jump [X-Y] must meet the condition 0 <= X <= Y.

    下面的写法等价:

    FE 39 45 [6] 89 00
    FE 39 45 [6-6] 89 00
    FE 39 45 ?? ?? ?? ?? ?? ?? 89 00
    

    YARA 2.0 开始可以使用无穷:

    FE 39 45 [10-] 89 00
    FE 39 45 [-] 89 00  //[0-infinite]
    

    alternatives

    如果想为十六进制字符串的给定片段提供不同的替代方案,

    rule AlternativesExample1
    {
        strings:
           $hex_string = { F4 23 ( 62 B4 | 56 ) 45 }
    
        condition:
           $hex_string
    }
    
    

    F42362B445 or F4235645 会被匹配。

    更复杂的也可以:$hex_string = { F4 23 ( 62 B4 | 56 | 45 ?? 67 ) 45 }

    1.2 text strings

    ascii编码,区分大小写:$text_string = "foobar"

    也支持转义字符,如\xdd: Any byte in hexadecimal notation

    不区分大小写:$text_string = "foobar" nocase

    宽字符B\x00o\x00r\x00l\x00a\x00n\x00d\x00$wide_string = "Borland" wide

    但是宽字符只支持英文,不支持utf-16,比如中文。可以使用宽ascii修饰:

    $wide_and_ascii_string = "Borland" wide ascii

    xor

    $xor_string = "This program cannot" xor

    The following rule will search for every single byte xor applied to the string “This program cannot”.

    equivalent to:

    $xor_string_00 = "This program cannot"
    $xor_string_01 = "Uihr!qsnfs`l!b`oonu"
    $xor_string_02 = "Vjkq\"rpmepco\"acllmv"
    // Repeat for every single byte xor
    

    这个修饰符的优先级相比其它修饰符最小。

    $xor_string = "This program cannot" xor wide
    
    $xor_string_00 = "T\x00h\x00i\x00s\x00 \x00p\x00r\x00o\x00g\x00r\x00a\x00m\x00 \x00c\x00a\x00n\x00n\x00o\x00t\x00"
    $xor_string_01 = "U\x01i\x01h\x01r\x01!\x01q\x01s\x01n\x01f\x01s\x01`\x01l\x01!\x01b\x01`\x01o\x01o\x01n\x01u\x01"
    $xor_string_02 = "V\x02j\x02k\x02q\x02\"\x02r\x02p\x02m\x02e\x02p\x02c\x02o\x02\"\x02a\x02c\x02l\x02l\x02m\x02v\x02"
    // Repeat for every single byte xor operation.
    

    可以指定范围:xor(0x01-0xff)

    full words

    match only if it appears in the file delimited by non-alphanumeric characters.

    For example the string domain, if defined as fullword, doesn’t match www.mydomain.com but it matches www.my-domain.com and www.domain.com.

    1.3 regular expressions

    以与文本字符串相同的方式定义,但以正斜杠而不是双引号括起来,就像在 Perl 编程语言中一样。

    后面也可以跟nocase, ascii, wide, and fullword

    $re1 = /md5: [0-9a-zA-Z]{32}/ 
    $re2 = /state: (on|off)/ 
    

    2. condition

    其实就是bool表达式。逻辑运算符和python一致。如逻辑与是and

    2.1 Counting strings

    有时要知道字符串在文件或进程内存中的出现次数。

    rule CountExample
    {
        strings:
            $a = "dummy1"
            $b = "dummy2"
    
        condition:
            #a == 6 and #b > 10
    }
    

    2.2 String offsets or virtual addresses

    sometimes we need to know if the string is at some specific offset on the file or at some virtual address within the process address space. In such situations the operator at is what we need.

    rule AtExample
    {
        strings:
            $a = "dummy1"
            $b = "dummy2"
    
        condition:
            $a at 100 and $b at 200
    }
    

    true only if string $a is found at offset 100 within the file (or at virtual address 100 if applied to a running process).

    100和200是十进制,带上0x就是十六进制。at优先级高于and。

    还可以搜索偏移范围:$a in (0..100) and $b in (100..filesize)

    还可以使用 @a[i] 获取字符串$a的第 i 次出现的偏移量或虚拟地址。i>=1…。越界则结果为NaN(not a num)

    2.3 Match length

    / fo* /可以匹配"fo","foo", "fooo"!a[1]获取匹配长度。

    2.4 File size

    这是个特殊变量(环境变量?)。

    rule FileSizeExample
    {
        condition:
           filesize > 200KB
    }
    

    2.5 Executable entry point

    If the file is a Portable Executable (PE) or Executable and Linkable Format (ELF), this variable entrypoint holds the raw offset of the executable’s entry point in case we are scanning a file. If we are scanning a running process, the entrypoint will hold the virtual address of the main executable’s entry point.

    A typical use of this variable is to look for some pattern at the entry point to detect packers(壳) or simple file infectors(感染器).

    rule EntryPointExample1
    {
        strings:
            $a = { E8 00 00 00 00 }
    
        condition:
           $a at entrypoint
    }
    
    rule EntryPointExample2
    {
        strings:
            $a = { 9C 50 66 A1 ?? ?? ?? 00 66 A9 ?? ?? 58 0F 85 }
    
        condition:
           $a in (entrypoint..entrypoint + 10)
    }
    

    If the file is not a PE or ELF, any rule using this variable evaluates to false.

    从 YARA 3.0 开始,改为pe模块的pe.entry_point.

    2.6 Accessing data at a given position

    一些函数可以用于从文件或进程读取数据。

    int8(<offset or virtual address>)
    int16(<offset or virtual address>)
    int32(<offset or virtual address>)
    
    uint8(<offset or virtual address>)
    uint16(<offset or virtual address>)
    uint32(<offset or virtual address>)
    
    int8be(<offset or virtual address>)
    int16be(<offset or virtual address>)
    int32be(<offset or virtual address>)
    
    uint8be(<offset or virtual address>)
    uint16be(<offset or virtual address>)
    uint32be(<offset or virtual address>)
    

    Both 16 and 32 bit integers are considered to be little-endian.If you want to read a big-endian integer use the corresponding function ending in be.

    rule IsPE 
    { 
      condition: 
         // MZ signature at offset 0 and ... 
         uint16(0) == 0x5A4D and 
         // ... PE signature at offset stored in MZ header at 0x3C 
         uint32(uint32(0x3C)) == 0x00004550 
    } 
    

    2.7 Sets(集合) of strings

    把pythonm的in换成of使用。

    rule OfExample1
    {
        strings:
            $foo1 = "dummy1"
            $foo2 = "dummy2"
            $foo3 = "dummy3"
    
        condition:
            2 of ($foo1,$foo2,$foo3)
    }
    

    集合中的至少两个字符串存在于文件中.

    集合元素也可以用通配符指定:2 of ($foo*), 2 of ($*)

    all of them       //符合规则的所有字符串 
    any of them       // 符合规则的任何字符串 
    

    2.8 Applying the same condition to many strings

    对多条字符串应用相同的条件.

    其实就是循环遍历,还是把python的in改为of。

    for expression of string_set : ( boolean_expression ) 
    

    所有表达式满足boolean_expression,condition才会返回true。

    以下等价:

    any of ($a,$b,$c) 
    for any of ($a,$b,$c) : ( $ ) 
    

    2.9 Using anonymous strings with of and for…of

    只用of, for…of时,可以不给变量起名。

    rule AnonymousStrings
    {
       strings:
           $ = "dummy1"
           $ = "dummy2"
    
       condition:
           1 of them
    }
    

    2.10 Iterating over string occurrences

    迭代字符串事件。

    刚刚说可以用@a[i]获取偏移,有时需要遍历这些偏移。

    rule Occurrences
    {
        strings:
            $a = "dummy1"
            $b = "dummy2"
    
        condition:
            for all i in (1,2,3) : ( @a[i] + 10 == @b[i] )
            //for all i in (1..3)
            //for all i in (1..#a)
    }
    

    2.11 Referencing other rules

    调用规则

    rule Rule1
    {
        strings:
            $a = "dummy1"
    
        condition:
            $a
    }
    
    rule Rule2
    {
        strings:
            $a = "dummy2"
    
        condition:
            $a and Rule1
    }
    

    3. More about rules

    global rules

    Want all rules ignoring those files that exceed a certain size limit,

    global rule SizeLimit
    {
        condition:
            filesize < 2MB
    }
    

    private rules

    Private rules can serve as building blocks for other rules, and at the same time prevent cluttering YARA’s output with irrelevant information.

    private rule PrivateRuleExample{}

    tags

    rule TagsExample1 : Foo Bar Baz{}

    metadata

    Their only purpose is to store additional information about the rule.

    rule MetadataExample
    {
        meta:
            my_identifier_1 = "Some string data"
            my_identifier_2 = 24
            my_identifier_3 = true
    
        strings:
            $my_text_string = "text here"
            $my_hex_string = { E2 34 A1 C8 23 FB }
    
        condition:
            $my_text_string or $my_hex_string
    }
    
    展开全文
  • yara-rule-porter yara-rule-porter是用于转换yara规则的软件包。 它从文件或数据库中读取yara规则,对其进行解析并应用一组规范化或转换脚本。 之后,它将再次将规则导出到文件或数据库。 它用Perl编写,并使用...
  • Yara Digital Labs JavaScript样式指南 用法 我们导出两种ESLint配置供您使用,原始JavaScript和React。 Yara Digital Labs JavaScript样式指南 我们的默认导出包含我们所有的ESLint规则,包括ECMAScript 6+。 它...
  • 必须能够有效安装Yara。 通过选择的包管理器或通过git自己编译来安装它。 从标签下载最新的zip。 有可用的最新ElasticSearch版本。 如果您使用的是其他版本的ElasticSearch,则必须ES 自己编译插件。 有关更多信息...
  • 将ClamAV定义转换为Yara规则 === Clamav To Yara具有以下特点: 定期从clamav下载定义:目前在main.go中进行硬编码为4个小时 通过Etag检查定义是否已更改 保留:检查定义文件的哈希是否有效。 通过使用freshclam在...
  • yara规则书写规范

    2019-01-04 14:20:32
    当前最新yara规则书写规范,官方文档翻译过来的,不包括后面支持的模块翻译。大家有兴趣可以下载下来看。
  • yara 解析器 关于 yara-parsers 是一个项目,旨在为许多流行的文本编辑器开发语法高亮器/解析器,以便更轻松地编写 YARA 规则。 解析器 本项目目前实现了以下解析器: 在线文本编辑器
  • Open-Source-YARA-rules:我在互联网上遇到的YARA规则
  • Yara规则概述

    万次阅读 2018-04-12 11:39:26
    一、Yara概述YARA是一款旨在帮助恶意软件研究人员识别和分类恶意软件样本的开源工具(由virustotal的软件工程师Victor M. Alvarezk开发),使用YARA可以基于文本或二进制模式创建恶意软件家族描述信息,当然也可以是...

    一、Yara概述

    YARA是一款旨在帮助恶意软件研究人员识别和分类恶意软件样本的开源工具(由virustotal的软件工程师Victor M. Alvarezk开发),使用YARA可以基于文本或二进制模式创建恶意软件家族描述信息,当然也可以是其他匹配信息。YARA的每一条描述或规则都由一系列字符串和一个布尔型表达式构成,并阐述其逻辑。YARA规则可以提交给文件或在运行进程,以帮助研究人员识别其是否属于某个已进行规则描述的恶意软件家族。

     

    这是一个简单的例子,YARA的规则可以复杂和强大到支持通配符、大小写敏感字符串、正则表达式、特殊符号以及其他特性。


    二、Yara规则编写

    YARA规则的标识符类似于C语言结构,其规则声明以rule标识,在规则描述中可以包括字母、数字甚至下划线字符,但字符串第一个字符不能是数字,且单条描述不能超过128个字符。和C语言一样,YARA规则也有关键字:

    YARA规则由字符串区域和条件区域两部分组成,其中条件区域必须存在,字符串区域则可有可无,比如不依赖任何字符串的规则:

    rule Dummy

        condition:

            false

    }

    字符串区域中的每条规则都由$开头的字符串定义,其规则内容可以是字符形式或十六进制形式,所定义的字符串由条件区域引用:

    rule ExampleRule

    {

        strings:

            $my_text_string = "text here"

            $my_hex_string = {E2 34 A1 C8 23 FB}

       

        condition:

            $my_text_string or $my_hex_string

    }

    与C语言一样,字符串规则使用双引号,而十六进制规则使用大括号引用,每个十六进制数字之间用空格间隔,且十进制数字不允许出现在十六进制规则中。

    条件区域决定YARA规则的逻辑,因此该区域的描述必须包含布尔型表达式,以判别目标文件或进程是否满足该规则。通常条件内容都会引用字符串区域中的字符串定义,比如上例中的$my_text_string和$my_hex_string。条件区域的字符串表述方式为布尔型变量,若文件或进程内存符合字符串表达式则其结果为True,否则即为False。

     

    注释方式

    YARA规则的注释方式和类C语言一样,可以用//进行单行注释,也可以用/**/进行多行注释

     

    字符串区域

    YARA规则的字符串有三种类型:文本字符串、十六进制字符串、正则表达式。文本字符串用来定义文件或进程内存中可读型内容,十六进制字符串用来定义字节内容,正则表达式可用在文本字符串和十六进制字符串中。比如:

    rule HexExample

    {

        strings:

            $hex_string = { F4 23 ( 62 B4 | 56 | 45?? 67 ) 45 }

        condition:

            $hex_string

    }

    文本字符串在YARA规则中是大小写敏感的,但可以使用nocase关键字来取消大小写敏感,字符串中的特殊字符亦可以使用转义符表达,比如:

    rule NocaseTextExample

    {

        strings:

            $text_string ="\\\"foobar\"\\" nocase

        condition:

            $text_string

    }

    以上规则中所表示的字符串内容是\”foobar”\,由于使用nocase关键词,故亦可以表达\”FoObAr”\、\”FOOBAR”\等等大小写形式。

    如果在目标文件中一个字符由两个字节表示,即宽字符形式,则可以使用wide关键词来表示文本字符串。如果既想表示宽字符,也想表示ASCII码,则可以再使用ascii关键词。比如:

    rule WideAsciiTextExample

    {

        strings:

            $text_string ="\\\"foobar\"\\" nocase wide ascii

        condition:

            $text_string

    }

    如果想匹配单个词组文本字符串,可以使用fullword关键词。比如:

    rule FullwordTextExample

    {

        strings:

            $text_string = "foobar"fullword

        condition:

            $text_string

    }

     

    条件区域

    条件区域的内容为布尔类型表达式,因此该区域可以使用的符号可以是布尔操作符and、or和not,关系操作符>、<、==、<=、>=和!=,算数操作符+、-、*、/、%和按位操作符&、|、>>、<<、^、~。比如:

    rule Example

    {

        strings:

            $a = "text1"

            $b = "text2"

            $c = "text3"

        condition:

            ($a or $b) and $c

    }

    如果想表达字符串描述在文件或进程内存中出现的次数,则在条件表达式中将字符串定义中的$替换为#。比如:

    rule CountExample

    {

        strings:

            $a = "text1"

            $b = "text2"

            $c = "text3"

        condition:

            #a == 1 or #b > 4 and #c < 6

    }

    如果想表达字符串在文件中的偏移量条件或虚拟地址的条件,则使用at关键词表示,且表达式中的数字类型可以是十进制或十六进制。比如:

           rule CountExample

    {

        strings:

            $a = "text1"

            $b = "text2"

            $c = "text3"

        condition:

            $a at 100 and $b at 0x004C0000 and $cat 300

    }

    与at不同,使用in关键词可以表示文件偏移范围,比如:$a in (1..100)、$b in (100..filesize)。这里的filesize亦为关键词,表示文件的大小(单位字节),但该关键词仅适用于分析对象是文件形式。比如:

    rule FileSizeExample

    {

        condition:

            filesize > 200KB

    }

    另外一个特殊的关键词是entrypoint,表示文件入口点,适用于PE文件和ELF文件,当然也可以用于在运行进程。比如:

           rule FileSizeExample

    {

        string:

            $a = {E8 00 00 00}

        condition:

            $a at entrypoint

    }

    在指定的文件位置表达可访问数据也是条件表达式可以做到的,需要用到uintXX或intXX关键词以及以下函数:

    int8(<offset or virtualaddress>)

    int16(<offset or virtualaddress>)

    int32(<offset or virtualaddress>)

    uint8(<offset or virtualaddress>)

    uint16(<offset or virtualaddress>)

    uint32(<offset or virtual address>)

    利用以上关键词和函数,若想判断目标文件是否为PE文件,相应的规则可写为:

           rule IsPE

    {

        condition:

            // MZ signature at offset 0

            uint16(0) == 0x5A4D and

            // PE signature at offset stored in MZheader at 0x3C

            uint32(uint32(0x3C)) == 0×00004550

    }

     

     

    注:根据恶意软件,现在一般将Yara规则分为11类:

    1. Antidebug_AntiVM:反调试/反沙箱类yara规则 
    2. Crypto
    :加密类yara规则 
    3. CVE_Rules
    CVE漏洞利用类yara规则 
    4. email
    :恶意邮件类yara规则 
    5. Exploit-Kits
    EKyara规则 
    6. Malicious_Documents
    :恶意文档类yara规则 
    7. malware
    :恶意软件类yara规则 
    8. Mobile_Malware
    :移动恶意软件类yara规则 
    9. Packers
    :加壳类yara规则 
    10. utils
    :通用类yara规则 
    11. Webshells
    Webshellyara规则

     

    三、演示




    展开全文
  • YAYA-另一个Yara自动机 自动整理开源yara规则并运行扫描 安装 go get github.com/EFForg/yaya cd $GOPATH/src/github.com/EFForg/yaya go build go install 依存关系 Yaya依赖于标准库之外的以下软件包: 您还必须...
  • yara-1.7.1.zip

    2020-06-05 16:31:04
    原始链接 https://github.com/VirusTotal/yara/releases/tag/v1.7.1 这里存一份,以防源码失效
  • Yara 签名工具 描述 这是一个用 ruby​​ 编写的实用程序,使用 Capstone 引擎从函数构建 yara 规则。 目前,脚本将通配符引用二进制地址空间内的位置的调用和推送。 要求 顶石引擎 蟹石 转储 选择解析 用法 使用 -...
  • 该项目满足了一组IT安全研究人员的需要,即拥有一个单一的存储库,在其中可以编译,分类和保持不同的Yara签名,并尽可能保持最新状态,并开始成为收集Yara规则的开源社区。 我们的Yara规则集受GNU-GPLv2许可,并且对...
  • yara规则

    2017-11-27 11:38:25
    (1)yara文档 链接:http://yara.readthedocs.io/en/v3.7.0/(2)规则分为三个段,meta主要为该规则的描述信息,strings段,写匹配的字符串或十六进制特征,支持正则表达式。,condition段主要为条件,即写特征满足...

    (1)yara文档

    链接:http://yara.readthedocs.io/en/v3.7.0/
    yara规则
    (2)规则
    yara规则
    分为三个段,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

    转载于:https://blog.51cto.com/antivirusjo/2044651

    展开全文
  • YARA绩效准则 在为YARA创建规则时,请记住以下准则,以便从中获得最佳性能。 本指南基于Victor M. Alvarez和WXS的想法和建议。 1.5版(2021年2月)适用于所有高于3.7版的YARA版本 基础 为了更好地掌握可以优化YARA...
  • YARA规则绩效评估工具 它能做什么 它针对一组样本运行YARA规则集,并测量该样本集上一组循环的持续时间。 如中所述,不良规则是原子质量较差的规则。 随着YARA引擎需要评估更多数据,它们会减慢整个搜索的速度。 ...
  • YARA排序 更多信息: :
  • go-yara用于YARA的Go绑定,在从yara-python实现中获得启发的同时,尽可能地与库的C-API保持紧密联系。 安装Unix在具有libyara_版本go-yara的Unix系统上,用于YARA,在从yara-python实现中获得启发的同时,尽可能地与...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,275
精华内容 510
关键字:

YARA