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

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

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

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

工具目录

分类

查看所有分类
Loading categories
yaraast — 一个强大的Python库和CLI工具,用于通过抽象语法树(AST)表示来解析、分析和操作YARA规则。 | Kitploit
工具/GitHubGitHub/seifreed/yaraast
静态分析漏洞分析代码分析脚本与自动化恶意软件分析实用工具与框架
GitHubseifreed/yaraast

yaraast

一个强大的Python库和CLI工具,用于通过抽象语法树(AST)表示来解析、分析和操作YARA规则。

查看仓库
5454612天前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

YARAAST

yaraast

使用 Python AST 工具包解析、分析和转换 YARA 规则

CI License: MIT Python 3.11-3.14

GitHub Stars GitHub Issues Docs


概述

yaraast 是一个用于使用抽象语法树(AST)解析和操作 YARA 系列规则的 Python 库。它支持经典 YARA、YARA-L 和 YARA-X 工作流,并具备自动方言检测和 CLI 工具。

主要特性

支持的规则生态

root@kitploit:~
Dialects   YARA, YARA-L, YARA-X
Parsers    Standard parser, unified parser, streaming parser
Outputs    YARA, JSON, YAML, AST tree views
Tooling    CLI, visitors, builders, serialization, semantic checks

不同方言的支持级别有所不同。经典 YARA 为稳定版,YARA-X 为测试版, YARA-L 为实验版,自动方言检测为尽力而为。请参阅 兼容性矩阵 了解 CI 所测试的确切引擎和 能力。


安装

从 PyPI 安装(推荐)

root@kitploit:~
pip install yaraast

从源码安装

root@kitploit:~
git clone https://github.com/seifreed/yaraast.git
cd yaraast
python3 -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
pip install -e .

快速开始

root@kitploit:~
import yaraast

yara_code = """
rule example {
    strings:
        $a = "malware" nocase
    condition:
        $a
}
"""

document = yaraast.parse(yara_code)
print(document.ast.rules[0].name)

用法

命令行界面

root@kitploit:~
# 解析并打印规范化后的 YARA
yaraast parse rules.yar

# 解析为 JSON
yaraast parse rules.yar --format json

# 使用显式方言解析
yaraast parse rules.yar --dialect yara-x

# 验证文件(语法 + 解析检查)
yaraast validate rules.yar

# 原地格式化文件(基于 AST 的格式化器)
yaraast fmt rules.yar

# 检查格式而不修改文件
yaraast fmt rules.yar --check

核心 CLI 命令


Python 库

统一解析

root@kitploit:~
from pathlib import Path

import yaraast

source = "rule example { condition: true }"

# 自动检测方言
document = yaraast.parse(source)

# 强制指定方言
document = yaraast.parse(source, dialect="yara")

# 解析文件、生成新源码并以规范方式格式化
Path("rules.yar").write_text(source, encoding="utf-8")
file_document = yaraast.parse_file("rules.yar")
generated = yaraast.generate(file_document)
formatted = yaraast.format_canonical(source, dialect="yara")

# 保留显式 UTF-8 字节编辑之外的所有字节
offset = source.encode("utf-8").index(b"true")
rewritten = yaraast.rewrite_lossless(
    source,
    [yaraast.SourceEdit(offset, offset + 4, "false")],
)

# 公共解析器应用有界默认值。需要时可在每次操作中覆盖它们。
limits = yaraast.ResourceLimits(max_input_bytes=1024 * 1024, parse_deadline=5.0)
document = yaraast.parse(source, resource_limits=limits)

cancel = yaraast.CancellationToken()
cancel.cancel()
# yaraast.parse(source, cancellation_token=cancel) 会抛出 ParseCancelledError

ResourceLimits() 会显式禁用所有限制。CLI 解析使用公共 默认值;LSP 解析使用更严格的输入、令牌、嵌套、模式和截止时间 限制,并且在取消或限制失败后绝不缓存部分结果。

直接解析器 + 访问器

root@kitploit:~
from pathlib import Path

from yaraast.parser import Parser
from yaraast.visitor import BaseVisitor

class RuleCollector(BaseVisitor):
    def __init__(self):
        self.rules = []

    def visit_rule(self, node):
        self.rules.append(node.name)
        super().visit_rule(node)

ast = Parser(Path("rules.yar").read_text(encoding="utf-8")).parse()
collector = RuleCollector()
collector.visit(ast)
print(collector.rules)

可选依赖

root@kitploit:~
# LSP 支持
pip install yaraast[lsp]

# libyara 集成
pip install yaraast[libyara]

# 性能工具
pip install yaraast[performance]

# 可视化支持
pip install yaraast[visualization]

# 运行时支持包
pip install yaraast[all]

# 运行时和开发工具
pip install yaraast[dev-all]

运行时文档

  • 方言兼容性:docs/compatibility.md
  • LSP 运行时内部机制:docs/lsp-runtime.md
  • LSP 对等性报告:docs/lsp-parity-report.md
  • 最新运行时基准测试产物:docs/benchmarks/lsp-runtime-latest.json

要求

  • Python 3.11、3.12、3.13 或 3.14
  • 完整依赖和附加项列表请参阅 pyproject.toml

贡献

欢迎贡献。请参阅 CONTRIBUTING.md 了解设置、质量检查和流程指南。

  1. Fork 仓库
  2. 创建分支(git checkout -b feature/your-change)
  3. 提交更改(git commit -m "Add your change")
  4. 推送(git push origin feature/your-change)
  5. 打开 Pull Request

项目政策记录在 SECURITY.md、 CODE_OF_CONDUCT.md、CHANGELOG.md 和 MIGRATING.md 中。


许可证

本项目采用 MIT 许可证 - 请参阅 LICENSE。

作者

  • Marc Rivero([email protected])
  • 仓库:github.com/seifreed/yaraast

专为恶意软件分析和检测工程工作流而构建

下载工具
特性描述
多方言解析从文件或字符串解析 YARA、YARA-L 和 YARA-X
自动方言检测统一解析器自动检测规则方言
AST 工具构建、转换、比较和序列化 AST
格式化与验证用于解析/格式化/验证工作流的 CLI 命令
流式支持以流式模式解析非常大的文件
生态集成可选的 LSP 和 libyara 相关能力
命令描述
parse解析规则文件并输出 YARA/JSON/YAML/树
validate验证规则并运行验证子命令
fmt基于 AST 的格式化器(支持 --check 和 --diff)
format将输入格式化为目标输出文件
validate-syntax面向语法验证的入口点
lsp启动语言服务器协议功能