فهم تتبع أحداث Windows_ETW

  • فهم تتبع أحداث Windows_ETW

فهم ETW

تم استبعاد بعض المعلومات غير الضرورية، راجع المستند الكامل على: https://docs.microsoft.com/en-us/windows/win32/etw/event-tracing-portal

فهم الأساسيات

https://learn.microsoft.com/en-us/windows/win32/etw/about-event-tracing

البنية

الجلسات

توجد أربع أنواع من الجلسات

أنواع الجلساتالاستخدامالقيودالميزات
جلسة تتبع الأحداث(Standard ETW)1. EVENT_TRACE_PROPERTIES2. StartTrace، إنشاء جلسة3. EnableTrace 1. EnableTrace للموفر الكلاسيكي 2. EnableTraceEx للموفر المبني على البيان (manifest-based)4. ControlTrace إيقاف الجلسة- يدعم موفر manifest-based توفير الأحداث لما يصل إلى 8 جلسات فقط- موفر classic، يمكنه خدمة جلسة واحدة فقط.- سلوك استباق الموفر للأحدث (الأسبقية للأحدث).ETW القياسي.
جلسة SystemTraceProvider1. EVENT_TRACE_PROPERTIES->EnableFlags2. StartTrace3. ControlTrace إيقاف الجلسة- SystemTraceProvider هو موفر أحداث kernel، ويوفر مجموعة من أحداث kernel المعرفة مسبقاً.- جلسة NT Kernel Logger هي جلسة محددة مسبقاً من قبل النظام، تسجل سلسلة من أحداث kernel المعرفة مسبقاً.- Win7/WinServer2008R2 فقط جلسة NT Kernel Logger يمكنها استخدام SystemTraceProvider.- Win8/WinServer2012 يمكن لـ SystemTraceProvider توفير أحداث لـ 8 جلسات logger، منها اثنتان ثابتتان هما NT Kernel Logger و Circular Kernel Context Logger.- Win10 20348 وما بعده، يمكن التحكم في كل موفر System (provider) بشكل منفصل.الحصول على أحداث kernel المعرفة مسبقاً في النظام.
جلسة AutoLogger1. تعديل التسجيل 2. EnableTraceEx3. ControlTrace إيقاف الجلسة- جلسة Global Logger هي جلسة مستقلة خاصة، تسجل الأحداث عند بدء تشغيل النظام.- يتطلب AutoLogger العادي تفعيل الموفر يدوياً، بينما GlobalLogger لا يحتاج لذلك.- AutoLogger لا يدعم أحداث NT Kernel Logger، و GlobalLogger فقط يدعمها.- يؤثر على وقت التشغيل، استخدم بحذرتسجيل الأحداث أثناء تشغيل نظام التشغيل
جلسة Private Logger-- ETW في وضع المستخدم- الاستخدام داخل العملية فقط- لا يحسب ضمن حد 64 جلسة المتزامنة.خاص بالعملية

الأدوات

  • logman
  • wevtutil
    • مثال على استعلام xpath: wevtutil qe Security /c:2 /q:"*[System[EventID=5157]]" /f:text
  • tracelog
    • باستخدام أداة tracelog في Visual Studio، يمكنك إضافة وإزالة موفري ETW وجلسات ETW ديناميكياً وقت التشغيل
  • mc
  • etw-providers-docs