أداة تقوم بتحويل ملف .etl يحتوي على التقاط حزم شبكة ويندوز إلى تنسيق .pcapng.
تتيح لك هذه الأداة عرض التقاطات الحزم الخاصة بـ ndiscap و pktmon باستخدام Wireshark. نظرًا لمشاكل الأداء في طريقة التقاط الحزم الشائعة الأخرى (WinPcap، التي كانت مضمنة في الإصدارات الأقدم من Wireshark)، يُفضل استخدام هذه الأدوات المضمنة.
يحتوي Windows على عدة مكونات مضمنة قادرة على التقاط الحزم:
pktmon start --capture
<repro>
pktmon stop
netsh trace start capture=yes report=disabled
<repro>
netsh trace stop
الملفات التي تولدها هذه الأدوات هي ملفات etl، والتي يمكن فتحها بواسطة أدوات تركز على ETW مثل Microsoft Message Analyzer، ولكن لا يمكن فتحها بواسطة Wireshark، وهي الأداة المفضلة للعديد من المهندسين. يمكن لـ Etl2pcapng.exe تحويل ملف etl إلى ملف pcapng لفتحه باستخدام Wireshark، أو للتحليل بلغات تحتوي على مكتبات pcapng مثل Python و Rust.
ملاحظة: يحتوي pktmon على أداة تحويل etl2pcap مدمجة ("pktmon etl2pcap <filename>") والتي هي أيضًا قادرة على إنتاج ملفات pcapng أساسية. توفر etl2pcapng إمكانية تحويل مماثلة للأداة المدمجة مع الإضافات التالية:
الثنائيات المُعدة مسبقًا متاحة في قسم الإصدارات: https://github.com/microsoft/etl2pcapng/releases
قم بتشغيل الأداة باستخدام:
etl2pcapng.exe in.etl out.pcapng
بعد تحويل الملف، تطبع الأداة جدولًا يوضح التعيينات بين مؤشرات واجهة Windows ومعرفات واجهة pcapng.
سيحتوي ملف pcapng الناتج على تعليق على كل حزمة يشير إلى PID للعملية الحالية عندما تم تسجيل الحزمة. تحذير: هذا غالبًا لا يكون مماثلاً لـ PID الفعلي للعملية التي تسببت في إرسال الحزمة أو التي تم تسليم الحزمة إليها، نظرًا لأن موفر التقاط الحزم يعمل غالبًا في DPC (الذي يعمل في عملية عشوائية). يجب على المستخدم أن يضع ذلك في الاعتبار عند استخدام معلومات PID.
في موجه الأوامر في مجلد src، قم بتشغيل ما يلي. مطلوب Cmake 3.15 كحد أدنى.
mkdir build
cd build
cmake ..
cmake --build . --config Release
سيكون الثنائي في build/Release/etl2pcapng.exe
1.12.0 - إضافة دعم لملفات etl المولدة بواسطة pktmon وكتابة أحداث المزود الأخرى ككتل تصدير لمجلة systemd.
1.11.0 - يسمح بحذف اسم ملف الإخراج (مثل "etl2pcapng.exe foo.etl". يصبح اسم ملف الإخراج "foo.pcapng").
1.10.0 - أسرع 10 مرات.
1.9.0 - إضافة دعم فك تشفير أحداث Microsoft-Windows-Ras-NdisWanPacketCapture (VPN/الوصول عن بُعد) + إضافة ThreadID (TID) إلى تعليقات الحزمة
1.8.0 - إضافة قيمة RSS Hash إلى تعليقات الحزمة لحزم VMSwitch.
1.7.0 - تضمين معلومات حزمة VMSwitch في تعليقات الحزمة.
1.6.0 - تمكين ControlFlowGuard.
1.5.0 - كتابة iftype و ifindex في كتل وصف الواجهة وربط مكتبة C runtime بشكل ثابت بحيث لا يلزم تثبيت vcredist.
1.4.1 - إصلاح خطأ يؤدي إلى كتابة حزم تالفة.
1.4.0 - استنتاج طول القطعة الأصلي تلقائيًا إذا تم اقتطاع القطع الملتقطة.
1.3.0 - إضافة تعليق لكل حزمة يحتوي على معرف العملية (PID).
1.2.0 - كتابة معلومات اتجاه كل حزمة (epb_flags).
1.1.0 - إضافة دعم لحزم متعددة الأحداث الموجودة في التتبعات من Win8 والإصدارات الأقدم.
يرحب هذا المشروع بالمساهمات والاقتراحات. تتطلب معظم المساهمات موافقتك على اتفاقية ترخيص المساهم (CLA) التي تعلن أن لديك الحق، وأنك تمنحنا بالفعل، حقوق استخدام مساهمتك. للحصول على التفاصيل، تفضل بزيارة https://cla.opensource.microsoft.com.
عند تقديم طلب سحب، سيقوم بوت CLA تلقائيًا بتحديد ما إذا كنت بحاجة إلى تقديم CLA وتزيين PR بشكل مناسب (على سبيل المثال، فحص الحالة، تعليق). ما عليك سوى اتباع التعليمات المقدمة من البوت. ستحتاج فقط إلى القيام بذلك مرة واحدة عبر جميع المستودعات التي تستخدم CLA الخاص بنا.
اعتمد هذا المشروع مدونة قواعد السلوك مفتوحة المصدر من Microsoft. لمزيد من المعلومات، راجع أسئلة وأجوبة مدونة قواعد السلوك أو اتصل بـ [email protected] مع أي أسئلة أو تعليقات إضافية.