Skip to content
首次运行
—— yara 使用手册 · 开始 最后更新: 2023-03-08 22:27:53

现在你已经安装了 Yara,可以编写一个非常简单的规则并使用命令行工具扫描某些文件:

bash
echo "rule dummy { condition: true }" > my_first_rule
yara my_first_rule my_first_rule

不要对 yara 参数中出现两个 my_first_rule 感到困惑,这只是传递相同的文件作为规则和要扫描的文件。你可以传递任何要扫描的文件 (第二个参数)。

如果一切顺利,应该得到以下输出:

dummy my_first_rule

这意味着文件 my_first_rule 与名为 dummy 的规则匹配,如果遇到这样的错误:

yara: error while loading shared libraries: libyara.so.2: cannot open shared
object file: No such file or directory

这意味着加载程序找不到位于 /usr/local/lib 中的 libyara 库。在某些 Linux 版本中,加载程序默认不会在此路径中查找库,我们必须通过将 /usr/local/lib 添加到加载程序 /etc/ld.so.conf 配置文件来指示它这样做:

bash
sudo sh -c 'echo "/usr/local/lib" >> /etc/ld.so.conf'
sudo ldconfig

在较新的 Ubuntu 版本 (例如 22.04 LTS) 上,正确的加载器配置是通过 /etc/ld.so.conf.d/libc.conf 的依赖项安装的。在这种情况下,仅使用以下命令就足以配置动态链接器运行时绑定。

bash
sudo ldconfig

如果使用 Windows PowerShell 作为命令 shell,yara my_first_rule my_first_rule 可能会返回以下错误:

bash
my_first_rule(1): error: non-ascii character

可以通过在创建规则文件时使用 Set-Content cmdlet 指定 ascii 输出来避免这种情况:

powershell
Set-Content -path .\my_first_rule -Value "rule dummy { condition: true }" -Encoding Ascii
.\yara my_first_rule my_first_rule

Released under the MIT License.