انتقل إلى المحتوى

الجدول الزمني الشامل

يحوّل super-timeline الآثار الرقمية المحللة إلى أحداث ذات مخطط (schema) مشترك. ويكون الإخراج غير مرتب افتراضيًا: إذ يتبع ترتيب ملفات الإدخال كما اكتُشفت وترتيب الإسقاط (projection) لدى كل محلل، بمعزل عن ترتيب انتهاء العمال من مهامهم. أضف --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. وتُدعم الأحداث المعلوماتية التي تكون قيمة Details فيها سلسلة نصية. ويقصر --artifact mft,prefetch الإسقاطَ على معرّفات الآثار الرقمية المحددة. وحدود النطاق الزمني شاملة، وتتطلب إزاحة UTC صريحة أو Z.

اختيار الإدخال

الإدخال كيفية تحديده
-d DIR يوفر manifest.json المهام الأساسية الناجحة، ومعرّفات الآثار الرقمية، والحواسيب، وملفات الإخراج بأسمائها الدقيقة. وتُستبعد المهام الثانوية لـ auto-parse -j لتجنب استيراد النسختين كلتيهما.
-f FILE يستخدم JSON/JSONL الأصلي الحقلين المضمّنين Artifact وComp. وتحتاج الصادرات غير الموسومة إلى --input-artifact؛ أما ملف CSV المستقل فيتطلبه دائمًا.
--computer NAME قيمة بديلة عندما لا يحتوي سجل الإدخال على اسم حاسوب؛ وبدونه يُسجَّل الحاسوب غير المعروف صراحةً بالقيمة Unknown.
--hayabusa FILE ملف JSONL يحتوي على الطوابع الزمنية من Hayabusa، والبيانات الوصفية للقواعد، والحاسوب، وEvtxFile عند وجوده.

تدعم ملفات البيان الحالية نقل مجلد النتائج المحللة إلى موقع آخر: إذ تُفسَّر مسارات الإخراج المطلقة المسجلة نسبةً إلى المجلد الجديد. ويجب أن تبقى المدخلات داخله، بما في ذلك أهداف الروابط الرمزية. وتُدعم المجلدات القديمة المخصصة لكل أثر رقمي في 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 الملف أو مفتاح سجل Windows المعني، أو أي كائن آخر خاص بالأثر الرقمي.
Message وصف موجز مخصص لعارض الجداول الزمنية.
SourceFile مرجع المصدر الخام نسبةً إلى مجلد الأدلة، أو معرّف مصدر نسبي عندما يكون جذره غير معروف؛ وإلا فالبديل المتمثل في الملف المحلل كما وُصف أعلاه.
SourceField الحقل المحلل بعينه، أو الموقع المتداخل، الذي أُخذ منه الطابع الزمني.
RecordID هوية السجل الخاصة بالأثر الرقمي. وليست بالضرورة معرّف السجل (Record ID) في EVTX.
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)، والبيانات الوصفية لأسماء الملفات. وتبقى الإعادة والتراجع منفصلين. وأرقام LSN وإزاحات الملفات معرّفات، ولا تُحوَّل إلى تواريخ أبدًا.
Prefetch أوقات التنفيذ المسجلة. ومع --sort، تُدمج هذه الأوقات مع ما يطابقها في تصدير الجدول الزمني لـ Prefetch. وتُوسم البيانات الوصفية لإنشاء وحدات التخزين المشار إليها بتسمية منفصلة.
قواعد بيانات SQLite للمتصفحات الزيارات المسجلة، والبيانات الوصفية لآخر زيارة للصفحات المستعادة، وبداية التنزيل/نهايته، وإنشاء ملفات تعريف الارتباط/الوصول إليها/انتهاء صلاحيتها، وأول/آخر استخدام لإدخالات سجل النماذج أو سجلات الإزالة الدالة على حذفها (tombstones). ولا تثبت نهاية التنزيل وحدها نجاحه ولا التنفيذ؛ وانتهاء صلاحية ملف تعريف الارتباط موعد نهائي مُعيَّن مسبقًا. وتبقى حالة الاستعادة ودرجة الثقة والمنشأ ضمن السياق.
WebCache في Internet Explorer / Edge القديم أوقات الوصول إلى الإدخالات المخزنة وإنشائها/تعديلها وانتهاء صلاحيتها ومزامنتها، وبدايات التنزيل، والبيانات الوصفية لملفات تعريف الارتباط، والوصول إلى الحاويات/تنظيفها. ولا تُعد عمليات الإدارة الداخلية لذاكرة التخزين المؤقت تلقائيًا دليلًا على أن مستخدمًا فتح صفحة.
ملفات Outlook من نوع PST وOST وMSG وOFT إرسال الرسائل/تسليمها؛ وإنشاء المجلدات والعناصر والمرفقات/تعديلها؛ وبداية عناصر التقويم/نهايتها/تذكيراتها؛ وبداية المهام/موعد استحقاقها/إكمالها/تذكيراتها؛ والخصائص الزمنية المعرَّفة بنوعها صراحةً. ولا تثبت الأوقات المجدولة أن اجتماعًا قد عُقد، أو أن تذكيرًا قد انطلق، أو أن برنامجًا قد نُفِّذ. ولا يثبت وقت التسليم المخزن أن الرسالة قد قُرئت.
تسجيل وصول المستخدم (UAL) البيانات التعريفية للوصول لأول/آخر مرة، وإدراج/إنشاء قاعدة البيانات، وأول/آخر ظهور ووقت تشغيل نظام التشغيل المُخزن. يظل الدور والحساب وعنوان المصدر والعدادات اليومية هو السياق. لا يتم اختراع التواريخ/الأعداد اليومية وعمليات تسجيل الدخول في منتصف الليل؛ تظل الهوية غير المحددة بالتوقيت وصفوف DNS في النتائج الأصلية التي تم تحليلها.
Amcache أوقات آخر كتابة لمفاتيح الجرد، وسياق مفتاح وحدة التخزين الأم، وتواريخ التثبيت المسجلة، والبيانات الوصفية لوقت الربط في ملفات PE. ولا يثبت الوجود في الجرد أو LinkDate وحده التنفيذ.
ShimCache وقت تعديل الملف المخزن، والبيانات الوصفية لتحديث ذاكرة التخزين المؤقت، وآخر كتابة لمفتاح ذاكرة التخزين المؤقت. ولا يُعد أيٌّ منها تلقائيًا طابعًا زمنيًا للتنفيذ.
SRUM الطابع الزمني/فترة التجميع لدى الموفّر، وبداية الاتصال، والحقول الصريحة لبداية الفترة/نهايتها، والبيانات الوصفية لمعرّف التطبيق. والبايتات والمدة والعدادات الأخرى ليست تواريخ.
LNK طوابع MAC الزمنية للهدف، ووقت إنشاء معرّف التتبع، وأوقات عناصر shell. وهي تصف البيانات الوصفية المخزنة للهدف، لا بالضرورة وقت فتح الاختصار.
Jump Lists البيانات الوصفية لآخر استخدام للإدخالات، ووقت إنشاء معرّف التتبع، وأوقات الأهداف في ملفات LNK المضمنة. ويستبعد الإعداد الافتراضي أوقات ملف الحاوية على نظام ملفات الجمع.
حجر Defender الطابع الزمني للإدخال، وأوقات إنشاء المورد المخزن/الوصول إليه/الكتابة إليه. وأوقات الاستخراج ليست دليلًا على نشاط في نقطة النهاية.
BAM وUserAssist وFeatureUsage حقول النشاط المسجلة حيثما وُجدت، مع إبقاء سياق آخر كتابة للمفتاح متمايزًا. ولا يُنشئ عدّادٌ بلا وقت حدثًا.
RecentDocs وMRU وOpen/Save MRU وShellBags وOffice أوقات الاستخدام/الثقة/عناصر shell المسجلة، وسياق المفتاح. ووقت مفتاح القائمة ليس وقت آخر استخدام لكل عنصر من عناصرها على حدة.
SAM وأسرار LSA البيانات الوصفية المسجلة لتسجيل دخول الحسابات/كلمات مرورها/انتهاء صلاحيتها أو لتعيين الأسرار، وأوقات المفاتيح ذات الصلة. ولا تغني هذه عن سجلات أحداث المصادقة.
الخدمات وTaskCache والاستمرارية في سجل Windows وBCD البيانات الوصفية للمفاتيح/التكوين، وأوقات المهام المسجلة صراحةً. ولا تثبت عمليات الكتابة إلى مفتاح الخدمة وحدها تشغيل الخدمة.
الشبكات وUSB حقول ملفات تعريف الشبكات/عقود التأجير وتثبيت الأجهزة/توصيلها/إزالتها، مع سياق مفتاح سجل Windows. وتحتفظ أوقات MountPoints2 الخاصة بالمستخدمين في إخراج USB الأصلي بمصدرها المقابل من خلية المستخدم.
معلومات النظام والبرامج المثبتة وAppCompat وسجل التطبيقات الحقول الصريحة للتثبيت وإيقاف التشغيل والجرد/النشاط والبيانات الوصفية للمفاتيح. وتحتفظ مصفوفات ملفات التعريف/الإصدارات في الإخراج الأصلي لمعلومات النظام بأوقاتها المتداخلة.
نهج التدقيق وإعدادات الأمان وMuiCache والقراءة العامة لسجل Windows أوقات آخر كتابة للمفاتيح عند توفرها؛ وتبقى القيم/العدادات التي بلا توقيت متاحةً في الإدخال الأصلي.
Persistence Hunter آخر كتابة للمفتاح الداعم، ووقت التغيير المرتبط به. والنتيجة ليست في حد ذاتها عملية تثبيت ذات طابع زمني، ولا حكمًا بحدوث اختراق.
Hayabusa الطابع الزمني للحدث/التنبيه مع القاعدة والمستوى والقناة ومعرّف الحدث (Event ID) وسياق التفاصيل المتاح. وتبقى القواعد المتعددة وصفوف الارتباط (correlation) المتمايزة منفصلةً.

يحتفظ التصدير الافتراضي بجميع إسقاطات الطوابع الزمنية، بما في ذلك البيانات الوصفية المتكررة. ولا يُجري فرزًا شاملًا ولا دمجًا للتكرارات. ومع --sort، تُدمج الإسقاطات المكررة؛ وقد ينتج عن ذلك صفوف أقل مما ينتجه تصدير غير مرتب للمدخلات نفسها. وتُحفظ في كلا الوضعين الطوابع الزمنية المتساوية المتعددة التي تختلف معانيها أو مصادر أدلتها. وتشمل المعايير التي تحدد هوية التكرار الحاسوبَ والمصدرَ والأثرَ الرقمي والسجلَ ومعنى الوقت وحالة الاستعادة. وتسجل الصفوف المدمجة DuplicateCount وعددًا محدودًا من المسارات/حقول المصدر البديلة. ولا تُدمج المصادر المتمايزة أبدًا لمجرد تشابه مساراتها وطوابعها الزمنية. وعندما يتعذر تحديد المصدر الخام، يُحتفظ بهوية سجل الإدخال لتجنب دمج لقطات مختلفة في صف واحد.

الدقة والأوقات المحلية والافتراضات

تُوحَّد حقول UTC المعروفة والطوابع الزمنية ذات الإزاحات الصريحة إلى UTC. ويُحتفظ بالقيم الأصلية ودقتها المسجلة، بما في ذلك قيم FILETIME بدقة 100 نانوثانية. وقد يكون محلل المصدر أو عارضٌ لاحق في سلسلة المعالجة قد قرّب وقتًا ما بالفعل؛ ولا يستطيع هذا الأمر استعادة الدقة المفقودة.

لبعض حقول عناصر shell/FAT دلالة التوقيت المحلي، حتى عندما يكتبها محلل سابق في سلسلة المعالجة مع اللاحقة Z. ويحافظ الجدول الزمني على القيمة المحللة وأصل الحقل؛ لكنه لا يستطيع استعادة المنطقة الزمنية المفقودة لنقطة النهاية، ولا التحقق من صحة تحويل أجراه محلل سابق. تحقق من الأثر الرقمي الخام ومن إعدادات نقطة النهاية قبل استخدام مثل هذا الوقت في ربط دقيق بين عدة مضيفين.

يتم اعتبار الطابع الزمني البسيط الذي لا يحتوي على منطقة زمنية محددة على أنه لم يتم حله، بدلاً من معاملته بصمت على أنه UTC. إذا كان الدليل يبرر ذلك، قم بتقديم إزاحة ثابتة موقعة:

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

وتتطلب القيم التي تحتوي على التاريخ فقط هذا الخيار أيضًا. ويُوسم منتصف الليل الذي تُثبَّت عنده بوصفه افتراضًا بـ دقة يومية؛ فهو ليس حدثًا مرصودًا عند منتصف الليل. ولا تُقبل أسماء المناطق الزمنية ولا قواعد التوقيت الصيفي. ولا تُنتج القيم المفقودة أو الصفرية أو غير الصالحة أو الخارجة عن النطاق أحداثًا مصطنعة عند بداية الحقبة (epoch). أما التاريخ الصالح من عام 1970 المسجل صراحةً فيُحتفظ به.

تُستبعد افتراضيًا فئتان اختياريتان:

  • --include-collection-times: البيانات الوصفية لملفات المصدر من نوع LNK/Jump List على نظام ملفات الجمع/التحليل. وتُوسم هذه الأحداث بـ collection_filesystem، بمعزل عن نشاط نقطة النهاية.
  • --include-interpreted-times: قيم QWORD العامة في سجل Windows التي يعرضها قارئ سجل Windows بصيغة FILETIME. وتُوسم بـ interpreted_value لأن كثيرًا من هذه القيم هي في الواقع عدادات.

إخراج وتخطي السجلات

يكتب الأمر الخط الزمني فقط المحدد باستخدام -o، بالتنسيق المختار باستخدام -t (csv بشكل افتراضي، أو jsonl). ولا يقوم بإنشاء ملفات مصاحبة غير محددة التوقيت أو تشخيصية أو ملخصة، أو مكبات تشخيصية لكل سجل. يتم ترك الملفات المصاحبة الموجودة من عمليات التشغيل السابقة دون تغيير.

يُبلغ الملخص النهائي عن عدد أحداث الجدول الزمني والسجلات غير المحددة بوقت. يتم عرض الطابع الزمني غير الصالح وأعداد المناطق الزمنية التي لم يتم حلها بشكل منفصل. باستخدام --sort، يقوم أيضًا بالإبلاغ عن عدد التكرارات المدمجة. احتفظ بالنتائج الأصلية التي تم تحليلها للسجلات التي لا تنتج حدثًا للخط الزمني وللسياق الكامل للعناصر.

يتم احتساب التواريخ الصالحة التي تنتظر افتراض منطقة زمنية مبررة كمناطق زمنية لم يتم حلها، بدلاً من طوابع زمنية غير صالحة. لم يتم اختراع أي طابع زمني، ولا يتم إدراج السجلات التي لا تحتوي على وقت معين قابل للاستخدام في المخطط الزمني كأحداث حقبة تركيبية.

يتم احتساب السجلات ذات الأوقات الصالحة خارج النطاق المطلوب على أنها تمت تصفيتها، وليس غير محددة التوقيت. ويعني التصدير الناجح أن المدخلات التي تم تحليلها قد تمت معالجتها بنجاح؛ هذا لا يعني أنه تم جمع كل قطعة أثرية، أو أن كل حقل له طابع زمني أو أن كل هجوم يمكن اكتشافه.

قد تُسطِّح صادرات CSV البيانات الوصفية المتداخلة: فملفات التعريف في معلومات النظام، ونقاط التحميل الخاصة بالمستخدمين في بيانات USB، وعناصر shell، وغيرها من السياق المنظم قد تكون أغنى في JSON/JSONL الأصلي. استخدم الإدخال الأصلي عندما تكون هذه الحقول مهمة. ولا يستطيع الجدول الزمني إعادة بناء بيانات أغفلها تصدير CSV. وتتسبب معرّفات الآثار الرقمية غير المدعومة وملفات الإدخال المشوهة في خطأ، بدلًا من نجاح يتضمن نتائج جزئية.

الأداء وسلامة الإخراج

تُقرأ المدخلات بالتدفق وتُعالج بالتوازي. وافتراضيًا، يكتب كل عامل جزءًا من الأحداث المنسقة؛ ثم تُضم الأجزاء بعضها إلى بعض بترتيب ملفات الإدخال دون فرز ودون إعادة قراءة بنى أحداثها. ويحتوي CSV على صف ترويسة واحد حتى عند معالجة عدة ملفات. وترتيب الإخراج حتمي أيًّا كان عدد العمال؛ لكنه لا يعني تسلسلًا زمنيًا.

يعرض Input files الحجم المدمج للمدخلات المحللة المحددة والجداول الزمنية Hayabusa. يُظهر Results saved حجم ملف المخطط الزمني المحفوظ. كلاهما يستخدم نفس وحدات KiB/MiB/GiB التي يمكن قراءتها بواسطة الإنسان مثل auto-parse.

ومع --sort، تُفرَّغ المخازن المؤقتة إلى مجلد مؤقت خاص، ثم تُنتج تمريرات دمج محدودة إخراجًا مرتبًا زمنيًا. ويستخدم الفرز الثواني والنانوثواني كاملةً بوصفها أعدادًا صحيحة، بما في ذلك التواريخ السابقة لعام 1970. وترتيب الأحداث المتساوية في الوقت حتمي أيًّا كان عدد العمال وميزانية الفرز. ويتقدم شريط التقدم مع كل حدث يُعالَج أثناء عمليات الدمج الوسيطة والنهائية، بما في ذلك التمريرات المتكررة. ويظهر الشريط في الطرفية، ويُخفى عند إعادة توجيه الإخراج.

لا ينطبق --memory-limit إلا مع --sort: فهو ميزانية مخازن الفرز المؤقتة الإجمالية، وليس حدًّا لذاكرة RSS الخاصة بالعملية. وتتطلب سجلات الإدخال، والحمل الإضافي لكائنات/سلاسل JSON، ومخازن CSV المؤقتة، وسجلات الدمج ذاكرةً إضافية. ويُخفَّض عدد العمال عند الميزانيات الصغيرة. ويحدّ --max-record-size من حجم سجل الإدخال المحلل الواحد (الافتراضي 16 MiB)؛ وتُحتسب مصفوفة/تقرير JSON المنسق للقراءة (pretty) مستندَ إدخالٍ واحدًا في المستوى الأعلى. وقد تحتاج المستندات الأكبر إلى حد أعلى، أو يُفضَّل استخدام JSONL. كما تُحتسب القراءة المسبقة لمحلل CSV ضمن هذا الحد.

يجب أن تتسع مساحة القرص المؤقتة لأجزاء الأحداث المنسقة (في الوضع الافتراضي) أو لسجلات الفرز الموسعة وتمريرات الدمج (مع --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 في الجدول الزمني إلا عندما يكون نوعها المُعلن نوعًا زمنيًا أو نوعًا زمنيًا متعدد القيم. وتبقى السلسلة النصية التي تحتوي على تاريخ سلسلةً نصية. وتحتفظ الرسائل المضمنة بمعرّفات عناصرها وبمراجع عناصرها الأم، ولا تُستخدم أوقات استخراج المرفقات بديلًا عن الطوابع الزمنية المخزنة للمرفقات. وتبقى صفوف الملفات والمستلمين وجهات الاتصال والخصائص التي بلا توقيت قابلةً للتتبع في الإخراج الأصلي وفي تقرير السجلات بلا توقيت.

وتنطبق مخططات إخراج CSV وJSONL نفسها على هذه المحللات؛ فإضافة أثر رقمي جديد لا تضيف مئات الأعمدة إلى CSV. ويبقى السياق الخاص بكل أثر رقمي في Details.