You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Yara规则无法匹配字符串求助:Windows注册表持久化事件

解决Yara规则无法匹配Sysmon注册表持久化事件的问题

问题根源

  1. 字符编码不匹配:Sysmon捕获的CommandLine字段以**UTF-16LE(宽字符)**格式存储,你编写的Yara规则使用的是ASCII字符串,导致字节层面无法匹配目标路径。
  2. 通配符语法错误:Yara默认字符串为精确匹配,直接在字符串末尾加*不符合语法规则,需使用正则表达式实现模糊匹配。

解决方案

方案1:宽字符精确匹配(推荐)

在字符串前添加w前缀,指定匹配UTF-16LE格式的内容,修正后的规则如下:

rule RegistryPersistence
{
        strings:
                $CommandLine = w"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce"
        condition:
                $CommandLine
}

方案2:正则表达式模糊匹配

如果需要匹配包含目标路径的任意命令行(支持前后额外内容),可使用带宽字符前缀的正则表达式:

rule RegistryPersistence
{
        strings:
                $CommandLine = w/SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce.*/
        condition:
                $CommandLine
}

验证说明

你之前用reg.exe能触发规则,是因为该字符串在宽字符序列中存在连续的ASCII字节巧合匹配,但这并非可靠的匹配方式,针对路径类内容必须使用宽字符匹配才能保证准确性。

内容的提问来源于stack exchange,提问作者fabioviscardi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 04:17:07