Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
yaraast — YARA नियमों को Abstract Syntax Tree (AST) प्रतिनिधित्व के माध्यम से पार्स करने, विश्लेषण करने और हेरफेर करने के लिए एक शक्तिशाली Python लाइब्रेरी और CLI टूल | Kitploit
उपकरण/GitHubGitHub/seifreed/yaraast
स्थैतिक विश्लेषणभेद्यता विश्लेषणकोड विश्लेषणस्क्रिप्टिंग और स्वचालनमालवेयर विश्लेषणउपयोगिताएँ और फ्रेमवर्क
GitHubseifreed/yaraast

yaraast

YARA नियमों को Abstract Syntax Tree (AST) प्रतिनिधित्व के माध्यम से पार्स करने, विश्लेषण करने और हेरफेर करने के लिए एक शक्तिशाली Python लाइब्रेरी और CLI टूल

रिपॉजिटरी देखें
5458813 दिन पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

YARAAST

yaraast

Python AST टूलकिट के साथ YARA नियमों को पार्स, विश्लेषित और रूपांतरित करें

CI License: MIT Python 3.11-3.14

GitHub Stars GitHub Issues Docs


अवलोकन

yaraast एक Python लाइब्रेरी है जो Abstract Syntax Trees (AST) का उपयोग करके YARA-परिवार के नियमों को पार्स और हेरफेर करने के लिए है। यह स्वचालित डायलेक्ट पहचान और CLI टूलिंग के साथ क्लासिक YARA, YARA-L, और YARA-X वर्कफ़्लो का समर्थन करता है।

मुख्य विशेषताएँ

विशेषताविवरण
बहु-डायलेक्ट पार्सिंगफ़ाइलों या स्ट्रिंग्स से YARA, YARA-L, और YARA-X पार्स करें
स्वचालित डायलेक्ट पहचानएकीकृत पार्सर नियम डायलेक्ट्स का स्वतः पता लगाता है
AST टूलिंगAST बनाएं, रूपांतरित करें, अंतर देखें, और क्रमबद्ध करें
फ़ॉर्मेटिंग और सत्यापनपार्स/फ़ॉर्मेट/वैलिडेट वर्कफ़्लो के लिए 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. एक Pull Request खोलें

परियोजना नीति SECURITY.md, CODE_OF_CONDUCT.md, CHANGELOG.md, और MIGRATING.md में प्रलेखित है।


लाइसेंस

यह परियोजना MIT लाइसेंस के तहत लाइसेंस प्राप्त है - LICENSE देखें।

लेखक

  • Marc Rivero ([email protected])
  • रिपॉजिटरी: github.com/seifreed/yaraast

मैलवेयर विश्लेषण और डिटेक्शन इंजीनियरिंग वर्कफ़्लो के लिए निर्मित

टूल डाउनलोड करें