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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
yaraQA — YARA नियम विश्लेषक जो नियम की गुणवत्ता और प्रदर्शन में सुधार करता है | Kitploit
उपकरण/GitHubGitHub/neo23x0/yaraqa
स्थैतिक विश्लेषणभेद्यता विश्लेषणकोड विश्लेषणमालवेयर विश्लेषण
GitHubneo23x0/yaraqa

yaraQA

YARA नियम विश्लेषक जो नियम की गुणवत्ता और प्रदर्शन में सुधार करता है

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

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

सभी देखें →

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

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

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

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

yaraQA

YARA नियम विश्लेषक नियम गुणवत्ता और प्रदर्शन में सुधार करने के लिए

क्यों?

YARA नियम वाक्यात्मक रूप से सही हो सकते हैं लेकिन फिर भी निष्क्रिय हो सकते हैं। yaraQA इन मुद्दों को YARA नियम सेट के लेखक या अनुरक्षक को खोजने और रिपोर्ट करने का प्रयास करता है।

yaraQA जिन मुद्दों का पता लगाने का प्रयास करता है, उदाहरण के लिए:

  • ऐसे नियम जो वाक्यात्मक रूप से सही हैं लेकिन स्थिति में त्रुटियों के कारण कभी मेल नहीं खाते (उदा. एक स्ट्रिंग वाला नियम और स्थिति में 2 of them)
  • ऐसे नियम जो स्ट्रिंग और संशोधक संयोजनों का उपयोग करते हैं जो शायद गलत हैं (उदा. $ = "\\Debug\\" fullword)
  • प्रदर्शन संबंधी समस्याएं छोटे एटम, दोहराए जाने वाले वर्णों या लूप के कारण (उदा. $ = "AA"; --ignore-performance का उपयोग करके विश्लेषण से बाहर किया जा सकता है)

मैं समय के साथ परीक्षण सेट का विस्तार करने जा रहा हूँ। प्रत्येक मामूली संस्करण में नई सुविधाएँ या नए परीक्षण शामिल होंगे।

आवश्यकताएँ स्थापित करें

root@kitploit:~
pip install -r requirements.txt

उपयोग

root@kitploit:~
usage: yaraQA.py [-h] [-f yara files [yara files ...]] [-d yara files [yara files ...]] [-o outfile] [-b baseline] [-l level]
                 [--ignore-performance] [--debug]

YARA RULE ANALYZER

optional arguments:
  -h, --help            show this help message and exit
  -f yara files [yara files ...]
                        Path to input files (one or more YARA rules, separated by space)
  -d yara files [yara files ...]
                        Path to input directory (YARA rules folders, separated by space)
  -o outfile            Output file that lists the issues (JSON, default: 'yaraQA-issues.json') 
  -b baseline           Use a issues baseline (issues found and reviewed before) to filter issues
  -l level              Minium level to show (1=informational, 2=warning, 3=critical)
  --ignore-performance  Suppress performance-related rule issues
  --debug               Debug output

इसे आज़माएं

root@kitploit:~
python3 yaraQA.py -d ./test/

सभी प्रदर्शन मुद्दों को दबाएं और केवल पहचान/तर्क मुद्दे दिखाएं।

root@kitploit:~
python3 yaraQA.py -d ./test/ --ignore-performance

सूचनात्मक प्रकृति के सभी मुद्दों को दबाएं

root@kitploit:~
python3 yaraQA.py -d ./test/ -level 2

केवल नए मुद्दों को देखने के लिए बेसलाइन का उपयोग करें (उन मुद्दों को नहीं जिनकी आप पहले ही समीक्षा कर चुके हैं)। बेसलाइन फ़ाइल एक समीक्षित स्थिति का पुराना JSON आउटपुट है।

root@kitploit:~
python3 yaraQA.py -d ./test/ -b yaraQA-reviewed-issues.json

मुद्दों वाले उदाहरण नियम

मुद्दों वाले उदाहरण नियम ./test फ़ोल्डर में पाए जा सकते हैं।

आउटपुट

yaraQA डिफ़ॉल्ट रूप से पाए गए मुद्दों को yaraQA-issues.json नामक फ़ाइल में लिखता है।

यह सूची yaraQA द्वारा JSON प्रारूप में उत्पन्न आउटपुट का एक उदाहरण दिखाती है:

root@kitploit:~
[
    {
        "rule": "Demo_Rule_1_Fullword_PDB",
        "id": "SM1",
        "issue": "The rule uses a PDB string with the modifier 'wide'. PDB strings are always included as ASCII strings. The 'wide' keyword is unneeded.",
        "element": {
            "name": "$s1",
            "value": "\\\\i386\\\\mimidrv.pdb",
            "type": "text",
            "modifiers": [
                "ascii",
                "wide",
                "fullword"
            ]
        },
        "level": "info",
        "type": "logic",
        "recommendation": "Remove the 'wide' modifier"
    },
    {
        "rule": "Demo_Rule_1_Fullword_PDB",
        "id": "SM2",
        "issue": "The rule uses a PDB string with the modifier 'fullword' but it starts with two backslashes and thus the modifier could lead to a dysfunctional rule.",
        "element": {
            "name": "$s1",
            "value": "\\\\i386\\\\mimidrv.pdb",
            "type": "text",
            "modifiers": [
                "ascii",
                "wide",
                "fullword"
            ]
        },
        "level": "warning",
        "type": "logic",
        "recommendation": "Remove the 'fullword' modifier"
    },
    {
        "rule": "Demo_Rule_2_Short_Atom",
        "id": "PA2",
        "issue": "The rule contains a string that turns out to be a very short atom, which could cause a reduced performance of the complete rule set or increased memory usage.",
        "element": {
            "name": "$s1",
            "value": "{ 01 02 03 }",
            "type": "byte"
        },
        "level": "warning",
        "type": "performance",
        "recommendation": "Try to avoid using such short atoms, by e.g. adding a few more bytes to the beginning or the end (e.g. add a binary 0 in front or a space after the string). Every additional byte helps."
    },
    {
        "rule": "Demo_Rule_3_Fullword_FilePath_Section",
        "id": "SM3",
        "issue": "The rule uses a string with the modifier 'fullword' but it starts and ends with two backslashes and thus the modifier could lead to a dysfunctional rule.",
        "element": {
            "name": "$s1",
            "value": "\\\\ZombieBoy\\\\",
            "type": "text",
            "modifiers": [
                "ascii",
                "fullword"
            ]
        },
        "level": "warning",
        "type": "logic",
        "recommendation": "Remove the 'fullword' modifier"
    },
    {
        "rule": "Demo_Rule_4_Condition_Never_Matches",
        "id": "CE1",
        "issue": "The rule uses a condition that will never match",
        "element": {
            "condition_segment": "2 of",
            "num_of_strings": 1
        },
        "level": "error",
        "type": "logic",
        "recommendation": "Fix the condition"
    },
    {
        "rule": "Demo_Rule_5_Condition_Short_String_At_Pos",
        "id": "PA1",
        "issue": "This rule looks for a short string at a particular position. A short string represents a short atom and could be rewritten to an expression using uint(x) at position.",
        "element": {
            "condition_segment": "$mz at 0",
            "string": "$mz",
            "value": "MZ"
        },
        "level": "warning",
        "type": "performance",
        "recommendation": ""
    },
    {
        "rule": "Demo_Rule_5_Condition_Short_String_At_Pos",
        "id": "PA2",
        "issue": "The rule contains a string that turns out to be a very short atom, which could cause a reduced performance of the complete rule set or increased memory usage.",
        "element": {
            "name": "$mz",
            "value": "MZ",
            "type": "text",
            "modifiers": [
                "ascii"
            ]
        },
        "level": "warning",
        "type": "performance",
        "recommendation": "Try to avoid using such short atoms, by e.g. adding a few more bytes to the beginning or the end (e.g. add a binary 0 in front or a space after the string). Every additional byte helps."
    },
    {
        "rule": "Demo_Rule_6_Condition_Short_Byte_At_Pos",
        "id": "PA1",
        "issue": "This rule looks for a short string at a particular position. A short string represents a short atom and could be rewritten to an expression using uint(x) at position.",
        "element": {
            "condition_segment": "$mz at 0",
            "string": "$mz",
            "value": "{ 4d 5a }"
        },
        "level": "warning",
        "type": "performance",
        "recommendation": ""
    },
    {
        "rule": "Demo_Rule_6_Condition_Short_Byte_At_Pos",
        "id": "PA2",
        "issue": "The rule contains a string that turns out to be a very short atom, which could cause a reduced performance of the complete rule set or increased memory usage.",
        "element": {
            "name": "$mz",
            "value": "{ 4d 5a }",
            "type": "byte"
        },
        "level": "warning",
        "type": "performance",
        "recommendation": "Try to avoid using such short atoms, by e.g. adding a few more bytes to the beginning or the end (e.g. add a binary 0 in front or a space after the string). Every additional byte helps."
    },
    {
        "rule": "Demo_Rule_6_Condition_Short_Byte_At_Pos",
        "id": "SM3",
        "issue": "The rule uses a string with the modifier 'fullword' but it starts and ends with two backslashes and thus the modifier could lead to a dysfunctional rule.",
        "element": {
            "name": "$s1",
            "value": "\\\\Section\\\\in\\\\Path\\\\",
            "type": "text",
            "modifiers": [
                "ascii",
                "fullword"
            ]
        },
        "level": "warning",
        "type": "logic",
        "recommendation": "Remove the 'fullword' modifier"
    }
]

स्क्रीनशॉट

yaraQA

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