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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
evtx — विंडोज XML इवेंट लॉग (EVTX) प्रारूप के लिए एक तेज़ (और सुरक्षित) पार्सर | Kitploit
उपकरण/GitHubGitHub/omerbenamram/evtx
फोरेंसिकडिजिटल फोरेंसिकघटना प्रतिक्रियालॉग विश्लेषण
GitHubomerbenamram/evtx

evtx

विंडोज XML इवेंट लॉग (EVTX) प्रारूप के लिए एक तेज़ (और सुरक्षित) पार्सर

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

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

सभी देखें →

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

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

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

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

EVTX

Windows XML EventLog प्रारूप के लिए एक क्रॉस-प्लेटफ़ॉर्म पार्सर


Crates.io version Download docs.rs docs safety-dance Build status

विशेषताएँ

  • 🔒 100% सुरक्षित रस्ट का उपयोग करके कार्यान्वित - और रस्ट द्वारा समर्थित सभी प्लेटफार्मों पर काम करता है (जिनके पास stdlib है)।
  • ⚡ तेज़ - नीचे बेंचमार्क देखें। यह किसी भी अन्य कार्यान्वयन की तुलना में परिमाण के क्रम (क्रमों) से तेज़ है!
  • 🚀 मल्टी-थ्रेडेड।
  • ✨ XML और JSON आउटपुट का समर्थन करता है, दोनों सीधे एक साझा मध्यवर्ती अभिव्यक्ति (IR) से निर्मित होते हैं (कोई xml2json रूपांतरण नहीं किया जाता है!)
  • ⛏️ लापता रिकॉर्ड/चंक की कुछ बुनियादी पुनर्प्राप्ति का समर्थन करता है!
  • 🐍 Python बाइंडिंग https://github.com/omerbenamram/pyevtx-rs पर भी उपलब्ध हैं (और PyPi https://pypi.org/project/evtx/ पर)

वेब-आधारित दर्शक (EVTX Web)

EVTX Web Screenshot

क्या आप शून्य-इंस्टॉल विकल्प पसंद करते हैं? एक पूर्ण-सुविधा संपन्न EVTX एक्सप्लोरर सीधे आपके ब्राउज़र में चलता है, जो उसी Rust कोर द्वारा संचालित है जो WebAssembly में संकलित है।

👉 अभी आज़माएं: https://omerbenamram.github.io/evtx/

सब कुछ स्थानीय रूप से होता है – फ़ाइलें कभी आपकी मशीन नहीं छोड़तीं। मुख्य विशेषताएं:

  • ड्रैग-एंड-ड्रॉप .evtx फ़ाइलें (या ब्राउज़ करने के लिए क्लिक करें) – बहुत बड़े लॉग को भी संभालता है!
  • WebAssembly और वर्चुअल-स्क्रॉल रेंडरिंग के माध्यम से तीव्र पार्सिंग
  • स्तर, प्रदाता, चैनल, इवेंट आईडी और गतिशील EventData फ़ील्ड पर फ़ैक्टेड फ़िल्टर – सभी DuckDB-WASM द्वारा समर्थित
  • पूर्ण-पाठ खोज, कॉलम प्रबंधन, और फ़िल्टर किए गए सेट का ऑन-द-फ्लाई JSON/XML निर्यात
  • हल्के/गहरे थीम, कीबोर्ड नेविगेशन, और विंडोज-शैली UI

दर्शक GitHub Pages से स्थिर रूप से परोसा जाता है; पहले लोड के बाद यह पूरी तरह से ऑफ़लाइन काम करता है।

स्थापना (संबंधित बाइनरी उपयोगिता):

  • https://github.com/omerbenamram/evtx/releases से नवीनतम निष्पादन योग्य रिलीज़ डाउनलोड करें
    • रिलीज़ स्वचालित रूप से विंडोज, मैकओएस और लिनक्स के लिए बनाई जाती हैं। (केवल 64-बिट निष्पादन योग्य)
  • cargo install evtx का उपयोग करके स्रोतों से निर्माण करें

evtx_dump (बाइनरी उपयोगिता):

इस crate के साथ प्रदान की गई मुख्य बाइनरी उपयोगिता evtx_dump है, और यह .evtx फ़ाइलों को विभिन्न आउटपुट स्वरूपों में बदलने का एक त्वरित तरीका प्रदान करता है।

कुछ उदाहरण:

  • evtx_dump <evtx_file> evtx रिकॉर्ड की सामग्री को xml के रूप में डंप करेगा।
  • evtx_dump -o json <evtx_file> evtx रिकॉर्ड की सामग्री को JSON के रूप में डंप करेगा।
  • evtx_dump -f <output_file> -o json <input_file> evtx रिकॉर्ड की सामग्री को दी गई फ़ाइल में JSON के रूप में डंप करेगा।
  • cat <evtx_file> | evtx_dump -o jsonl - stdin से EVTX फ़ाइल पढ़ेगा (पाइपिंग/डीकंप्रेसन के लिए उपयोगी)।

evtx_dump को फ़ाइलों के सुविधाजनक बैच प्रोसेसिंग के लिए fd के साथ जोड़ा जा सकता है:

  • fd -e evtx -x evtx_dump -o jsonl एक फ़ोल्डर को स्कैन करेगा और सभी evtx फ़ाइलों को एक एकल jsonlines फ़ाइल में डंप करेगा।
  • fd -e evtx -x evtx_dump '{}' -f '{.}.xml' फ़ोल्डर में सभी फ़ाइलों के लिए प्रत्येक evtx फ़ाइल के बगल में एक xml फ़ाइल बनाएगा!
  • यदि फ़ाइल के स्रोत को json में जोड़ने की आवश्यकता है, तो xargs (या मैक पर gxargs) और jq का उपयोग किया जा सकता है: fd -a -e evtx | xargs -I input sh -c "evtx_dump -o jsonl input | jq --arg path "input" '. + {path: \$path}'"

ध्यान दें: डिफ़ॉल्ट रूप से, evtx_dump मल्टीथ्रेडिंग का उपयोग करने का प्रयास करेगा, जिसका अर्थ है कि रिकॉर्ड क्रम से बाहर वापस आ सकते हैं।

सिंगल थ्रेडेड उपयोग को बाध्य करने के लिए (जो क्रम भी सुनिश्चित करेगा), -t 1 पारित किया जा सकता है।

ऑफ़लाइन टेम्पलेट रेंडरिंग (WEVT_TEMPLATE)

EVTX रिकॉर्ड प्रदाता बाइनरी (EXE/DLL/SYS) में संग्रहीत टेम्पलेट परिभाषाओं को संदर्भित कर सकते हैं। evtx_dump उन टेम्पलेट्स को एक ऑफ़लाइन कैश में निकाल सकता है और रेंडर समय पर उनका उपयोग कर सकता है।

ध्यान दें: इस कार्यक्षमता के लिए evtx_dump को Cargo फीचर wevt_templates के साथ बनाने की आवश्यकता है (रिलीज़ बाइनरी में यह पहले से शामिल हो सकता है)।

  • एक कैश बनाएं (एकल पोर्टेबल .wevtcache फ़ाइल):
    • evtx_dump extract-wevt-templates --input <provider.dll> --output /tmp/wevt_cache.wevtcache --overwrite
  • कैश का उपयोग करते हुए एक EVTX फ़ाइल डंप करें (नियतात्मक नियम: केवल तब लागू होता है जब कोई रिकॉर्ड स्पष्ट रूप से गुम/दूषित टेम्पलेट GUID के कारण विफल होता है):
    • evtx_dump --wevt-cache /tmp/wevt_cache.wevtcache <log.evtx>

डिबगिंग सहायक:

  • किसी रिकॉर्ड के TemplateInstance प्रतिस्थापन मान डंप करें (JSONL):
    • evtx_dump dump-template-instances --input <log.evtx> --record-id <ID> | head -n1
  • प्रतिस्थापन के साथ एक विशिष्ट टेम्पलेट GUID रेंडर करें (XML से stdout):
    • evtx_dump apply-wevt-cache --cache /tmp/wevt_cache.wevtcache --template-guid <GUID> --evtx <log.evtx> --record-id <ID>

विवरण और पृष्ठभूमि के लिए docs/wevt_templates.md देखें (मुद्दा #103)।

लाइब्रेरी के रूप में उपयोग का उदाहरण:

root@kitploit:~
use evtx::EvtxParser;
use std::path::PathBuf;

// Change this to a path of your .evtx sample.
let fp = PathBuf::from(format!("{}/samples/security.evtx", std::env::var("CARGO_MANIFEST_DIR").unwrap()));

let mut parser = EvtxParser::from_path(fp).unwrap();
for record in parser.records() {
    match record {
        Ok(r) => println!("Record {}\n{}", r.event_record_id, r.data),
        Err(e) => eprintln!("{}", e),
    }
}

समानांतर संस्करण फीचर "multithreading" के साथ संकलित करने पर सक्षम होता है (डिफ़ॉल्ट रूप से सक्षम)।

प्रदर्शन बेंचमार्किंग

मल्टीथ्रेडिंग का उपयोग करते समय - evtx किसी भी उपलब्ध अन्य पार्सर की तुलना में काफी तेज़ है। एकल कोर प्रदर्शन के लिए, यह XML और JSON दोनों आउटपुट का समर्थन करने वाला सबसे तेज़ और एकमात्र क्रॉस-प्लेटफ़ॉर्म पार्सर है।

प्रदर्शन को मेरी मशीन पर hyperfine (सांख्यिकीय माप उपकरण) का उपयोग करके बेंच किया गया था।

मैं 12-कोर AMD Ryzen 3900X पर परीक्षण चला रहा हूं।

बेंच रन: जून 2026 (evtx 0.12.2)।

सिस्टम: Arch Linux (Linux 7.0.11-arch1-1 x86_64)।

बेंचमार्क कमिट: 99a6def।

evtx कॉलम — और pyevtx-rs, हमारे अपने Python बाइंडिंग, जो उसी Rust कोर को लपेटते हैं — को जून 2026 में इसी मशीन पर, संकलित-टेम्पलेट पुनर्लेखन के आने के बाद (देखें docs/compiled-templates.html) पुनः मापा गया। दोनों PGO बिल्ड हैं जो Linux/macOS के लिए भेजे जाते हैं (रिलीज़ बाइनरी और PyPI व्हील; विवरण नीचे)। pyevtx-rs प्रति-रिकॉर्ड Python मार्शलिंग (प्रति रिकॉर्ड एक dict) द्वारा सीमित है, पार्सर द्वारा नहीं, इसलिए यह पूर्ण कोर गति नहीं देखता है। शेष प्रतियोगी आंकड़े (libevtx, velocidex/evtx, golang-evtx, python-evtx) उसी हार्डवेयर पर जनवरी 2026 के रन से अपरिवर्तित लिए गए हैं — बाहरी उपकरण जिनका प्रदर्शन नहीं बदला है।

बेंच की गई लाइब्रेरी:

  • python-evtx(https://github.com/williballenthin/python-evtx) - CPython और PyPy के साथ
  • pyevtx-rs(https://github.com/omerbenamram/pyevtx-rs) / evtx(https://pypi.org/project/evtx/) - इस लाइब्रेरी के लिए Python बाइंडिंग
  • libevtx(https://github.com/libyal/libevtx)
  • golang-evtx(https://github.com/0xrawsec/golang-evtx.git) - केवल JSON (मल्टीथ्रेडिंग का उपयोग करता है)
  • evtx(https://github.com/Velocidex/evtx) - केवल JSON.
  • evtx (यह लाइब्रेरी)

नोट: दिखाए गए नंबर real-time माप हैं (आह्वान को पूरा करने में लगने वाला समय)। user-time माप अधिक होते हैं जब मल्टीथ्रेडिंग/मल्टीप्रोसेसिंग का उपयोग किया जाता है, सिंक्रनाइज़ेशन ओवरहेड के कारण।

8 थ्रेड के साथ - evtx xml लॉग डंप करते समय python-evtx से 7000x से अधिक तेज़ है।

थ्रूपुट अब इस 30MB नमूने पर लगभग 8 थ्रेड पर संतृप्त हो जाता है: सिंगल-थ्रेडेड पार्सिंग इतनी तेज़ हो गई है (उसी मशीन पर जनवरी 2026 की संख्याओं की तुलना में ~3.8x तेज़) कि 30MB में अब सभी 24 लॉजिकल कोर को व्यस्त रखने के लिए पर्याप्त काम नहीं है — 24 थ्रेड 8 से तेज़ नहीं है (दोनों माप शोर के भीतर हैं, इसलिए तालिका संतृप्ति बिंदु के रूप में 8-थ्रेड कॉलम को हाइलाइट करती है)। उस बिंदु पर evtx golang-evtx से लगभग 65x तेज़ है, जो समान मल्टीथ्रेडिंग रणनीति का उपयोग करता है।

PGO बिल्ड

उपरोक्त संख्याएं प्रोफ़ाइल-निर्देशित बिल्ड (./build_pgo.sh) से आती हैं: यह नमूना कोष पर एक इंस्ट्रूमेंटेड बाइनरी को प्रशिक्षित करती है, फिर उस प्रोफ़ाइल के साथ पुनर्निर्माण करती है। CI लिनक्स (x86_64) और macOS रिलीज़ बाइनरी के लिए इसे चलाता है, इसलिए तालिका उस आर्टिफैक्ट को दर्शाती है जिसे अधिकांश लोग डाउनलोड करते हैं (आउटपुट सामान्य बिल्ड के समान बाइट-आइडेंटिकल है)। PGO एक सादे cargo build --release --features fast-alloc पर लगभग 2–5% सिंगल-थ्रेडेड थ्रूपुट के लायक है (JSON 77.6 → 75 ms, XML 73.0 → 71 ms); 8+ थ्रेड पर वर्कलोड संतृप्ति-बाध्य है, इसलिए वहां PGO माप शोर के भीतर है।

चेतावनी

  • वर्तमान में लागू नहीं:
    • CDATA नोड्स।
    • EVTHandle नोड प्रकार।

यदि पार्सर इनमें से किसी भी नोड पर त्रुटि करता है, तो बेझिझक एक मुद्दा खोलें या मुझे एक नमूने के साथ एक ईमेल भेजें।

लाइसेंस

आपके विकल्प के अनुसार निम्नलिखित में से किसी एक के तहत लाइसेंस प्राप्त:

  • Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
  • MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)

योगदान

जब तक आप स्पष्ट रूप से अन्यथा नहीं कहते हैं, आपके द्वारा जानबूझकर कार्य में शामिल करने के लिए प्रस्तुत किया गया कोई भी योगदान, जैसा कि Apache-2.0 लाइसेंस में परिभाषित किया गया है, बिना किसी अतिरिक्त नियमों या शर्तों के ऊपर बताए अनुसार दोहरे लाइसेंस के अंतर्गत होगा।

टूल डाउनलोड करें
evtx (1 thread)evtx (8 threads)evtx (24 threads)libevtx (C)velocidex/evtx (go)golang-evtx (uses multiprocessing)pyevtx-rs (CPython 3.14.5)python-evtx (CPython 3.13.11)python-evtx (PyPy 7.3.19)
30MB evtx (XML)71.6 ms ± 1.8 ms20.7 ms ± 1.0 ms22.1 ms ± 1.7 ms2.439 s ± 0.035 sNo supportNo support204.6 ms ± 5.7 ms2m41.075s (ran once)40.096s (ran once)
30MB evtx (JSON)75.1 ms ± 2.1 ms20.5 ms ± 0.8 ms20.1 ms ± 0.9 msNo support5.467 s ± 0.038 s1.344 s ± 0.005 s223.1 ms ± 4.7 msNo supportNo support