دليلك النهائي إلى Procmon

Procmon. الأداة السيئة السمعة من شركة ويندوز سيسترنالز لتتبع جميع أنواع النشاط على ويندوز. معروفة بقدرتها على تتبع مثبتات البرامج الضارة التي تقوم بتغييرات غير معروفة على مفاتيح التسجيل أو ربما تفحص آثار فيروس.

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

في هذا الدليل النهائي، ستتعلم كل ما يجب معرفته عن استخدام أداة procmon بدءًا من التثبيت والاستخدام الأساسي إلى الاستخدامات المختلفة التي ستساعدك في تتبع جميع أنواع النشاط.

المتطلبات المسبقة

سينطبق هذا الدليل النهائي على جميع أنظمة ويندوز تقريبًا ولكن، لكي تكتمل الصورة (وتمنعك من محاولة تشغيل procmon على حاسوب ويندوز 3.1)، ستحتاج إلى ما يلي:

  • A Windows Vista or Windows Server 2008 or higher machine (x86 or x64)

هذا كل شيء! ستقوم بتنزيل وتثبيت procmon في الأقسام التالية. سيتم استخدام الإصدار v3.6 من procmon طوال الدليل على جهاز ويندوز 10 بناء 1909 x64.

تنزيل وتشغيل Procmon

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

الطريقة التقليدية

Procmon لا يحتاج إلى تثبيت؛ إنه ملف تنفيذي واحد. يمكنك الحصول عليه عن طريق تحميل ملف ZIP. بمجرد أن تقوم بتنزيله، قم بفك ضغط ملف ZIP باستخدام أداةك المفضلة. أدناه كود PowerShell إذا كنت قد حفظته في مجلد المنزل. سينشئ هذا الكود مجلدًا في ~\ProcessMonitor يحتوي على جميع الملفات المطلوبة.

Expand-Archive -Path '~\ProcessMonitor.zip' -Destination ProcessMonitor

داخل المجلد ~\ProcessMonitor، سترى خمسة ملفات:

  • Eula.txt – اتفاقية الترخيص التي يجب عليك قبولها قبل تشغيل procmon.
  • procmon.chm – ملف المساعدة الذي يحتوي على جميع الوثائق المقدمة.
  • Procmon.exe – الملف التنفيذي الرئيسي الذي سيطلق نسخة procmon الصحيحة (x86 أو x64).
  • Procmon64.exe – النسخة x64 من برنامج procmon.
  • Procmon64a.exe – النسخة 64 بيتًا من procmon (نسخة ألفا).

قم بتشغيل procmon عن طريق استدعاء الملف ~\ProcessMonitor\procmon.exe.

Procmon لا يعمل إلا بأذونات مرتفعة لذا سيتم طلب منك قبول ذلك إذا كان لديك تفعيل UAC عند تشغيله. هناك طريقة للتغلب على ذلك سيتم التطرق إليها لاحقًا في هذا الدليل.

Sysinternals Live

إذا كنت تفضل عدم تنزيل ملف تنفيذي أو إذا لم يكن ذلك ممكنًا، يمكنك أيضًا استخدام مجلد Sysinternals Live. للقيام بذلك، افتح مستكشف الملفات والصق \\live.sysinternals.com\tools. سترى ثم مجلدًا مثل أي مشاركة شبكية عادية يحتوي على جميع ملفات Sysinternals بما في ذلك procmon.

Sysinternals Live

انتقل لأسفل حتى تجد procmon، انقر نقرًا مزدوجًا وفويلاء، أنت تقوم بتشغيل procmon!

تخصيص سلوك بدء Procmon

.افتراضيًا، يطلق procmon مطالبًا بقبول اتفاقية ترخيص مستخدم نهائي (EULA) وكذلك فتح نافذة. باستخدام سطر الأوامر، يمكنك تخصيص هذا السلوك الافتراضي.

على سبيل المثال، إذا كنت ترغب في تشغيل procmon بحد أدنى باستخدام مفتاح /Minimized.

.\procmon.exe /Minimized

ربما تقوم بتشغيل procmon على جهاز جديد وتفضل عدم رؤية تعليمة EULA. يمكنك تعطيل ذلك عند التشغيل باستخدام مفتاح /AcceptEula.

.\procmon.exe /AcceptEula

على الرغم من أن هذا أقل احتمالًا في هذا الوقت، في كل مرة تقوم فيها بتشغيل procmon، يكتشف ما إذا كنت تعمل على نظام التشغيل 64 بت أو 32 بت. إذا كنت على جهاز 64 بت، فسيشغل عملية 64 بت والعكس. إذا كنت على جهاز 64 بت وترغب في تشغيل procmon كعملية 32 بت أو قراءة ملف سجل (سنتحدث عن ذلك لاحقًا) تم إنشاؤه من جهاز 32 بت، استخدم مفتاح /Run32.

.\procmon.exe /Run32

يحتوي Procmon على مفاتيح أخرى في سطر الأوامر لتخصيص السلوك ولكن ستتعلم ذلك في الأقسام القادمة.

مقدمة Procmon

عند تشغيل procmon للمرة الأولى ، قد تكون مرتبكًا بالخيارات. لا تقلق ، ستتعلم كل شيء تقريبًا في هذا الدليل! يمكنك أن ترى أدناه استعراضًا نموذجيًا للتقاط procmon في التقدم.

Default Procmon process view

في اللحظة التي تقوم فيها بتشغيل procmon ، يبدأ في التقاط العديد من أنواع مختلفة من أحداث Windows.

إذا كنت لا ترغب في أن يبدأ procmon تلقائيًا في التقاط الأحداث ، يمكنك تشغيله من سطر الأوامر باستخدام procmon.exe /NoConnect.

كما يمكنك أن ترى في اللقطة المذكورة أعلاه تحت عمود العملية ، هناك رموز مختلفة تمثل فئات مختلفة من أحداث Windows. يقوم Procmon بالتقاط الأحداث من خمس فئات مختلفة:

  • سجل
  • نظام الملفات
  • الشبكة
  • العمليات
  • أحداث البروفايل

يتم تمثيل كل حدث في جميع الفئات في لوحة قائمة واحدة تحتوي على سبعة أعمدة:

  • وقت اليوم – الوقت الذي حدث فيه الحدث.
  • اسم العملية – اسم العملية التي أثارت الحدث.
  • PID – معرف العملية.
  • العملية – نوع الحدث مثل إذا فتحت العملية ملفًا ، أو قامت بتغيير قيمة مفتاح السجل ، إلخ.
  • المسار – المسار إلى الكائن الذي تفاعل معه الحدث مثل مسار الملف ، أو مسار السجل ، إلخ.
  • النتيجة – ستحتوي هذه العمود على قيم عديدة للإشارة إلى نتيجة الحدث. يمكن أن تكون هذه القيمة بسيطة مثل النجاح أو محددة للحدث مثل إعادة التحليل، تجاوز الطاقة، عدم العثور على الاسم، إلخ.
  • التفاصيل – يحتوي هذا العمود على جميع التفاصيل الصغيرة حال تحديد حدث تود رؤيته.

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

Customizing procmon columns

في نافذة الحدث، انقر نقرًا مزدوجًا على حدث. يمكنك العثور على المزيد من التفاصيل حول العملية والحدث نفسه عن طريق عرض علامات الحدث، العملية، و التراكم.

Procmon event properties window

تمكين وتعطيل التقاط الأحداث

لديك السيطرة الكاملة على عملية الالتقاط. يمكنك إما تعطيل عملية الالتقاط بأكملها أو تعطيل التقاط حسب فئة الحدث.

على شريط القائمة العلوي، سترى رمز مكبر الزجاج (أدناه). إذا كان مكبر الزجاج يحمل علامة “X” الحمراء فوقه، فهذا يعني أن عملية الالتقاط معطلة. وإلا، فإن عملية الالتقاط مُمكّنة.

Procmon actively capturing events

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

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

Types of Windows events

تحوم فوق كل رمز بالفأرة لرؤية نوع النشاط الذي يمثله كل رمز.

سترى فور النقر على رمز ما، يقوم برنامج Procmon بتطبيق تصفية الحدث. اعتمادًا على عدد الأحداث التي تم التقاطها حتى الآن، قد ترى نافذة منبثقة مثل الواحدة أدناه.

Types of Windows events

بشكل افتراضي، الرمز الأبعد إلى اليمين (الرسم البياني الأسود والأخضر) غير مفعل. إذا كنت ترغب في تمكين هذه الفئة من الأحداث عند بدء تشغيل Procmon، يمكنك استدعاء Procmon من سطر الأوامر باستخدام .\procmon.exe /Profiling.

يمكنك رؤية عدد الأحداث في النافذة عند النظر إلى الأسفل. كما يمكنك أن ترى أن برنامج Procmon قد قام بمعالجة 84،334 حدثًا ولكن بسبب تطبيق تصفية الحدث، يعرض فقط 15،912 منها أو 18% منها. يمكنك أيضًا رؤية أن هذه الأحداث تُخزَّن في الذاكرة الظاهرية (سنتحدث عن ذلك في وقت لاحق).

Number of Events in the Window

تصفية الأحداث

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

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

Filter menu options

عرض المرشحات

افتراضيًا، يقوم بركمون بإنشاء مرشح لك. في البند التصفية، انقر على تصفية…. ستظهر صندوق تصفية مراقب العمليات مع منطقتين؛ إحداها لتصفية قواعد التصفية والأخرى لعرض جميع القواعد التي قمت بإعدادها. يمكنك رؤية مثال على ذلك أدناه.

Filter rules

بشكل افتراضي، سيظهر بركمون هذه التصفيات عندما تقوم بتشغيله. إذا كنت ترغب في إخفاء هذا الصندوق، يمكنك القيام بذلك عن طريق تشغيل بركمون مع التبديل /Quiet.

سترى أنه بدون إنشاء أي تصفيات خاصة بك، يقوم بركمون أيضًا باستخدام مجموعة مدمجة من قواعد التصفية. إذا قمت بالتمرير لأسفل في صندوق تصفية مراقب العمليات، سترى العديد من أنواع القواعد المحددة. هنا يمكنك عرض كل فئة، عامل تشغيل، قيمة، وإجراء يتخذه كل قاعدة.

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

Enable Advanced Output

على سبيل المثال، سترى بعض القواعد في الأعلى توضح اسم العملية لقيمة العمود، هو لعلاقة العملية، وعمليات ذات صلة بـ “Procmon” لقيمة القيمة في العمود، وإجراء بـ استثناء. بالعبارة البسيطة، تخبر هذه القواعد “Procmon” بعدم عرض (استثناء) عملية باسم “procmon.exe”، على سبيل المثال.

إدارة قواعد تصفية الأحداث

اعتمادًا على حالة الاستخدام الخاصة بك، ستحتاج بلا شك إلى إضافة قواعد خاصة بك. هناك بعض الطرق المختلفة لإضافة القواعد.

استخدام صندوق تصفية “Process Monitor”

في الجزء السابق، رأينا كيف يبدو صندوق “Process Monitor Filter” وعرضنا جميع القواعد. في هذا الصندوق، يمكنك أيضًا إنشاء وتعديل وإزالة القواعد أيضًا.

لنفترض أنك ترغب في رؤية الأوقات فقط عندما يتم استعلام عملية “explorer.exe” على مفتاح سجل معين.

إضافة مرشحات الأحداث

في صندوق “Process Monitor Filter”:

  1. انقر على قائمة الانسداد الأقصى على اليسار. تعرض هذه القائمة جميع فئات الأحداث المختلفة التي يمكنك تصفيتها. يمكنك أن ترى أدناه أن هناك الكثير!

    كل عنصر تراه في هذه القائمة يتطابق مع عمود يعرض في العرض الرئيسي على النحو الموضح أدناه. لأغراض هذه المقالة، اختر اسم العملية.

Process Monitor Filter

2. اختر فئة ثم اختر عامل التصفية. بشكل افتراضي، سيكون مربع القائمة المنسدلة هو هو ولكن لديك العديد من الخيارات الأخرى إذا قمت بالنقر على القائمة المنسدلة. يسمح لك هؤلاء العمليات بتصفية أي خيار اخترته بطرق مختلفة. نظرًا لأنك تبحث عن عملية تكون بالضبط explorer.exe، اختر هو.

Operator List

3. في النهاية، اختر اسم العملية كما هو موضح أدناه. ستلاحظ أنه بمجرد اختيارك اسم العملية كفئة، يُظهر بروكمون تلقائيًا جميع العمليات التي تعمل حاليًا للاختيار من بينها.

Process Name in Process Monitor Filter

4. تأكد من أنك اخترت تضمين لأنك تريد فقط رؤية الأحداث التي تطابق هذا المعيار. ثم انقر فوق زر إضافة لإضافة القاعدة إلى تصفيتك الحالية. يمكنك أن ترى أدناه، تُعرض قاعدة التضمين على شكل علامة صح خضراء.

5. في النهاية، نظرًا لأنك تريد جميع الأحداث حيث يستعلم explorer.exe عن مفتاح سجل، تأكد من تضمين العملية RegQueryKey أيضًا. عند الانتهاء، يجب أن ترى تمت إضافة كلتا القواعد.

RegQueryKey

6. انقر فوق موافق وسوف ترى النافذة الرئيسية تقوم بإزالة جميع الأحداث التي لا تتطابق مع قواعد التصفية التي حددتها للتو.

Events that do not match the filter rules

إزالة قواعد تصفية الأحداث

يمكنك أيضًا بسهولة إزالة وتغيير قواعد التصفية.

  1. انقر على أيقونة التصفية في أعلى النافذة الرئيسية لفتح مربع تصفية مراقب العمليات.
Process Monitor Filter Box

2. قم بتحديد كلتا قواعد الفلتر التي أنشأتها أعلاه، انقر على زر إزالة كما هو موضح أدناه وانقر موافق. ستقوم هذه العملية بإزالة كلتا القواعد المخصصة التي تمت إضافتها مسبقًا.

remove both of the custom rules added

يمكنك أيضًا النقر على زر إعادة تعيين لإزالة تلقائيًا جميع قواعد الفلتر المخصصة.

عندما تقوم بتطبيق فلتر، أغلق Procmon ثم أعد تشغيله مرة أخرى، سيتم تطبيق ذلك الفلتر مرة أخرى. إذا كنت ترغب في التأكد من عدم تطبيق أي فلتر عند بدء Procmon، يمكنك استدعاء Procmon مع مفتاح /NoFilter.

إضافة قواعد فلتر باستخدام نقرة بزر الفأرة الأيمن

يمكنك أيضًا إضافة قواعد الفلتر عبر قائمة النقر بزر الماوس الأيمن إذا قمت بالنقر بزر الماوس الأيمن على عملية. كما هو موضح أدناه، يمكنك إنشاء أي نوع من القواعد مباشرة من هذه القائمة؛ لا حاجة للذهاب إلى صندوق مراقب العمليات على الإطلاق!

add filter rules via a right-click menu

لإزالة قواعد الفلتر التي تم إنشاؤها عبر قائمة النقر بزر الماوس الأيمن، ستحتاج للانتقال لصندوق مراقب العمليات لإزالتها.

حفظ وإدارة الفلاتر المخصصة

إذا كنت مستخدمًا متقدمًا لـ Procmon، فمن المحتمل أن يأتي الوقت الذي تكون فيه لديك مجموعات من قواعد الفلتر لمناسبات مختلفة. باستخدام ميزات حفظ الفلتر وتنظيمها في Procmon، يمكنك إدارة وحفظ العديد من هذه المجموعات كما ترغب.

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

Saving a filter

بمجرد حفظ الفلتر، يمكنك الذهاب إلى الفلتر، انقر على تنظيم الفلاتر حيث سترى جميع الفلاتر التي قمت بحفظها. من هنا، يمكنك النقر على فلتر، انقر موافق وسيتم تطبيق الفلتر المحفوظ على النافذة الحالية.

Viewing and loading filters

يمكنك أيضًا تحميل فلتر محفوظ عن طريق التحويم فوق تحميل الفلتر في القائمة المنسدلة الفلتر واختيار الفلتر المحفوظ الخاص بك من القائمة على اليمين.

Loading a filter

استيراد وتصدير الفلاتر

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

لتصدير فلاتر Procmon:

  1. انتقل إلى مربع تنظيم الفلاتر.
  2. انقر على الفلتر الذي قمت بحفظه بالفعل وترغب في تصديره.
  3. انقر على زر تصدير.
  4. قم بتقديم اسم، اختر مسارًا وانقر موافق. سترى أن جميع الفلاتر Procmon يتم حفظها بامتداد PMF.

لتوريد فلاتر Procmon:

  1. انتقل إلى مربع تنظيم الفلاتر.
  2. انقر على زر استيراد.
  3. ابحث عن الفلتر الذي ترغب في استيراده وانقر موافق.

يمكنك رؤية دليل توضيحي بصري لهذه الخطوات أدناه.

import procmon filters

استيراد وتصدير تكوينات Procmon

كما تعلمت سابقًا ، يمكنك تصدير واستيراد عوامل تصفية بروكمون عبر ملفات PMF. لكن العوامل التصفية هي مكون واحد فقط يشكل جزءًا من بروكمون. يمكنك تخصيص الأعمدة ، وتغيير موقع التخزين (سأتحدث عن ذلك لاحقًا) والمزيد. أليس من الجميل حفظ كل هذه الإعدادات أيضًا؟ بالطبع بإمكانك ذلك!

لحفظ تكوين بروكمون بأكمله ، انقر فوق ملف -> تصدير التكوين ثم اختر الموقع الذي ترغب في حفظ ملف PMC (تكوين بروكمون).

Export Configuration

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

يمكنك أيضًا تحميل التكوينات المحفوظة (بما في ذلك العوامل التصفية) عبر سطر الأوامر باستخدام مفتاح /LoadConfig تليه مسار الملف على سبيل المثال ./procmon.exe /LoadConfig C:\ProcmonConfigs\file_deletion.pmc.

تسليط الضوء على الأحداث وتحويلها إلى عوامل تصفية

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

ربما ترى عملية في قائمة الأحداث تسمى ctfmon.exe وترغب في تسليط الضوء عليها في القائمة. يمكنك إنشاء قاعدة للتسليط عن طريق:

  1. نقر بزر الماوس الأيمن على الحدث الذي ترغب في تسليط الضوء على سمة من سماته.
  2. قم بالنقر على Highlight واختيار سمة لتسليط الضوء عليها. في هذا المثال، يمكنك اختيار اسم العملية. سترى لون الخلفية يتغير إلى لون أزرق فاتح.
  3. بمجرد إنشاء قاعدة التسليط، يمكنك الانتقال إلى مربع تسليط مراقب العمليات بالنقر على تصفية —> تسليط. سترى القاعدة المنشأة هناك.
  4. من مربع تسليط مراقب العمليات، يمكنك إضافة وإزالة القواعد تمامًا كما تفعل مع التصفية.
  5. إذا قمت بإنشاء بعض قواعد التسليط وترغب في تحويلها إلى تصفية، يمكنك فعل ذلك بالنقر على زر إنشاء تصفية في مربع تسليط مراقب العمليات.

يمكنك رؤية عرض مرئي لهذه الخطوات أدناه.

Highlighting Events and Converting to Filters

تصدير وفتح الأحداث إلى/من ملفات السجل

لكي يعرض procmon الأحداث لك في نافذة، يجب أن تكون مخزنة في مكان ما. بشكل افتراضي، يتم تخزين الأحداث في الذاكرة الظاهرية، وتحديدًا في ملف الصفحة الخاص بك.

events are stored in virtual memory

تعتمد كمية الأحداث التي يمكن لـ procmon تخزينها على حجم ملف الصفحة الذي قمت بتعريفه (وحدة الالتزام في النظام).

يمكن لـ Procmon التقاط ما يصل إلى 199 مليون حدث.

حفظ الأحداث في ملف سجل

ربما تحتاج إلى حفظ هذه الأحداث للتحقيق فيها لاحقًا أو ربما تحميلها على جهاز كمبيوتر آخر؟ في هذه الحالة ، تحتاج إلى حفظ الأحداث في ملف سجل (PML).

طريقة واحدة لحفظ هذه الأحداث المفيدة هي النقر على ملف – > حفظ . يعرض هذا الإجراء مربع الحوار حفظ في ملف أدناه حيث يتم تقديم بعض الخيارات.

الأحداث التي سيتم حفظها:

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

التنسيق:

  • تنسيق المراقب العملية الأصلي (PML) – التنسيق الافتراضي لحفظ جميع الأحداث (PML).
  • قيم مفصولة بفواصل (CSV) – حفظ جميع الأحداث في ملف CSV.
  • لغة ترميز الوسم القابلة للتوسيع (XML) – حفظ جميع الأحداث في ملف XML. يتيح لك هذا التنسيق أيضًا القدرة على حفظ تتبع المسارات (المزيد في وقت لاحق) وسيقوم بحل رموز الكومة.
Events

انقر على موافق وسيقوم برنامج Procmon بتسجيل جميع الأحداث التي تم التقاطها حاليًا والتي تتطابق مع معاييرك في الملف الذي تختاره.

فتح سجلات الأحداث المحفوظة.

\begin{Arabic}
لقد قمت بتسجيل الآلاف من الأحداث على جهاز كمبيوتر واحد، وقمت بحفظ جلسة التقاط هذه في ملف PML وقمت بنسخها إلى جهاز كمبيوتر آخر للتحقيق. الآن ماذا؟ عليك أن تقوم بفتحها.

يمكنك فتح أي ملف PML بغض النظر عما إذا كنت قد سجلته على جهاز الكمبيوتر المحلي أم لا، عن طريق الانتقال ببساطة إلى File —> Open واختيار ملف PML.

يمكنك فتح السجلات من خلال سطر الأوامر باستخدام مفتاح /OpenLog مثل procmon.exe /OpenLog C:\MyLogFile.pml.

تسجيل الأحداث تلقائيًا

في القسم السابق، تعلمت كيفية تصدير الأحداث إلى سجل بعد تسجيلها. ولكن ماذا لو كنت تعلم مسبقًا أنك تريد الأحداث في ملف PML أو XML أو CSV؟ يمكنك أن تجعل procmon يلتقط الأحداث تلقائيًا في أحد تلك تنسيقات ملفات السجل.

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

  1. عند إغلاق procmon، تختفي الأحداث.
  2. كما ذُكر سابقًا، يمكن أن يزيد حجم ملف الصفحة بشكل غير مضبوط.

عند استخدام الذاكرة الظاهرية كمكان تخزين، يمكنك اكتشاف كم مساحة متبقية لـ procmon للاستخدام عن طريق النقر على File —> Backing Files.

ماذا تفعل؟ قم بتغيير مكان التخزين.

تخزين الأحداث على القرص

يمكنك تغيير مكان تخزين الأحداث من ملف الصفحة إلى القرص عن طريق:

  1. إيقاف التقاط إذا كنت تعمل حاليًا على ذلك.
    \end{Arabic}

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

Process Monitor Backing Files

3. لتغيير موقع التخزين إلى ملف، انقر على حقل استخدم الملف المسمى:، انقر على زر النقاط الثلاث وحدد موقع الملف.

حاول استخدام حجم قرص مختلف عما يعمل عليه procmon للحصول على أفضل أداء.

يمكنك إجبار procmon على استخدام ملف كموقع تخزين أيضًا عن طريق تشغيله من سطر الأوامر واستخدام مفتاح /BackingFile. إذا كنت ترغب في العودة إلى استخدام ملف الصفحة مرة أخرى، استخدم مفتاح /PagingFile.

تحويل ملفات السجل

يمكن لـ Procmon حفظ ملفات السجل بثلاثة تنسيقات مختلفة؛ PML و CSV و XML. ربما قمت بحفظ ملف سجل كـ PML وتحتاج إلى تحليل الأحداث باستخدام نص أو أداة أخرى. في هذه الحالة، يمكنك تحويل ملف سجل PML هذا إلى XML أو CSV من خلال سطر الأوامر.

لنفترض أن لديك ملف سجل PML في C:\capture.pml. ترغب في تحويل هذا الملف السجل إلى XML وواحد بتنسيق CSV. يمكنك القيام بذلك أولاً عن طريق فتح ملف السجل باستخدام مفتاح /OpenLog ثم استخدام مفتاح /Save* لحفظه.

يحتوي Procmon على معلمة /SaveAs القياسية التي تسمح لك بحفظ سجل في أي من التنسيقات الثلاثة المذكورة. ستقوم معلمة /SaveAs بتحديد تنسيق الملف اعتمادًا على امتداد الملف الذي تقدمه.

أدناه بعض الأمثلة:

تحويل ملف السجل capture.pml إلى capture.xml:

procmon.exe /OpenLog C:\capture.pml /SaveAs C:\capture.xml

تحويل سجل capture.pml إلى capture.csv:

procmon.exe /OpenLog C:\capture.pml /SaveAs C:\capture.csv

تذكر خيارات تتبع الكومة وحل الرمز التكراري في مربع الحوار حفظ في ملف أعلاه؟ يمكنك تمكين هذه الخيارات أيضًا باستخدام /SaveAs1 و /SaveAs2.

يمكنك حفظ سجلات الكومة ومعلومات الرمز فقط في تنسيق XML.

تحويل سجل capture.pml إلى capture.xml بما في ذلك معلومات الكومة:

procmon.exe /OpenLog C:\capture.pml /SaveAs1 C:\capture.xml

تحويل سجل capture.pml إلى capture.xml بما في ذلك معلومات الكومة مع الرموز:

procmon.exe /OpenLog C:\capture.pml /SaveAs2 C:\capture.xml

اعلم أن إضافة سجلات الكومة والرموز ستزيد بشكل كبير من وقت التحويل وسوف ترى بالتأكيد مؤشر تقدم كما هو موضح أدناه.

Progress Indicator

التقاط أحداث بدء التشغيل

في بعض الأحيان، البيانات التي تحتاج إليها للتحقيق لا تتم إنشاؤها أثناء تشغيل Windows. قد تحتاج أيضًا إلى التحقيق في ما يقوم به عملية عندما يبدأ Windows التشغيل أيضًا.

من المشترك الحاجة إلى تحديد مشكلات مثل أداء بدء التشغيل البطيء أو ربما برامج ضارة تقرر التشغيل مباشرة عند بدء تشغيل Windows. يحتوي Procmon على ميزة تسمى تسجيل وقت الإقلاع يمكنك تمكينها لالتقاط هذه المعلومات.

لتمكين تسجيل الإقلاع، انقر على الخيارات —> تمكين تسجيل الإقلاع في القائمة كما هو موضح أدناه.

Enabling boot logging

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

تمكين أحداث تحليل موضوع الخيط هو حالة استخدام متقدمة. عند تمكين تحليل موضوع الخيط، يقوم procmon بالتقاط تتبعات كومة الخيط واستخدام وحدة المعالجة المركزية التي يمكنك استخدامها لتحديد مصدر مشكلات الأداء المتعلقة بوحدة المعالجة المركزية.

Optional thread-profiling events for boot time logging

بمجرد النقر على موافق، سيقوم procmon بتمكين تسجيل الاقلاع الذي يُعلم برنامج تصفية المشغل (المزيد حول هذا في وقت لاحق) بالانتظار لإعادة تشغيل ويندوز التالية. عند إعادة تشغيل ويندوز، سيبدأ procmon في التقاط أحداث العمليات تمامًا كما لو أنك قمت بتشغيله يدويًا.

يتم تخزين جميع بيانات الأحداث أثناء الاقلاع في ملف سجل مؤقت يُسمى C:\Windows\procmon.pmb.

عندما يتم إعادة تشغيل ويندوز، قم بفتح procmon مرة أخرى. يجب أن ترى مربع حوار مشابه للذي بالأسفل. هنا، انقر فوق نعم لتحويل بيانات الاقلاع إلى تنسيق PML عن طريق تحديد ملف السجل لحفظ البيانات فيه.

Confirmation to convert boot-time events to PML

أثناء تحويل procmon للبيانات، سترى شريط تقدم مشابه للذي بالأسفل.

Converting boot-time event data to PML

لا تنسى أن تفتح procmon مرة أخرى بعد إعادة التشغيل! سيبدأ Procmon في التقاط الأحداث فور تشغيل ويندوز في C:\Windows\procmon.pmb. وسيستمر في القيام بذلك حتى تقوم بإيقافه عن طريق فتح procmon مرة أخرى.

تشغيل Procmon عن بُعد

على الرغم من أن procmon يعمل فقط محليًا على جهاز ويندوز، يمكنك استدعاء procmon للتشغيل عن بُعد باستخدام psexec أو أمر Invoke-Command في PowerShell.

ذات الصلة: دليل PsExec النهائي، أفضل طريقة لتشغيل الشفرة عن بُعد باستخدام Invoke-Command

لتشغيل procmon باستخدام أمر Invoke-Command في PowerShell، اتبع الخطوات التالية:

  1. قم بتمكين بالقوة التنفيذ عن بُعد لـ PowerShell على الجهاز البعيد إذا لم يتم ذلك بالفعل.

2. انسخ مجلد procmon إلى الكمبيوتر البعيد عبر وحدة التحكم في PowerShell.

Copy-Item -Path C:\procmon \\MYPC\c$

3. قم بتنفيذ procmon عبر PowerShell مع التأكد من تخطي تأكيد EULA وإجبار procmon على تخزين الأحداث في ملف دعم بدلاً من الذاكرة الظاهرية وعدم الطلب لتصفية عند البدء.

Invoke-Command -Computer MYPC -ScriptBlock { C:\procmon\procmon.exe /AcceptEula /BackingFile C:\capture.pml /Quiet }

4. في هذه النقطة، بدأ procmon بالتقاط. أعد إنتاج المشكلة التي تحاول التقاطها.

5. قم بإيقاف procmon على الكمبيوتر البعيد باستخدام التبديل /Terminate.

Invoke-Command -Computer MYPC -ScriptBlock { C:\procmon\procmon.exe /Terminate }

6. انتظر إيقاف procmon. كاختصار، يمكنك التحقق بشكل دوري من عملية procmon وإعادة التحكم إلى وحدة التحكم في PowerShell عندما يكون الأمر مكتملًا.

while (Invoke-Command -Computer MYPC -ScriptBlock { Get-Process procmon -ErrorAction Ignore }) {
     Write-Host "Waiting on procmon to exit…"
     Start-Sleep -Seconds 5
 }

7. انسخ ملف السجل البعيد إلى الكمبيوتر المحلي

$session = New-PSSession -ComputerName MYPC
Copy-Item -Path C:\log.pml -Destination C:\ -FromSesson $session
$session | Remove-PSSession

الآن، لديك ملف سجل الذي تم تنفيذه عن بُعد على جهاز الكمبيوتر المحلي الخاص بك!

إذا كنت ترغب في نص PowerShell مناسب لإدارة هذا التقاط، يمكنك العثور عليه أدناه.

[CmdletBinding()]
 param(
     [Parameter()]
     [string]$ComputerName, 
     [Parameter()]
     [string]$LogFilePath = 'C:\capture.pml'
 )
 $procmonFolderPath = 'C:\procmon'
 try {
     $session = New-PSSession -ComputerName $ComputerName
     Copy-Item -Path $procmonFolderPath -Destination $procmonFolderPath -ToSession $session $scriptBlock = {
         & "$using:procmonFolderPath\procmon.exe" /AcceptEula /BackingFile $using:LogFilePath /Quiet
         & "$using:procmonFolderPath\procmon.exe" /Terminate
         while (Get-Process procmon -ErrorAction Ignore) {
             Write-Host "Waiting on procmon to exit…"
             Start-Sleep -Seconds 5
         }
     }
     Copy-Item -Path $LogFilePath -Destination C:\ -FromSesson $session
 } catch {
     throw $_
 } finally {
     $session | Remove-PSSession
 }

إعداد تقاطات procmon طويلة المدى

A busy Windows system can produce a lot of events procmon captures that can overwhelm your PC. If you intend to run procmon for an extended amount of time, there a few measure you should take into consideration.

إسقاط الأحداث المصفاة

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

إذا كنت تنوي إجراء لقطات أطول باستخدام Procmon، فإنه دائمًا فكرة جيدة أن تختار إسقاط الأحداث المُصفَّاة من قائمة التصفية كما هو موضح أدناه.

Drop Filtered Events

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

مواضيع متقدمة

هل ما زلت تشتهي المزيد من المعلومات حول Procmon وكيفية استخدامه؟ دعونا ننتقل إلى بعض المواضيع المتقدمة! هذه المواضيع هي تلك التي قد لا تحتاج إليها كثيرًا. تتعلق هذه المواضيع بمزيد من ميزات Procmon تحت الغطاء، ولكن يمكن أن تكون هذه المعلومات مفيدة عند استكشاف الأخطاء في Procmon.

مراقبو التصفية

لالتقاط الأحداث، يقوم Procmon بتسجيل واستخدام مراقب التصفية من خلال مدير التصفية في Windows (FltDrv). يتم تثبيت مراقب التصفية هذا الذي يُسمى PROCMON24 عند بدء عملية الالتقاط. في بعض الأحيان، يمكن أن يتعارض هذا المراقب مع تطبيقات أخرى.

بعد بدء Procmon، افتح نافذة PowerShell المرفوعة أو سطر الأوامر وقم بتشغيل fltmc filters. تقوم أداة fltmc بسرد وتحميل وتفريغ مراقبي التصفية. عند تشغيل هذا الأمر، سترى مراقب التصفية PROCMON24 محمّلًا كما هو موضح أدناه.

لاحظ أن الارتفاع لـ PROCMON24 هو 385200 بشكل افتراضي مع وجود عدد أقل من المرشحات الأخرى. يمثل ارتفاع برنامج التشغيل المرشح المستوى الذي يمكن لبرنامج التشغيل المرشح “رؤية” الأحداث به. على سبيل المثال ، إذا حدثت أحداث على مستوى wcifs أو luafv أو Wof ، فلن يكون برنامج التشغيل المرشح قادرًا على رؤيتها. سنتحدث فيما بعد عن كيفية تغيير هذا.

Procmon 24

يظل برنامج تشغيل المرشح PROCMON24 محملًا حتى عندما لا يكون برنامج procmon قيد التشغيل.

في بعض الأحيان قد يواجه procmon مشكلات في تحميل برنامج تشغيل المرشح. لحل المشكلة ، قم بفتح procmon بالتبديل /NoConnection لمنع procmon من الاتصال ببرنامج تشغيل المرشح.

إلغاء تحميل برنامج تشغيل المرشح PROCMON24

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

يمكنك إلغاء تحميل برامج تشغيل المرشح باستخدام الأمر fltmc unload تلاه اسم برنامج تشغيل المرشح.

fltmc unload PROCMON24

ولكن إذا حاولت الأمر أعلاه ، ستكتشف قريبًا أنه لا يعمل. لا يمكنك إلغاء تحميل برنامج تشغيل المرشح هذا لأن المطور لم يضف هذه القدرة على الأغلب.

Can’t Unload the Filter

إذا كنت بحاجة إلى إلغاء تحميل برنامج تشغيل المرشح PROCMON24 ، فإن إعادة التشغيل هي الطريقة الوحيدة للقيام بذلك ، للأسف.

تتبعات الكومة

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

A stack trace is the history of various functions called during various function calls when a process is running.

مع قائمة الأحداث التي تظهر في بروكمون ، انقر مرتين على أي حدث وانقر على علامة التبويب التراكمي كما هو موضح أدناه. علامة التبويب التراكمي تمثل المكالمات الوظيفية التي قامت بها العملية الفردية في الوقت الذي حدث فيه الحدث.

Stack Tab

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

تغيير الارتفاع لبروكمون (التقاط الأحداث على مستوى أدنى)

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

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

للقيام بذلك:

  1. تأكد من إغلاق Procmon.

2. البحث عن أدنى ارتفاع لمراقبي تصفية المحمّلين حاليًا باستخدام أمر fltmc.

fltmc filter

3. قم بتغيير قيمة التسجيل Altitude تحت المفتاح التسجيلي HKLM\System\CurrentControlSet\Services\PROCMON24\Instances\Process Monitor 24 Instance إلى 100 أقل من قيمة الارتفاع الأدنى (لرؤية جميع الأحداث).

قد يتغير مكان المفتاح التسجيلي اعتمادًا على إصدار Procmon الذي قمت بتثبيته. يستخدم هذا البرنامج التعليمي Procmon 2.4.

يمكنك فتح جلسة PowerShell مرتفعة وتشغيل الكود التالي لتغيير القيمة بسرعة.

Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\PROCMON24\Instances\Process Monitor 24 Instance' -Name 'Altitude' -Value 40400

كلما قمت بتعيين الارتفاع أقل، زاد عدد الأحداث التي يجب إدارتها. لا تقم بتعيين الارتفاع أقل مما تحتاج.

4. رفض حقوق Delete و Set Value لـ Everyone على مفتاح Process Monitor 24 Instance. عند تشغيل Procmon مرة أخرى، سيحاول ضبط قيمة Altitude إلى القيمة الافتراضية. يمكنك تغيير هذه الأذونات عبر أداة regedit أو تشغيل مقتطف PowerShell أدناه.

$regKeyPath = 'HKLM:\System\CurrentControlSet\Services\PROCMON24\Instances\Process Monitor 24 Instance'
$acl = Get-Acl $regKeyPath
$idRef = System.Security.Principal.NTAccount
$regRights = @([System.Security.AccessControl.RegistryRights]::Delete,[System.Security.AccessControl.RegistryRights]::SetValue) 
$inhFlags = [System.Security.AccessControl.InheritanceFlags]::None
$prFlags = [System.Security.AccessControl.PropagationFlags]::None
$acType = [System.Security.AccessControl.AccessControlType]::Deny
$rule = New-Object System.Security.AccessControl.RegistryAccessRule ($idRef, $regRights, $inhFlags, $prFlags, $acType) 
$acl.SetAccessRule($rule) $acl | Set-Acl -Path $regKeyPath

5. قم بتفريغ مراقب تصفية PROCMON24 عن طريق إعادة تشغيل Windows.

6. قم بتشغيل Procmon.

7. افتح وحدة تحكم PowerShell أو موجه الأوامر وقم بتشغيل fltmc filters. يجب أن ترى الآن مراقب تصفية Procmon عند الارتفاع الجديد.

PowerShell console or command prompt

يمكنك الآن التقاط كل ما تحتاجه. إذا كنت ترغب في تقليل مستوى الـ Altitude في برنامج procmon إلى أدنى مستوى ممكن، فاستعد لعاصفة الأحداث!

أمثلة من العالم الحقيقي

يجب أن تكون لديك الآن فهم جيد لما يمكن أن يفعله برنامج procmon وكيف يمكن أن يساعدك في تتبع أحداث Windows. دعنا الآن نطبق هذه المعرفة ونغطي بعض الحالات الاستخدام الشائعة التي قد تحتاج فيها إلى هذا النوع من المعرفة.

العثور على ما يقوم بحذف ملف

إذا كان لديك ملف على جهاز الكمبيوتر الخاص بك بشكل مستمر يتم حذفه بدون سبب معروف وترغب في تتبعه، فيمكن لبرنامج procmon مساعدتك (وهو سهل جدًا).

ربما قمت بفتح برنامج procmon وحاولت تعيين حدث لملف يسمى Delete أو Remove ولكن لسوء حظك، لا يوجد عملية بهذا النوع. بدلاً من ذلك، للعثور على أحداث حذف الملفات، يجب أن تقوم بتصفية الأحداث التي لها Operation من:

  • SetDispositionInformationFile
  • SetDispositionInformationEx

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

Operation is          SetDispositionInformationEx   Include
Operation is          SetDispositionInformationFile Include
Path      begins with C:\MyFolder                   Include

تتبع مشكلات الملفات المقفلة

لقد جربنا جميعًا ذلك؛ تحاول نقل أو حذف ملف ولكنه مقفل من قبل عملية أخرى. في بعض الأحيان، إذا كنت تحاول إلغاء تثبيت تطبيق، على سبيل المثال، فلن تعرف أبدًا ما إذا كانت الخطأ العشوائي الذي تراه له أي علاقة بملف مقفل في المقام الأول!

لمعرفة متى يحاول نظام Windows إزالة أو تعديل ملف مقفل، استخدم مجموعة عوامل التصفية التالية.

Operation is CreateFile        Include
Result    is SHARING VIOLATION Include

تصحيح التطبيقات التي تتطلب صلاحيات المشرف

هل تعمل مع تطبيق يجب أن يعمل وفقًا للوثائق، ولكن لا يعمل؟لقد كنا جميعًا في هذا الموقف. في بعض الأحيان، يتطلب بعض العمليات التي ينشأها التطبيق امتيازات مرتفعة ولكنها لن تخبرك أين أو كيف. يمكنك تشغيل Procmon للمساعدة.

طريقة لتعقب العمليات التي تم رفضها بسبب الصلاحيات المرتفعة المطلوبة هي تصفية النتيجة للحدث.

كلما حدث حدث تم رفضه بسبب عدم وجود الصلاحيات المرتفعة، سوف ترى عادةً نتيجة الوصول مرفوض. باعتبار ذلك، يمكنك بسهولة بناء عامل تصفية بسيط يعرض جميع الأحداث مع نتيجة الوصول مرفوض كما هو موضح أدناه.

Result is ACCESS DENIED Include

من هنا، يمكنك إضافة المزيد من عوامل التصفية مثل مسار التسجيل أو المجلد بالسمة Path أيضًا.

العثور على العملية التي تستخدم عنوان IP

ربما تواجه سلوك شبكة غريب باستخدام Wireshark وتحتاج إلى معرفة العملية التي تبدأ هذا التواصل. قم بتشغيل Procon وأضف مجموعة القواعد التصفية التالية.

تقيد قواعد التصفية هذه الأحداث إلى حركة المرور على الشبكة المبادلة محليًا فقط مع وجهة عنوان IP واحدة.

Operation   is       TCP Send        Include
Operation   is       UDP Send        Include
Path        contains ->  Include
Event Class is       Network         Include

تصحيح بطء بدء التشغيل

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

  1. تمكين تسجيل الإقلاع. يمكنك معرفة كيفية القيام بذلك في القسم التقاط أحداث وقت الإقلاع أعلاه.

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

Enabling thread profiling events on boot

3. بعد إعادة التشغيل، قم بفتح procmon، انقر بزر الماوس الأيمن على أي عمود واختر تحديد الأعمدة.

4. في صندوق اختيار عمود مراقبة العمليات، قم بالتحقق من المدة. بمجرد القيام بذلك، ستتمكن من رؤية مدى الوقت الذي استغرقه كل حدث للتنفيذ.

Process Monitor Column

5. يمكنك الآن إنشاء قاعدة تصفية على المدة لعدد من الثوان تعتقد أنها قد تكون كافية. ستعرض قاعدة التصفية أدناه فقط الأحداث التي استغرقت أكثر من خمس ثوانٍ لاستكمالها.

filter rule on Duration

6. في النهاية، طريقة أخرى مفيدة للتحقيق في هذه الأحداث البطيئة هي باستخدام شجرة العمليات في procmon. شجرة العمليات تظهر العلاقات بين العمليات الأم والفرعية وتحتوي على وقت البداية والنهاية في كل عملية. للعثور عليها، انقر على الأدوات —> شجرة العمليات.

Process Tree

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

Lifetime Column

تصحيح أخطاء تطبيقات App-V

تستخدم العديد من المؤسسات خدمة App-V من Microsoft لتجاويد التطبيقات ونشرها للمستخدمين النهائيين. إذا كنت تستخدم App-V، فهناك وظيفة مفيدة (وغير موثقة) تحتاج إلى معرفتها تسمى /externalcapture.

باستخدام .\procmon.exe /ExternalCapture تعتبر هذه الوظيفة أكثر قدرة على التقاط النشاطات التي تتعلق بسجل التسجيل حول تطبيقات App-V. جرب هذه الوظيفة إذا لم تتمكن من العثور على ما تبحث عنه عند استكشاف الأخطاء في تطبيقات App-V!

يُفترض أن وظيفة الوسن /HookRegistry تخدم نفس الغرض مثل /ExternalCapture ولكنها لم تعد تعمل على أجهزة 64 بت.

خاتمة

ها هي، دليل شامل عن procmon! على الرغم من أنك تعلمت الكثير عن procmon، إلا أنه لا يزال هناك المزيد من الأشياء القيّمة التي يمكنك اكتشافها باستخدام هذه الأداة المفيدة.

إذا كنت ترغب في اقتراح تحديثات أو تغييرات على هذا الدليل النهائي، فيرجى التواصل معي على تويتر وإعلامي بذلك!

Source:
https://adamtheautomator.com/procmon/