Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
yaralyzer — 通过彩色显示直观检查并强制解码 YARA 和正则表达式在二进制和文本数据中的匹配结果。大量色彩。 | Kitploit
工具/GitHubGitHub/michelcrypt4d4mus/yaralyzer
逆向工程取证分析恶意软件分析二进制分析
GitHubmichelcrypt4d4mus/yaralyzer

yaralyzer

通过彩色显示直观检查并强制解码 YARA 和正则表达式在二进制和文本数据中的匹配结果。大量色彩。

查看仓库
152156个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

GithubRelease Release Downloads Tests Python Version

YARALYZER 工具

YARA 匹配

直观地检查二进制数据和/或文本中所有正则表达式(以及它更性感、更具谍战风格的远亲 YARA 匹配)的匹配结果。看看当你对这些匹配字节强制应用各种字符编码时会怎样。带颜色显示。

快速开始

root@kitploit:~
pipx install yaralyzer

# 使用文件中定义的 YARA 规则进行扫描:
yaralyze --yara-rules /secret/vault/sigmunds_malware_rules.yara lacan_buys_the_dip.pdf

# 使用任意正则表达式进行扫描:
yaralyze --regex-pattern 'good and evil.*of\s+\w+byte' --regex-modifier wide the_crypto_archipelago.exe

# 使用任意 YARA 十六进制模式进行扫描:
yaralyze --hex-pattern 'd0 93 d0 a3 d0 [-] 9b d0 90 d0 93' one_day_in_the_life_of_ivan_cryptosovich.bin

它能做什么

  1. 查看你的YARA规则实际匹配的字节。 无需再费力复制粘贴YARA报告的起始位置到你最喜欢的十六进制编辑器中。以十六进制和“原始”Python字符串形式显示YARA匹配的字节,以及每个匹配前后可配置数量的字节。
  2. 无需编写YARA文件即可对字节模式和正则表达式执行相同操作。 如果你懒得写YARA文件,但想确定文件中是否隐藏了某个正则表达式,可以扫描模式'/.+/',立即查看文件中所有位于正斜杠之间的字节。引号、BOM等也是如此。任何YARA能处理的正则表达式都支持,因此无所不能。
  3. 检测每组匹配字节可能的编码。 chardet 是一个用于猜测字符编码的复杂库,在此被充分利用。
  4. 显示对匹配区域强制应用各种字符编码的结果。 几种默认字符编码将会被_强制_应用于匹配区域附近。还会利用 chardet 检测这些字节是否符合_任何_已知编码的模式。如果 chardet 的置信度足够高(可配置),将显示使用该编码解码字节的尝试。
  5. 将匹配区域/解码结果导出为SVG、HTML和彩色文本文件。 展示你的ASCII艺术。

为什么这么做

Yaralyzer 的功能源自 The Pdfalyzer,当认识到在二进制文件中可视化和解码模式匹配不仅仅在PDF分析工具有用时,便将其提取出来。

对于不了解的人来说1,YARA 被标榜为恶意软件分析/警报工具,但实际上它既是更多也是更少。一种思考方式是,YARA 是一个增强版的正则表达式匹配引擎。它可以像任何正则表达式引擎一样在二进制文件中定位正则表达式匹配,但也能做更疯狂的事情,比如将正则表达式逻辑分组、对所有256个XOR版本的文件进行正则表达式比较、检查模式的 base64 和其他编码等。也许最重要的是,YARA 提供了一种基于文本的标准格式,供人们与世界_分享_他们的“强化”正则表达式。所有这些功能在分析或逆向工程恶意软件时特别有用,因为恶意软件作者通常会在隐藏内容上花费大量精力。

但……这也正是 YARA 所能做的全部。其他一切都取决于用户。YARA 只是一个匹配引擎,如果你不知道要匹配什么(甚至不知道可以在哪种字符编码下匹配),它只能帮你到这里。我发现尝试使用 YARA 查看几个关键模式的所有匹配时有些沮丧:

  1. 转义引号之间的字节(\".+\" 和 \'.+\')
  2. 正斜杠之间的字节(/.+/)。在许多实现中,正斜杠界定了正则表达式,我试图查看是否有任何匹配此模式的字节_实际上是_正则表达式。

YARA 只告诉你字节位置和匹配的字符串,但它无法告诉你这些字节是 UTF-8、UTF-16、Latin-1 等等(或都不是)。我还想了解匹配字节_区域_内的情况,而不仅仅是匹配字节_内_的情况。换句话说,我想确定匹配字节前后紧邻的字节范围。

Yaralyzer 应运而生,它让你能够快速扫描匹配区域周围,同时展示如果对这些区域强制应用各种字符编码会是什么样子。

Yaralyzer 不是一个恶意软件逆向工具。它无法做到像 CyberChef 这样的工具所能做的事情,也不试图去实现。它的目的更多是为你提供二进制文件中可疑区域的快速视觉概览,以便你可以专注于那些可能需要用更严肃工具检查的区域。

安装

使用 pipx 或 pip3 安装。pipx 是稍好的解决方案,因为它保证用其安装的任何包都将与你本地 Python 环境的其余部分隔离。当然,如果你没有本地 Python 环境,这点就无关紧要了,你可以放心使用 pip/pip3 安装。

root@kitploit:~
pipx install yaralyzer

用法

运行 yaralyze -h 查看命令行选项(下方截图)。

关于导出SVG图像、HTML等信息,请参见 示例输出。

配置

如果你在主目录或当前工作目录中放置一个名为 .yaralyzer 的文件,那么该文件中指定的环境变量将在每次调用 yaralyzer 时被添加到环境中。这提供了一种永久配置各种命令行选项的机制,避免重复输入。更多信息请参见示例文件 .yaralyzer.example 中的注释。

每次只会加载一个 .yaralyzer 文件,且工作目录的 .yaralyzer 优先于主目录的 .yaralyzer。

作为库使用

Yaralyzer 是主类。Yaralyzer 各种类和方法的自动生成文档可在 此处 找到。它支持多种 替代构造函数:

  1. 预编译的 YARA 规则
  2. 从字符串创建 YARA 规则
  3. 从文件加载 YARA 规则
  4. 加载目录中所有 .yara 文件的 YARA 规则
  5. 扫描 bytes
  6. 扫描文件

如果你想迭代 Yaralyzer 使用的 BytesMatch(类似 re.Match 对象,用于 YARA 匹配)和 BytesDecoder(跟踪解码尝试统计信息)对象,可以这样做:

root@kitploit:~
from yaralyzer.yaralyzer import Yaralyzer

yaralyzer = Yaralyzer.for_rules_files(['/secret/rule.yara'], 'lacan_buys_the_dip.pdf')

for bytes_match, bytes_decoder in yaralyzer.match_iterator():
    do_stuff()

故障排除

如果你遇到带有数字错误代码的 yara.Error,可以 在此 查看该代码可能的含义。

示例输出

Yaralyzer 可以将可视化结果导出为 HTML、ANSI 彩色文本,以及 PNG 和 SVG 矢量图像,使用 Rich 附带的文件导出功能,同时还支持(功能有限的)纯文本 JSON 格式。

如果你想直接从 Yaralyzer 导出类似下面的 .png 图像,你需要执行以下之一:

  1. 安装 Inkscape(homebrew 用户可以使用 brew install --cask inkscape 安装)
  2. 在安装 Yaralyzer 时请求 img 额外组件,这将安装 cairosvg:pipx install yaralyzer[img]。你还需要根据操作系统手动安装 CairoSVG 可执行文件,具体请参见 CairoSVG 文档。

根据我们的经验,Inkscape 和 CairoSVG 都可以工作,但我们在使用 CairoSVG 渲染 Yaralyzer 生成的 SVG 时遇到了一些问题,因此推荐使用 Inkscape。

原始 YARA 匹配结果:

显示十六进制、原始 Python 字符串,以及对匹配字节及其前后字节的各种尝试解码(可配置):

额外功能:查看 chardet.detect() 对这些字节属于某种编码/语言的可能性的判断:

贡献

欢迎贡献;有关环境设置、运行测试套件等详细信息,请参见 CONTRIBUTING.md。那里还有一个待办事项列表,列出了需要完成的工作。

Footnotes

  1. https://raw.githubusercontent.com/michelcrypt4d4mus/yaralyzer/HEAD/%E5%B0%B1%E5%83%8F%E6%88%91%E7%9B%B4%E5%88%B0%E6%9C%80%E8%BF%91%E9%82%A3%E6%A0%B7%E3%80%82 ↩

下载工具