
🐍 उच्च-प्रदर्शन, मल्टी-थ्रेडेड YARA और IOC स्कैनर

Rust में Loki का पुनर्लेखन। एकल बाइनरी में उच्च-प्रदर्शन, मल्टी-थ्रेडेड YARA और IOC स्कैनर।
स्थिति: बीटा। काम करता है, लेकिन अभी भी सक्रिय विकास के अंतर्गत है।
macOS पर प्रक्रिया मेमोरी स्कैनिंग सर्वोत्तम-प्रयास है और इसमें आमतौर पर डिबगिंग एंटाइटलमेंट या उन्नत विशेषाधिकारों की आवश्यकता होती है। उनके बिना, Loki-RS फ़ाइलों को स्कैन करेगा लेकिन अधिकांश प्रक्रिया मेमोरी पढ़ने में सक्षम नहीं होगा। यदि आवश्यक हो तो प्रक्रिया स्कैनिंग छोड़ने के लिए --no-procs का उपयोग करें।
Linux पर, Loki-RS /proc/<pid>/mem पढ़ने से पहले डिवाइस-समर्थित और कर्नेल-विशेष प्रक्रिया मैपिंग को छोड़ देता है। यह कुछ ड्राइवर-प्रबंधित VMA के साथ ज्ञात अस्थिरता से बचाता है, जबकि सामान्य अनाम, हीप/स्टैक और नियमित फ़ाइल-समर्थित मेमोरी स्कैनिंग को संरक्षित करता है। यदि आप अभी भी पर्यावरण-विशिष्ट समस्याओं का सामना करते हैं, तो प्रक्रिया स्कैनिंग को अक्षम करने के लिए --no-procs का उपयोग करें।
अपने प्लेटफ़ॉर्म के लिए पूर्व-संकलित बाइनरी रिलीज़ पेज से डाउनलोड करें।
# Extract
tar -xzvf loki-linux-*.tar.gz
cd loki-linux-*
# Update signatures (recommended)
./loki-util update
# Run
sudo ./loki --help
हस्ताक्षर रिलीज़ के साथ आते हैं लेकिन जल्दी पुराने हो जाते हैं। नवीनतम YARA-Forge Core नियम प्राप्त करने के लिए loki-util update चलाएँ।
Loki-RS अपने डिफ़ॉल्ट हस्ताक्षर स्रोत के रूप में YARA Forge का उपयोग करता है। Loki-RS Core नियम सेट के साथ आता है और अपडेट होता है (उच्च सटीकता, कम गलत सकारात्मक, प्रदर्शन के लिए अनुकूलित)। यदि आपको व्यापक कवरेज की आवश्यकता है, तो आप YARA Forge से Extended या Full सेट का उपयोग कर सकते हैं।
signatures/iocs/ में IOC फ़ाइलें वैकल्पिक स्थानीय/कस्टम सामग्री के रूप में समर्थित रहती हैं।
# Basic scan (TUI enabled by default)
sudo ./loki
# Scan specific folder
sudo ./loki --folder /tmp
# Disable TUI, use standard command-line output
sudo ./loki --no-tui
# Scan a mounted image (skip process scanning, use all cores)
sudo ./loki --no-procs --folder ~/image1 --threads 0
# Slow and cautious scan (lower CPU limit, single thread)
sudo ./loki --cpu-limit 60 --threads 1
# Scan and send logs to remote syslog
sudo ./loki --remote syslog-host.internal:514 --remote-proto udp


| विकल्प | डिफ़ॉल्ट | विवरण |
|---|---|---|
-f, --folder <PATH> | / | स्कैन करने के लिए फ़ोल्डर। स्थान वाले पथों को उद्धृत करें, उदा. -f "J:\SteamLibrary\steamapps\common\SpaceCraft beta" |
| विकल्प | डिफ़ॉल्ट | विवरण |
|---|---|---|
--no-procs | false | प्रक्रिया मेमोरी स्कैनिंग छोड़ें |
--no-fs | false | फ़ाइलसिस्टम स्कैनिंग छोड़ें |
--no-archive | false | आर्काइव (ZIP) के अंदर स्कैन करना छोड़ें |
--scan-all-drives | false | माउंटेड/नेटवर्क/क्लाउड सहित सभी ड्राइव स्कैन करें |
--scan-all-files | false | एक्सटेंशन/प्रकार की परवाह किए बिना सभी फ़ाइलें स्कैन करें |
| विकल्प | डिफ़ॉल्ट | विवरण |
|---|---|---|
-l, --log <FILE> | auto | सादा पाठ लॉग फ़ाइल |
--no-log | false | सादा पाठ लॉग आउटपुट अक्षम करें |
-j, --jsonl <FILE> | auto | JSONL आउटपुट फ़ाइल |
--no-jsonl | false | JSONL आउटपुट अक्षम करें |
--no-html | false | HTML रिपोर्ट निर्माण अक्षम करें |
--no-tui | false | TUI अक्षम करें, मानक कमांड-लाइन आउटपुट का उपयोग करें |
-r, --remote <HOST:PORT> | none | रिमोट syslog गंतव्य |
-p, --remote-proto <PROTO> | udp | रिमोट प्रोटोकॉल (udp/tcp) |
--remote-format <FMT> | syslog | रिमोट प्रारूप (syslog/json) |
| विकल्प | डिफ़ॉल्ट | विवरण |
|---|---|---|
--alert-level <SCORE> | 80 | ALERT के लिए स्कोर थ्रेशोल्ड |
--warning-level <SCORE> | 60 | WARNING के लिए स्कोर थ्रेशोल्ड |
--notice-level <SCORE> | 40 | NOTICE के लिए स्कोर थ्रेशोल्ड |
--max-reasons <NUM> | 2 | प्रति खोज प्रदर्शित करने के लिए अधिकतम मिलान कारण |
-m, --max-file-size <BYTES> | 64000000 | स्कैन करने के लिए अधिकतम फ़ाइल आकार (64MB) |
--yara-timeout <SECONDS> | 10 | प्रत्येक फ़ाइल या प्रक्रिया-मेमोरी बफर के लिए अधिकतम YARA स्कैन समय (न्यूनतम: 1 सेकंड) |
-c, --cpu-limit <PERCENT> | 100 | CPU उपयोग सीमा (1-100) |
--threads <NUM> | -2 | थ्रेड्स की संख्या (0=सभी, -1=सभी-1, -2=सभी-2) |
| विकल्प | डिफ़ॉल्ट | विवरण |
|---|---|---|
--version | - | संस्करण दिखाएं और बाहर निकलें |
-d, --debug | false | डिबग आउटपुट दिखाएं |
--trace | false | विस्तृत ट्रेस आउटपुट दिखाएं |
--show-access-errors | false | फ़ाइल/प्रक्रिया एक्सेस त्रुटियाँ दिखाएं |
Loki-RS स्कैन से फ़ाइलों और फ़ोल्डरों को बाहर करने के लिए कई तंत्र प्रदान करता है।
डिफ़ॉल्ट रूप से, Loki-RS स्वचालित रूप से बाहर करता है:
सिस्टम निर्देशिकाएँ (Linux/macOS):
/proc, /dev, /sys/kernel/debug, /sys/kernel/slab, /sys/kernel/tracing, /sys/devices/run, /var/runक्लाउड स्टोरेज निर्देशिकाएँ (जब तक --scan-all-drives का उपयोग न किया जाए):
नेटवर्क और माउंटेड ड्राइव (जब तक --scan-all-drives का उपयोग न किया जाए):
/media, /volumes के अंतर्गत बाहरी मीडियाप्रोग्राम निर्देशिका:
| विकल्प | विवरण |
|---|---|
--scan-all-drives | माउंटेड ड्राइव, नेटवर्क ड्राइव और क्लाउड स्टोरेज शामिल करें |
--scan-all-files | फ़ाइल प्रकार/एक्सटेंशन की परवाह किए बिना सभी फ़ाइलें स्कैन करें (डिफ़ॉल्ट रूप से, केवल प्रासंगिक फ़ाइल प्रकार स्कैन किए जाते हैं) |
-m, --max-file-size <BYTES> | इस आकार से बड़ी फ़ाइलें छोड़ें (डिफ़ॉल्ट: 64MB) |
--no-procs | प्रक्रिया मेमोरी स्कैनिंग पूरी तरह से छोड़ें |
--no-fs | फ़ाइलसिस्टम स्कैनिंग पूरी तरह से छोड़ें |
--no-archive | आर्काइव फ़ाइलों (ZIP) के अंदर स्कैन करना छोड़ें |
आप ज्ञात अच्छी फ़ाइलों को उनके हैश द्वारा बाहर कर सकते हैं। यह उन वैध फ़ाइलों को व्हाइटलिस्ट करने के लिए उपयोगी है जो गलत सकारात्मक को ट्रिगर करती हैं।
सेटअप:
signatures/iocs/ में एक फ़ाइल बनाएं जिसमें फ़ाइलनाम में hash और falsepositive दोनों हों
उदाहरण: hash-falsepositive-custom.txt
वैकल्पिक विवरण के साथ हैश (MD5, SHA1, या SHA256) जोड़ें:
# फ़ॉर्मेट: HASH;विवरण
d41d8cd98f00b204e9800998ecf8427e;खाली फ़ाइल - ज्ञात अच्छा
a7f5f35426b927411fc9231b56382173;वैध सिस्टम उपयोगिता
इन हैश से मेल खाने वाली फ़ाइलें स्कैनिंग के दौरान चुपचाप छोड़ दी जाएंगी।