Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
yaraast — 抽象構文木(AST)表現を用いてYARAルールの解析・分析・操作を行うための強力なPythonライブラリおよびCLIツールです。 | Kitploit
ツール/GitHubGitHub/seifreed/yaraast
静的分析脆弱性分析コード分析スクリプトと自動化マルウェア分析ユーティリティとフレームワーク
GitHubseifreed/yaraast

yaraast

抽象構文木(AST)表現を用いてYARAルールの解析・分析・操作を行うための強力なPythonライブラリおよびCLIツールです。

リポジトリを見る
5458813日前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ツールでサポートします。

主な機能

機能説明
マルチ方言解析ファイルまたは文字列からYARA、YARA-L、YARA-Xを解析
自動方言検出統合パーサーがルールの方言を自動検出
ASTツールASTの構築、変換、差分、シリアライズ
フォーマットと検証parse/format/validateワークフロー用CLIコマンド
ストリーミングサポートストリーミングモードで非常に大きなファイルを解析
エコシステム統合オプションのLSPおよびlibyara関連機能

対応ルールエコシステム

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コマンド

コマンド説明
parseルールファイルを解析し、YARA/JSON/YAML/treeを出力
validateルールを検証し、検証サブコマンドを実行
fmtASTベースのフォーマッター(--check と --diff 付き)
format入力をターゲット出力ファイルにフォーマット
validate-syntax構文に焦点を当てた検証エントリポイント
lspLanguage Server Protocol機能を起動

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) raises 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. リポジトリをフォーク
  2. ブランチを作成(git checkout -b feature/your-change)
  3. 変更をコミット(git commit -m "Add your change")
  4. プッシュ(git push origin feature/your-change)
  5. プルリクエストを開く

プロジェクトポリシーは SECURITY.md、CODE_OF_CONDUCT.md、CHANGELOG.md、および MIGRATING.md に文書化されています。


ライセンス

このプロジェクトはMITライセンスの下でライセンスされています - LICENSE を参照してください。

著者

  • Marc Rivero ([email protected])
  • リポジトリ: github.com/seifreed/yaraast

マルウェア分析と検知エンジニアリングのワークフローのために構築されました

ツールをダウンロード