विषय पर बढ़ें

सुपर टाइमलाइन

super-timeline पार्स किए गए आर्टिफ़ैक्ट को एक साझा स्कीमा वाले ईवेंट में बदलता है। आउटपुट डिफ़ॉल्ट रूप से सॉर्ट नहीं होता: वह खोजी गई इनपुट फ़ाइलों के क्रम और हर पार्सर में रिकॉर्ड से ईवेंट बनाने (प्रोजेक्शन) के क्रम का पालन करता है, चाहे वर्कर किसी भी क्रम में अपना काम पूरा करें। कालानुक्रमिक क्रम और डुप्लिकेट समेकन के लिए --sort जोड़ें। एक Prefetch रिकॉर्ड में कई निष्पादन समय हो सकते हैं; एक MFT रिकॉर्ड में आठ या उससे अधिक फ़ाइल टाइमस्टैम्प हो सकते हैं। इनमें से हर टाइमस्टैम्प अलग लेबल वाला एक ईवेंट बनता है। इससे अलग-अलग स्रोतों के साक्ष्य की तुलना करना आसान हो जाता है, और यह जानकारी भी नहीं खोती कि हर टाइमस्टैम्प का वास्तविक अर्थ क्या है।

मूल साक्ष्य डायरेक्टरी के बजाय auto-parse के परिणामों से शुरू करें:

juntei auto-parse -d evidence/ -o parsed/
juntei super-timeline -d parsed/ -o SuperTimeline.csv

पार्स की गई फ़ाइलें, मैनिफ़ेस्ट और मूल साक्ष्य सुरक्षित रखें। टाइमलाइन विश्लेषण के लिए बनाया गया एक प्रोजेक्शन है; यह उन रिकॉर्ड की जगह नहीं लेती और न ही Plaso की नेटिव स्टोरेज फ़ाइल बनाती है।

उपयोग

# Native CSV (default)
juntei super-timeline -d parsed/ -o SuperTimeline.csv

# Chronological CSV with duplicate consolidation
juntei super-timeline -d parsed/ -o SortedTimeline.csv --sort

# Native JSON Lines
juntei super-timeline -d parsed/ -o SuperTimeline.jsonl -t jsonl

# Combine native records and an existing Hayabusa JSONL timeline
juntei super-timeline -f NativeRecords.jsonl --hayabusa Hayabusa.jsonl \
  -o SuperTimeline.jsonl -t jsonl

# Timesketch import profile; also available with CSV
juntei super-timeline -d parsed/ -o Timesketch.jsonl -t jsonl --profile timesketch

# One standalone CSV needs an artifact identifier and, if unavailable, a computer name
juntei super-timeline -f MFT.csv --input-artifact mft --computer HOST01 \
  -o Host01Timeline.csv

# Reduce the time range, memory used by sorting, or number of workers
juntei super-timeline -d parsed/ -o IncidentTimeline.jsonl -t jsonl \
  --timeline-start "2026-10-20T06:00:00Z" --timeline-end "2026-10-20T14:00:00Z" \
  --sort --memory-limit 64 -T 4 --temp-dir scratch/

--hayabusa FILE को कई बार दिया जा सकता है या अकेले भी उपयोग किया जा सकता है। यह Hayabusa चलाए बिना मौजूदा ईवेंट/अलर्ट टाइमस्टैम्प और नियम का संदर्भ आयात करता है। ऐसे सूचनात्मक (informational) ईवेंट भी समर्थित हैं जिनका Details एक स्ट्रिंग है। --artifact mft,prefetch प्रोजेक्शन को चुने गए आर्टिफ़ैक्ट पहचानकर्ताओं तक सीमित करता है। समय-सीमाओं के छोर भी सीमा में शामिल माने जाते हैं, और उनमें स्पष्ट UTC ऑफ़सेट या Z देना आवश्यक है।

इनपुट चुनना

इनपुट पहचान कैसे होती है
-d DIR manifest.json सफल प्राथमिक टास्क, आर्टिफ़ैक्ट ID, कंप्यूटर और सटीक आउटपुट फ़ाइलें बताता है। दोनों प्रतियाँ आयात होने से रोकने के लिए द्वितीयक auto-parse -j टास्क बाहर रखे जाते हैं।
-f FILE नेटिव JSON/JSONL में रिकॉर्ड के भीतर मौजूद Artifact और Comp फ़ील्ड का उपयोग होता है। बिना टैग वाले एक्सपोर्ट के लिए --input-artifact आवश्यक है; अकेली CSV फ़ाइल के लिए यह हमेशा आवश्यक है।
--computer NAME इनपुट रिकॉर्ड में कंप्यूटर का नाम न होने पर उपयोग होने वाला विकल्प; यह न दिया जाए तो अज्ञात कंप्यूटर स्पष्ट रूप से Unknown दर्ज होता है।
--hayabusa FILE Hayabusa टाइमस्टैम्प, नियम मेटाडेटा, कंप्यूटर और (मौजूद होने पर) EvtxFile वाली JSONL फ़ाइल।

वर्तमान मैनिफ़ेस्ट के साथ पार्स की गई डायरेक्टरी को दूसरी जगह ले जाया जा सकता है: दर्ज निरपेक्ष आउटपुट पथ नई डायरेक्टरी के भीतर निर्धारित किए जाते हैं। इनपुट इसी डायरेक्टरी के भीतर रहने चाहिए, और सिंबॉलिक लिंक के लक्ष्य भी। पुराने लेआउट की प्रति-आर्टिफ़ैक्ट Amcache, SRUM और Jump Lists डायरेक्टरियाँ समर्थित हैं; श्रेणी डायरेक्टरियों के लिए स्पष्ट OutputFiles आवश्यक है।

आउटपुट-सापेक्ष पथों और फ़्लैट किए गए मल्टी-टेबल एक्सपोर्ट वाले वर्तमान मैनिफ़ेस्ट समर्थित हैं। यह कमांड स्वचालित पार्सिंग द्वारा शेड्यूल किए गए हर आर्टिफ़ैक्ट को पहचानता है, जिनमें नए ब्राउज़र, WebCache, Outlook और UAL टेबल भी शामिल हैं।

जब मैनिफ़ेस्ट किसी VHDX या E01 इमेज की पहचान करता है, तो स्रोत संदर्भों में इमेज और उसके भीतर का पथ शामिल होता है, और इमेज का नाम ईवेंट के संदर्भ में बना रहता है। पार्स किए गए परिणाम पढ़ने के लिए अस्थायी स्टेजिंग कार्यक्षेत्र की आवश्यकता नहीं होती।

एक कच्चा स्रोत रिकॉर्ड या एक स्पष्ट मेनिफेस्ट कमांड से लिया जाता है। -d के साथ, कच्चे-स्रोत संदर्भ साक्ष्य निर्देशिका से संबंधित हैं, और Details.ParsedFile पार्स की गई निर्देशिका से संबंधित हैं। SRUM CSV तालिकाएँ किसी डेटाबेस को तभी सौंपी जाती हैं जब होस्ट के पास एक विशिष्ट पहचान योग्य SRUDB.dat एकत्रित हो। अन्यथा SourceFile पार्स की गई फ़ाइल को इंगित करता है और Details.RawSourceAvailable false है।

अकेले दिए गए इनपुट का संदर्भ उसके फ़ाइल नाम से दिया जाता है। एक ही फ़ाइल नाम वाले इनपुट अलग-अलग ./Inputs/<ID>/<filename> संदर्भों का उपयोग करते हैं। ज्ञात साक्ष्य रूट के बाहर स्थित निरपेक्ष मूल-स्रोत पथों के लिए ./Sources/<ID>/<filename> पहचानकर्ता उपयोग होते हैं। ये अपारदर्शी (opaque) संदर्भ विश्लेषक के निरपेक्ष डायरेक्टरी नाम आउटपुट में डाले बिना स्रोतों का भेद बनाए रखते हैं; मूल स्रोत जानने के लिए ParsedFile और InputRecord की मदद से नेटिव रिकॉर्ड देखें। साक्ष्य में दर्ज पथ, जैसे Windows निष्पादन योग्य फ़ाइलों के पथ, अपरिवर्तित रहते हैं।

साझा ईवेंट फ़ील्ड

फ़ील्ड अर्थ
Timestamp UTC RFC 3339, जिसे एक-समान क्रम के लिए दशमलव के बाद नौ अंकों के साथ लिखा जाता है। शून्य जोड़कर अंक पूरे करने (पैडिंग) से परिशुद्धता नहीं बढ़ती।
Comp इनपुट रिकॉर्ड से संबद्ध कंप्यूटर।
Artifact स्थिर आर्टिफ़ैक्ट पहचानकर्ता, जैसे mft, prefetch, srum या hayabusa।
TimestampType टाइमस्टैम्प के अर्थ का विवरण, जैसे MFT SI Data modified।
User दर्ज खाता या SID, जब एडैप्टर के पास यह उपलब्ध हो; खाली भी हो सकता है।
Path प्रभावित फ़ाइल, रजिस्ट्री कुंजी या आर्टिफ़ैक्ट-विशिष्ट कोई अन्य ऑब्जेक्ट।
Message टाइमलाइन व्यूअर के लिए संक्षिप्त विवरण।
SourceFile साक्ष्य-सापेक्ष मूल-स्रोत संदर्भ, या रूट अज्ञात होने पर सापेक्ष स्रोत पहचानकर्ता; इनके अभाव में ऊपर बताया गया पार्स की गई फ़ाइल वाला विकल्प।
SourceField टाइमस्टैम्प के लिए उपयोग किया गया सटीक पार्स किया गया फ़ील्ड या नेस्टेड स्थान।
RecordID आर्टिफ़ैक्ट-विशिष्ट रिकॉर्ड पहचान। ज़रूरी नहीं कि यह EVTX Record ID हो।
Details संरचित संदर्भ, जिसमें मूल टाइमस्टैम्प, परिशुद्धता, समय का आधार, समय की भूमिका, पार्स की गई फ़ाइल, इनपुट रिकॉर्ड/स्थान और उपलब्ध पुनर्प्राप्ति/नियम मेटाडेटा शामिल हैं।

CSV में Details उद्धरण-चिह्नों में बंद एक JSON सेल होता है। JSONL में यह एक ऑब्जेक्ट होता है। Timesketch प्रोफ़ाइल Timestamp, TimestampType और Message को क्रमशः datetime, timestamp_desc और message में बदल देती है, जबकि उद्गम (provenance) से जुड़े बाकी फ़ील्ड बने रहते हैं। ये तीनों Timesketch आयात के अनिवार्य फ़ील्ड हैं।

Details में जान-बूझकर चुना हुआ संदर्भ रखा जाता है, न कि पूरा बाइनरी डेटा या नेटिव रिकॉर्ड का हर फ़ील्ड। लंबी स्ट्रिंग, ऐरे और ऑब्जेक्ट एक सीमा तक छोटे किए जाते हैं और उन पर ProjectionOmitted का चिह्न लगाया जाता है। पूरा नेटिव रिकॉर्ड देखने के लिए Details.ParsedFile, InputRecord और Location का उपयोग करें। CSV में रिकॉर्ड संख्या हेडर के बाद के CSV रिकॉर्ड गिनती है, उद्धरण-चिह्नों वाले सेल के भीतर की भौतिक पंक्तियाँ नहीं। JSONL में यह पंक्ति संख्या है; JSON में यह शीर्ष-स्तरीय डॉक्यूमेंट की संख्या और साथ में नेस्टेड स्थान है।

समयों का अर्थ

टाइमस्टैम्प किसी दर्ज ऑब्जेक्ट के बारे में साक्ष्य है। अपने आप में यह निष्पादन या हमले का प्रमाण नहीं है। एडैप्टर जान-बूझकर ये भेद बनाए रखते हैं:

आर्टिफ़ैक्ट टाइमलाइन में व्याख्या
MFT SI और FN के अलग-अलग संशोधन, एक्सेस, मेटाडेटा-परिवर्तन और निर्माण समय; नामित FN एट्रिब्यूट एक-दूसरे से अलग रहते हैं। --sort के साथ, फ़ाइल-नाम पंक्तियों पर दोहराए गए SI फ़ील्ड समेकित किए जाते हैं। ADS पंक्तियों में आधार फ़ाइल के साथ साझा समय दोनों मोड में शामिल नहीं किए जाते। FILE-रिकॉर्ड स्लैक से पुनर्प्राप्त नामों के पुनर्प्राप्त-FN ईवेंट अलग बने रहते हैं।
I30 संग्रहीत FN/इंडेक्स मेटाडेटा, और उपलब्ध होने पर स्लैक/पुनर्प्राप्ति का संदर्भ। ये डायरेक्टरी इंडेक्स के लिखे जाने के टाइमस्टैम्प नहीं हैं।
USN जर्नल जर्नल रिकॉर्ड का टाइमस्टैम्प और अपडेट के कारण। एक रिकॉर्ड कई बदलावों का वर्णन कर सकता है; ज़रूरी नहीं कि वह उनके शुरू होने का सटीक समय दर्ज करे।
LogFile संग्रहीत redo/undo टाइमस्टैम्प स्नैपशॉट और फ़ाइल-नाम मेटाडेटा। Redo और undo अलग-अलग रहते हैं। LSN और फ़ाइल ऑफ़सेट पहचानकर्ता हैं; उन्हें कभी तारीखों में नहीं बदला जाता।
Prefetch दर्ज निष्पादन समय। --sort के साथ इन्हें मेल खाने वाले Prefetch टाइमलाइन एक्सपोर्ट के साथ समेकित किया जाता है। संदर्भित वॉल्यूम के निर्माण का मेटाडेटा अलग लेबल के साथ रखा जाता है।
ब्राउज़र SQLite डेटाबेस दर्ज विज़िट, पुनर्प्राप्त पेज का अंतिम-विज़िट मेटाडेटा, डाउनलोड का आरंभ/अंत, कुकी का निर्माण/एक्सेस/समाप्ति, और फ़ॉर्म-इतिहास का पहला/अंतिम उपयोग या विलोपन के टॉम्बस्टोन। डाउनलोड का अंत अपने आप में सफलता या निष्पादन का प्रमाण नहीं है; कुकी की समाप्ति एक कॉन्फ़िगर की गई समय-सीमा है। पुनर्प्राप्ति की स्थिति, विश्वास-स्तर और उत्पत्ति संदर्भ में बने रहते हैं।
Internet Explorer / लेगेसी Edge WebCache संग्रहीत प्रविष्टि का एक्सेस, निर्माण/संशोधन, समाप्ति और सिंक्रनाइज़ेशन, डाउनलोड का आरंभ, कुकी मेटाडेटा, और कंटेनर का एक्सेस/स्कैवेंजिंग। कैश के रखरखाव के रिकॉर्ड अपने आप इस बात का साक्ष्य नहीं हैं कि किसी उपयोगकर्ता ने कोई पेज खोला।
Outlook PST, OST, MSG और OFT संदेश का सबमिशन/डिलीवरी; फ़ोल्डर, आइटम और अटैचमेंट का निर्माण/संशोधन; कैलेंडर का आरंभ/अंत/रिमाइंडर; टास्क का आरंभ/नियत तिथि/पूर्णता/रिमाइंडर; और वे प्रॉपर्टी जिनका प्रकार स्पष्ट रूप से समय घोषित है। निर्धारित समय यह सिद्ध नहीं करते कि मीटिंग हुई, रिमाइंडर ट्रिगर हुआ या कोई प्रोग्राम निष्पादित हुआ। संग्रहीत डिलीवरी समय यह सिद्ध नहीं करता कि संदेश पढ़ा गया।
उपयोगकर्ता एक्सेस लॉगिंग (UAL) प्रथम/अंतिम एक्सेस मेटाडेटा, डेटाबेस प्रविष्टि/निर्माण, प्रथम/आखिरी बार देखा गया और संग्रहीत ऑपरेटिंग-सिस्टम बूट समय। भूमिका, खाता, स्रोत पता और दैनिक काउंटर संदर्भ बने रहते हैं। दैनिक तिथियों/गणनाओं का आविष्कार आधी रात के लॉगऑन से नहीं किया गया है; असमय पहचान और DNS पंक्तियाँ मूल पार्स किए गए परिणामों में बनी रहती हैं।
Amcache इन्वेंटरी कुंजियों के अंतिम-लेखन समय, पैरेंट वॉल्यूम कुंजी का संदर्भ, दर्ज इंस्टॉल तिथियाँ और PE लिंक मेटाडेटा। केवल इन्वेंटरी में मौजूदगी या LinkDate से निष्पादन सिद्ध नहीं होता।
ShimCache संग्रहीत फ़ाइल-संशोधन समय, कैश-अपडेट मेटाडेटा और कैश कुंजी का अंतिम-लेखन समय। इनमें से कोई भी अपने आप निष्पादन का टाइमस्टैम्प नहीं है।
SRUM प्रोवाइडर का टाइमस्टैम्प/बकेट, कनेक्शन का आरंभ, स्पष्ट आरंभ/अंत अंतराल फ़ील्ड और ऐप्लिकेशन-पहचानकर्ता मेटाडेटा। बाइट, अवधि और अन्य काउंटर तारीखें नहीं हैं।
LNK टारगेट के MAC टाइमस्टैम्प, ट्रैकिंग-पहचानकर्ता के निर्माण का समय और शेल-आइटम समय। ये टारगेट के संग्रहीत मेटाडेटा का वर्णन करते हैं; ज़रूरी नहीं कि ये बताएँ कि शॉर्टकट कब खोला गया।
Jump Lists प्रविष्टि के अंतिम उपयोग का मेटाडेटा, ट्रैकिंग-पहचानकर्ता के निर्माण का समय और एम्बेडेड LNK टारगेट समय। डिफ़ॉल्ट रूप से संग्रह-पक्ष की कंटेनर फ़ाइल के समय छोड़ दिए जाते हैं।
Defender क्वारंटीन प्रविष्टि का टाइमस्टैम्प और संग्रहीत संसाधन के निर्माण/एक्सेस/लेखन समय। फ़ाइलें निकाले जाने (extraction) के समय एंडपॉइंट पर हुई गतिविधि का साक्ष्य नहीं हैं।
BAM, UserAssist, FeatureUsage जहाँ मौजूद हों, दर्ज गतिविधि फ़ील्ड; कुंजी के अंतिम-लेखन समय का संदर्भ इनसे अलग रखा जाता है। बिना समय वाला काउंटर कोई ईवेंट नहीं बनाता।
RecentDocs, MRU, Open/Save MRU, ShellBags, Office दर्ज उपयोग/ट्रस्ट/शेल-आइटम समय और कुंजी का संदर्भ। किसी सूची की कुंजी का समय सूची के हर आइटम का अलग-अलग अंतिम-उपयोग समय नहीं है।
SAM और LSA सीक्रेट दर्ज खाता लॉगऑन/पासवर्ड/समाप्ति या सीक्रेट सेट किए जाने का मेटाडेटा, और संबंधित कुंजियों के समय। ये प्रमाणीकरण ईवेंट लॉग का स्थान नहीं लेते।
सेवाएँ, TaskCache, रजिस्ट्री पर्सिस्टेंस, BCD कुंजी/कॉन्फ़िगरेशन मेटाडेटा और स्पष्ट रूप से दर्ज टास्क समय। केवल सेवा-कुंजी में लेखन से सेवा का निष्पादन सिद्ध नहीं होता।
नेटवर्क और USB नेटवर्क प्रोफ़ाइल/लीज़ और डिवाइस के इंस्टॉल/जोड़े जाने/हटाए जाने के फ़ील्ड, रजिस्ट्री कुंजी के संदर्भ के साथ। नेटिव USB उपयोगकर्ता MountPoints2 समय संबंधित उपयोगकर्ता-हाइव का स्रोत बनाए रखते हैं।
सिस्टम जानकारी, इंस्टॉल किए गए प्रोग्राम, AppCompat, ऐप्लिकेशन इतिहास स्पष्ट इंस्टॉल, शटडाउन, इन्वेंटरी/गतिविधि और कुंजी मेटाडेटा फ़ील्ड। नेटिव सिस्टम जानकारी के प्रोफ़ाइल/वर्ज़न ऐरे अपने नेस्टेड समय बनाए रखते हैं।
ऑडिट नीति, सुरक्षा सेटिंग, MuiCache, जेनेरिक रजिस्ट्री इनपुट में दिए गए हों तो कुंजियों के अंतिम-लेखन समय; समय-रहित मान/काउंटर नेटिव इनपुट में उपलब्ध रहते हैं।
Persistence Hunter फ़ाइंडिंग से जुड़ी कुंजी का अंतिम-लेखन समय और सहसंबद्ध परिवर्तन समय। कोई फ़ाइंडिंग अपने आप में न तो टाइमस्टैम्प वाला इंस्टॉलेशन है और न ही सिस्टम के कॉम्प्रोमाइज़ होने का निर्णय।
Hayabusa नियम, स्तर, चैनल, ईवेंट ID और उपलब्ध विवरण-संदर्भ के साथ ईवेंट/अलर्ट टाइमस्टैम्प। कई नियम और अलग-अलग सहसंबंध पंक्तियाँ अलग-अलग रहती हैं।

डिफ़ॉल्ट एक्सपोर्ट दोहराए गए मेटाडेटा सहित सभी टाइमस्टैम्प प्रोजेक्शन बनाए रखता है। यह न तो पूरे आउटपुट को सॉर्ट करता है और न ही डुप्लिकेट समेकित करता है। --sort के साथ डुप्लिकेट प्रोजेक्शन समेकित किए जाते हैं; इसलिए उन्हीं इनपुट के बिना सॉर्ट किए गए एक्सपोर्ट की तुलना में पंक्तियाँ कम हो सकती हैं। अलग-अलग अर्थ या अलग साक्ष्य स्रोत वाले कई समान टाइमस्टैम्प दोनों मोड में बनाए रखे जाते हैं। डुप्लिकेट की पहचान में कंप्यूटर, स्रोत, आर्टिफ़ैक्ट, रिकॉर्ड, समय का अर्थ और पुनर्प्राप्ति की स्थिति शामिल हैं। समेकित पंक्तियाँ DuplicateCount और सीमित संख्या में वैकल्पिक पथ/स्रोत फ़ील्ड दर्ज करती हैं। अलग-अलग स्रोतों को केवल इसलिए कभी नहीं मिलाया जाता कि उनके पथ और टाइमस्टैम्प एक जैसे दिखते हैं। जब मूल स्रोत निर्धारित नहीं हो पाता, तो अलग-अलग कैप्चर को आपस में मिलने से बचाने के लिए इनपुट-रिकॉर्ड की पहचान बनाए रखी जाती है।

परिशुद्धता, स्थानीय समय और धारणाएँ

ज्ञात UTC फ़ील्ड और स्पष्ट ऑफ़सेट वाले टाइमस्टैम्प UTC में सामान्यीकृत किए जाते हैं। मूल मान और उनकी दर्ज परिशुद्धता बनाए रखी जाती है, जिसमें 100 ns वाले FILETIME भी शामिल हैं। हो सकता है कि किसी स्रोत पार्सर या आगे इस्तेमाल होने वाले व्यूअर ने किसी समय को पहले ही राउंड कर दिया हो; यह कमांड खोई हुई परिशुद्धता वापस नहीं ला सकता।

कुछ शेल-आइटम/FAT फ़ील्ड स्थानीय समय दर्शाते हैं, भले ही कोई अपस्ट्रीम पार्सर उन्हें Z के साथ लिखे। टाइमलाइन पार्स किया गया मान और फ़ील्ड का उद्गम सुरक्षित रखती है; वह एंडपॉइंट का अनुपलब्ध टाइम ज़ोन वापस नहीं ला सकती और न ही किसी अपस्ट्रीम रूपांतरण की पुष्टि कर सकती है। सटीक क्रॉस-होस्ट सहसंबंध के लिए ऐसे समय का उपयोग करने से पहले मूल आर्टिफ़ैक्ट और एंडपॉइंट की सेटिंग जाँच लें।

बिना किसी आर्टिफैक्ट-परिभाषित समय क्षेत्र वाले एक अनुभवहीन टाइमस्टैम्प को चुपचाप UTC के रूप में मानने के बजाय अनसुलझे के रूप में गिना जाता है। यदि साक्ष्य इसे उचित ठहराता है, तो एक हस्ताक्षरित निश्चित ऑफसेट प्रदान करें:

juntei super-timeline -f Amcache.jsonl --input-artifact amcache \
  --assume-offset "+09:00" -o Timeline.csv

केवल-तिथि वाले मानों के लिए भी यह विकल्प आवश्यक है। उनके लिए लिया गया आधी रात का समय दिन-स्तर की परिशुद्धता वाली धारणा के रूप में लेबल किया जाता है; यह आधी रात को देखा गया कोई ईवेंट नहीं है। टाइम-ज़ोन के नाम और डेलाइट-सेविंग नियम स्वीकार नहीं किए जाते। अनुपस्थित, शून्य, अमान्य और सीमा से बाहर के मानों से कृत्रिम एपॉक ईवेंट नहीं बनते। स्पष्ट रूप से दर्ज की गई वैध 1970 की तारीख बनाए रखी जाती है।

दो वैकल्पिक श्रेणियाँ डिफ़ॉल्ट रूप से शामिल नहीं की जातीं:

  • --include-collection-times: संग्रह/विश्लेषण वाले फ़ाइल सिस्टम पर LNK/Jump List स्रोत फ़ाइलों का मेटाडेटा। इन ईवेंट पर collection_filesystem लेबल लगता है, ताकि वे एंडपॉइंट की गतिविधि से अलग रहें।
  • --include-interpreted-times: जेनेरिक रजिस्ट्री के QWORD मान, जिन्हें रजिस्ट्री रीडर FILETIME के रूप में दिखाता है। इन पर interpreted_value लेबल लगता है, क्योंकि ऐसे कई मान वास्तव में काउंटर होते हैं।

आउटपुट और छोड़े गए रिकॉर्ड

कमांड केवल टाइमलाइन के साथ चयनित लिखता है -o, के साथ चुने गए प्रारूप में -t (csv डिफ़ॉल्ट रूप से, या jsonl). यह असमय, डायग्नोस्टिक या सारांश सहयोगी फ़ाइलें, या प्रति-रिकॉर्ड डायग्नोस्टिक स्पूल नहीं बनाता है। पिछले रन की मौजूदा सहयोगी फ़ाइलें अछूती रह गई हैं।

टर्मिनल सारांश समयरेखा घटनाओं और असमयबद्ध रिकॉर्ड की संख्या की रिपोर्ट करता है। गैर-शून्य अमान्य टाइमस्टैम्प और अनसुलझे-समय-क्षेत्र गणनाएं अलग-अलग दिखाई जाती हैं। --sort के साथ, यह समेकित डुप्लिकेट की संख्या भी रिपोर्ट करता है। उन रिकॉर्ड्स के लिए मूल पार्स किए गए परिणाम रखें जो टाइमलाइन ईवेंट उत्पन्न नहीं करते हैं और पूर्ण आर्टिफैक्ट संदर्भ के लिए रखें।

उचित समय-क्षेत्र धारणा की प्रतीक्षा कर रही वैध तिथियों को अमान्य टाइमस्टैम्प के बजाय अनसुलझे समय क्षेत्रों के रूप में गिना जाता है। किसी टाइमस्टैम्प का आविष्कार नहीं हुआ है, और उपयोग योग्य मैप किए गए समय के बिना रिकॉर्ड को सिंथेटिक युग की घटनाओं के रूप में टाइमलाइन में नहीं डाला जाता है।

अनुरोधित सीमा के बाहर मान्य समय वाले रिकॉर्ड को फ़िल्टर किए गए के रूप में गिना जाता है, असमयबद्ध के रूप में नहीं। एक सफल निर्यात का मतलब है कि चयनित पार्स किए गए इनपुट सफलतापूर्वक संसाधित किए गए थे; इसका मतलब यह नहीं है कि हर कलाकृति एकत्र की गई थी, हर क्षेत्र में एक टाइमस्टैम्प है या हर हमले का पता लगाया जा सकता है।

CSV एक्सपोर्ट नेस्टेड मेटाडेटा को फ़्लैट कर सकते हैं: सिस्टम जानकारी प्रोफ़ाइल, USB उपयोगकर्ता माउंट पॉइंट, शेल आइटम और अन्य संरचित संदर्भ नेटिव JSON/JSONL में अधिक विस्तृत हो सकते हैं। जब ये फ़ील्ड महत्वपूर्ण हों, तो नेटिव इनपुट का उपयोग करें। CSV एक्सपोर्ट में छूटा हुआ डेटा टाइमलाइन दोबारा नहीं बना सकती। असमर्थित आर्टिफ़ैक्ट ID और विकृत इनपुट फ़ाइलें आंशिक परिणामों वाली सफलता के बजाय त्रुटि देती हैं।

प्रदर्शन और आउटपुट की सुरक्षा

इनपुट स्ट्रीम किए जाते हैं और समानांतर रूप से प्रोसेस होते हैं। डिफ़ॉल्ट रूप से हर वर्कर फ़ॉर्मैट किए गए ईवेंट का एक खंड लिखता है; इन खंडों को सॉर्ट किए बिना और उनकी ईवेंट संरचनाएँ दोबारा पढ़े बिना इनपुट फ़ाइलों के क्रम में जोड़ दिया जाता है। कई फ़ाइलें प्रोसेस होने पर भी CSV में एक ही हेडर होता है। वर्कर की संख्या चाहे जो हो, आउटपुट का क्रम नियतात्मक (हर बार एक-सा) रहता है; इसका अर्थ कालानुक्रम नहीं है।

Input files चयनित पार्स किए गए इनपुट और Hayabusa टाइमलाइन का संयुक्त आकार दिखाता है। Results saved सहेजी गई टाइमलाइन फ़ाइल का आकार दिखाता है। दोनों auto-parse के समान मानव-पठनीय KiB/MiB/GiB इकाइयों का उपयोग करते हैं।

--sort के साथ बफ़र भरने पर उनका डेटा एक निजी अस्थायी डायरेक्टरी में लिखा जाता है, फिर सीमित मर्ज पास कालानुक्रमिक आउटपुट बनाते हैं। सॉर्टिंग पूरे पूर्णांक सेकंड और नैनोसेकंड का उपयोग करती है, जिसमें 1970 से पहले की तारीखें भी शामिल हैं। वर्कर की संख्या और सॉर्ट बजट चाहे जो हों, समान समय वाले ईवेंट का क्रम नियतात्मक रहता है। मध्यवर्ती और अंतिम मर्ज के दौरान, दोहराए गए पासों सहित, प्रोसेस होने वाले हर ईवेंट के साथ प्रोग्रेस बार आगे बढ़ता है। यह टर्मिनल पर दिखता है और आउटपुट रीडायरेक्ट होने पर छिपा रहता है।

--memory-limit केवल --sort के साथ लागू होता है: यह कुल सॉर्ट-बफ़र बजट है, प्रोसेस की RSS सीमा नहीं। इनपुट रिकॉर्ड, JSON ऑब्जेक्ट/स्ट्रिंग के ओवरहेड, CSV बफ़र और मर्ज रिकॉर्ड के लिए अतिरिक्त मेमोरी चाहिए। छोटे बजट पर वर्कर की संख्या घटा दी जाती है। --max-record-size पार्स किए गए एक इनपुट रिकॉर्ड का आकार सीमित करता है (डिफ़ॉल्ट 16 MiB); फ़ॉर्मैट किया हुआ (pretty) JSON ऐरे/रिपोर्ट एक शीर्ष-स्तरीय इनपुट डॉक्यूमेंट गिना जाता है। बड़े डॉक्यूमेंट के लिए अधिक सीमा, या बेहतर होगा कि JSONL, की आवश्यकता हो सकती है। CSV पार्सर का read-ahead भी इसी सीमा में गिना जाता है।

अस्थायी डिस्क स्थान में अंतिम परिणामों के अलावा फ़ॉर्मैट किए गए ईवेंट खंड (डिफ़ॉल्ट) या विस्तारित सॉर्ट रिकॉर्ड और मर्ज पास (--sort) समाने चाहिए। दोनों मोड में अस्थायी आउटपुट स्टेजिंग और विफल इनपुट के परिणाम प्रकाशित होने से रोकने वाली सुरक्षा बनी रहती है। एक रिकॉर्ड से कई ईवेंट बन सकते हैं, इसलिए टाइमलाइन इनपुट से कहीं बड़ी हो सकती है। जहाँ उचित हो, समय-सीमा/आर्टिफ़ैक्ट फ़िल्टर करें और पर्याप्त खाली स्थान वाला अस्थायी वॉल्यूम चुनें।

Ctrl+C सहयोगपूर्वक रद्द करता है, निजी सॉर्ट/स्टेजिंग निर्देशिकाओं को हटाता है और कोड 130 के साथ बाहर निकलता है। Linux और macOS पर यह SIGTERM और SIGHUP पर भी लागू होता है। प्रकाशन शुरू होने से पहले, टाइमलाइन को पढ़ने, सामान्य करने, विलय करने और लिखने के दौरान रद्दीकरण की जाँच की जाती है। पकड़ में न आने वाली समाप्ति या बिजली की हानि अभी भी अस्थायी फ़ाइलें छोड़ सकती है।

मौजूदा आउटपुट के लिए -C की आवश्यकता होती है। समयरेखा को इनपुट, मैनिफ़ेस्ट, संदर्भित स्थानीय साक्ष्य या उनकी संरक्षित साक्ष्य निर्देशिकाओं को अधिलेखित नहीं करना चाहिए। इनपुट त्रुटियाँ या सॉर्ट विफलताएँ मौजूदा टाइमलाइन को अछूता छोड़ देती हैं। पूरी की गई समयरेखा को उसके गंतव्य के बगल में चरणबद्ध किया जाता है और इसे परमाणु रूप से बदल दिया जाता है। पहले के पूर्ण निर्यात मामलों को बनाए रखते हुए प्रत्येक रन के लिए एक नए आउटपुट फ़ाइल नाम का उपयोग करें।

अधिक जानकारी

मौजूदा Juntei इनपुट संक्षिप्त लेबल का उपयोग करते हैं जैसे कि Comp, Filename, Args और Attr. MFT CSV वर्तमान को भी स्वीकार करता है File, SN, ParentEntryNum, ParentSN, Type, USN, LogfileSN और HasADS हेडर, अनुक्रम-संख्या पीढ़ियों को ध्यान में रखते हुए और DOS/ADS भेद बरकरार. पुराने निर्यातित लेबल स्वीकार्य रहेंगे, और SourceField वास्तविक इनपुट में वर्तनी को बरकरार रखता है। Hayabusa इनपुट अपना स्वयं का रखता है Computer मैदान। इवेंट टाइमस्टैम्प के बिना बूट-सेक्टर और सुरक्षा-डिस्क्रिप्टर मेटाडेटा मूल पार्स किए गए परिणामों में रहता है; यह टाइमलाइन ईवेंट नहीं बनाता है.

नए मल्टी-टेबल पार्सर

नेटिव JSON/JSONL में हर टेबल का नाम होता है। अकेली CSV फ़ाइल के लिए ब्राउज़र, WebCache और Outlook एडैप्टर कॉलम स्कीमा से उसकी टेबल पहचानते हैं, इसलिए CSV का नाम बदलने या स्वचालित पार्सिंग के स्रोत-प्रत्ययों का उपयोग करने से टाइमस्टैम्प की व्याख्या नहीं बदलती। UAL अपने स्पष्ट, ज्ञात टाइमस्टैम्प फ़ील्ड रखता है; एक्सेस काउंटर और तारीख जैसे दिखने वाले असंबंधित टेक्स्ट को अनुमान के आधार पर तारीख नहीं माना जाता।

Outlook प्रॉपर्टी पंक्तियों को ईवेंट में तभी प्रोजेक्ट किया जाता है जब उनका घोषित प्रकार समय या बहु-समय (multiple-time) प्रकार हो। तारीख वाली स्ट्रिंग स्ट्रिंग ही रहती है। एम्बेडेड संदेश अपनी आइटम ID और पैरेंट संदर्भ बनाए रखते हैं, और संग्रहीत अटैचमेंट टाइमस्टैम्प की जगह अटैचमेंट निकाले जाने के समय नहीं रखे जाते। समय-रहित फ़ाइल, प्राप्तकर्ता, संपर्क या प्रॉपर्टी पंक्तियाँ नेटिव आउटपुट और समय-रहित रिपोर्ट में खोजी जा सकती हैं।

इन पार्सरों पर भी वही CSV और JSONL आउटपुट स्कीमा लागू होते हैं; नया आर्टिफ़ैक्ट जोड़ने से सैकड़ों CSV कॉलम नहीं जुड़ते। आर्टिफ़ैक्ट-विशिष्ट संदर्भ Details में रहता है।