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 يحتوي على جميع الملفات المطلوبة.
داخل المجلد ~\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.

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

في اللحظة التي تقوم فيها بتشغيل procmon ، يبدأ في التقاط العديد من أنواع مختلفة من أحداث Windows.
إذا كنت لا ترغب في أن يبدأ procmon تلقائيًا في التقاط الأحداث ، يمكنك تشغيله من سطر الأوامر باستخدام
procmon.exe /NoConnect
.
كما يمكنك أن ترى في اللقطة المذكورة أعلاه تحت عمود العملية ، هناك رموز مختلفة تمثل فئات مختلفة من أحداث Windows. يقوم Procmon بالتقاط الأحداث من خمس فئات مختلفة:
- سجل
- نظام الملفات
- الشبكة
- العمليات
- أحداث البروفايل
يتم تمثيل كل حدث في جميع الفئات في لوحة قائمة واحدة تحتوي على سبعة أعمدة:
- وقت اليوم – الوقت الذي حدث فيه الحدث.
- اسم العملية – اسم العملية التي أثارت الحدث.
- PID – معرف العملية.
- العملية – نوع الحدث مثل إذا فتحت العملية ملفًا ، أو قامت بتغيير قيمة مفتاح السجل ، إلخ.
- المسار – المسار إلى الكائن الذي تفاعل معه الحدث مثل مسار الملف ، أو مسار السجل ، إلخ.
- النتيجة – ستحتوي هذه العمود على قيم عديدة للإشارة إلى نتيجة الحدث. يمكن أن تكون هذه القيمة بسيطة مثل النجاح أو محددة للحدث مثل إعادة التحليل، تجاوز الطاقة، عدم العثور على الاسم، إلخ.
- التفاصيل – يحتوي هذا العمود على جميع التفاصيل الصغيرة حال تحديد حدث تود رؤيته.
إذا كنت تفضل عدم رؤية عمود معين أو تود رؤية الأعمدة الأخرى المتاحة، انقر بزر الماوس الأيمن على رأس أي عمود واختر تحديد الأعمدة. ستظهر لك نافذة حوارية حيث يمكنك تخصيص الأعمدة المرئية.

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

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

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

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

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

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

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

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

على سبيل المثال، سترى بعض القواعد في الأعلى توضح اسم العملية لقيمة العمود، هو لعلاقة العملية، وعمليات ذات صلة بـ “Procmon” لقيمة القيمة في العمود، وإجراء بـ استثناء. بالعبارة البسيطة، تخبر هذه القواعد “Procmon” بعدم عرض (استثناء) عملية باسم “procmon.exe”، على سبيل المثال.
إدارة قواعد تصفية الأحداث
اعتمادًا على حالة الاستخدام الخاصة بك، ستحتاج بلا شك إلى إضافة قواعد خاصة بك. هناك بعض الطرق المختلفة لإضافة القواعد.
استخدام صندوق تصفية “Process Monitor”
في الجزء السابق، رأينا كيف يبدو صندوق “Process Monitor Filter” وعرضنا جميع القواعد. في هذا الصندوق، يمكنك أيضًا إنشاء وتعديل وإزالة القواعد أيضًا.
لنفترض أنك ترغب في رؤية الأوقات فقط عندما يتم استعلام عملية “explorer.exe” على مفتاح سجل معين.
إضافة مرشحات الأحداث
في صندوق “Process Monitor Filter”:
- انقر على قائمة الانسداد الأقصى على اليسار. تعرض هذه القائمة جميع فئات الأحداث المختلفة التي يمكنك تصفيتها. يمكنك أن ترى أدناه أن هناك الكثير!
كل عنصر تراه في هذه القائمة يتطابق مع عمود يعرض في العرض الرئيسي على النحو الموضح أدناه. لأغراض هذه المقالة، اختر اسم العملية.

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

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

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

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

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

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

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

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

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

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

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

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

بمجرد الحفظ ، يمكنك ثم إغلاق بروكمون على نفس الكمبيوتر (أو حتى كمبيوتر آخر) ، وفتح بروكمون والنقر على ملف -> استيراد التكوين حيث سيقوم بروكمون بتطبيق جميع العوامل التصفية والإعدادات الأخرى تمامًا كما تم تصديرها.
يمكنك أيضًا تحميل التكوينات المحفوظة (بما في ذلك العوامل التصفية) عبر سطر الأوامر باستخدام مفتاح /LoadConfig تليه مسار الملف على سبيل المثال ./procmon.exe /LoadConfig C:\ProcmonConfigs\file_deletion.pmc.
تسليط الضوء على الأحداث وتحويلها إلى عوامل تصفية
ربما تحتاج إلى جعل بعض الأحداث أسهل في الرؤية ولكنك لا ترغب بالضرورة في إزالة أي أحداث من العرض باستخدام عامل تصفية. في هذه الحالة ، يمكنك استخدام التسليط. يتيح لك التسليط بناء مجموعات من القواعد تشبه العوامل التصفية ولكن بدلاً من إخفاء الأحداث ، يتم تغيير لون خلفية الأحداث.
ربما ترى عملية في قائمة الأحداث تسمى ctfmon.exe وترغب في تسليط الضوء عليها في القائمة. يمكنك إنشاء قاعدة للتسليط عن طريق:
- نقر بزر الماوس الأيمن على الحدث الذي ترغب في تسليط الضوء على سمة من سماته.
- قم بالنقر على Highlight واختيار سمة لتسليط الضوء عليها. في هذا المثال، يمكنك اختيار اسم العملية. سترى لون الخلفية يتغير إلى لون أزرق فاتح.
- بمجرد إنشاء قاعدة التسليط، يمكنك الانتقال إلى مربع تسليط مراقب العمليات بالنقر على تصفية —> تسليط. سترى القاعدة المنشأة هناك.
- من مربع تسليط مراقب العمليات، يمكنك إضافة وإزالة القواعد تمامًا كما تفعل مع التصفية.
- إذا قمت بإنشاء بعض قواعد التسليط وترغب في تحويلها إلى تصفية، يمكنك فعل ذلك بالنقر على زر إنشاء تصفية في مربع تسليط مراقب العمليات.
يمكنك رؤية عرض مرئي لهذه الخطوات أدناه.

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

تعتمد كمية الأحداث التي يمكن لـ procmon تخزينها على حجم ملف الصفحة الذي قمت بتعريفه (وحدة الالتزام في النظام).
يمكن لـ Procmon التقاط ما يصل إلى 199 مليون حدث.
حفظ الأحداث في ملف سجل
ربما تحتاج إلى حفظ هذه الأحداث للتحقيق فيها لاحقًا أو ربما تحميلها على جهاز كمبيوتر آخر؟ في هذه الحالة ، تحتاج إلى حفظ الأحداث في ملف سجل (PML).
طريقة واحدة لحفظ هذه الأحداث المفيدة هي النقر على ملف – > حفظ . يعرض هذا الإجراء مربع الحوار حفظ في ملف أدناه حيث يتم تقديم بعض الخيارات.
الأحداث التي سيتم حفظها:
- جميع الأحداث – هذا الخيار هو بالضبط كما يبدو. سيتم حفظ جميع الأحداث التي يمتلكها برنامج Procmon بغض النظر عما إذا كنت قد قمت بتطبيق عامل تصفية الأحداث على الملف أم لا.
- الأحداث المعروضة باستخدام عامل التصفية الحالي – هذا الخيار لا يحفظ جميع الأحداث الملتقطة ولكن فقط تلك التي اجتازت عوامل التصفية النشطة حاليًا.
- الأحداث المميزة – يقوم هذا الخيار فقط بتصدير الأحداث التي تم تمييزها حاليًا إلى السجل.
التنسيق:
- تنسيق المراقب العملية الأصلي (PML) – التنسيق الافتراضي لحفظ جميع الأحداث (PML).
- قيم مفصولة بفواصل (CSV) – حفظ جميع الأحداث في ملف CSV.
- لغة ترميز الوسم القابلة للتوسيع (XML) – حفظ جميع الأحداث في ملف XML. يتيح لك هذا التنسيق أيضًا القدرة على حفظ تتبع المسارات (المزيد في وقت لاحق) وسيقوم بحل رموز الكومة.

انقر على موافق وسيقوم برنامج Procmon بتسجيل جميع الأحداث التي تم التقاطها حاليًا والتي تتطابق مع معاييرك في الملف الذي تختاره.
فتح سجلات الأحداث المحفوظة.
\begin{Arabic}
لقد قمت بتسجيل الآلاف من الأحداث على جهاز كمبيوتر واحد، وقمت بحفظ جلسة التقاط هذه في ملف PML وقمت بنسخها إلى جهاز كمبيوتر آخر للتحقيق. الآن ماذا؟ عليك أن تقوم بفتحها.
يمكنك فتح أي ملف PML بغض النظر عما إذا كنت قد سجلته على جهاز الكمبيوتر المحلي أم لا، عن طريق الانتقال ببساطة إلى File —> Open واختيار ملف PML.
يمكنك فتح السجلات من خلال سطر الأوامر باستخدام مفتاح /OpenLog مثل procmon.exe /OpenLog C:\MyLogFile.pml.
تسجيل الأحداث تلقائيًا
في القسم السابق، تعلمت كيفية تصدير الأحداث إلى سجل بعد تسجيلها. ولكن ماذا لو كنت تعلم مسبقًا أنك تريد الأحداث في ملف PML أو XML أو CSV؟ يمكنك أن تجعل procmon يلتقط الأحداث تلقائيًا في أحد تلك تنسيقات ملفات السجل.
أيضًا، تخزين الأحداث في ملف الصفحة يكون مناسبًا إذا كنت في جلسة تحليل مشكلة عرضية بسيطة قد تستمر لمدة تقل عن ساعة. لكن هذه الطريقة لها بعض العيوب.
- عند إغلاق procmon، تختفي الأحداث.
- كما ذُكر سابقًا، يمكن أن يزيد حجم ملف الصفحة بشكل غير مضبوط.
عند استخدام الذاكرة الظاهرية كمكان تخزين، يمكنك اكتشاف كم مساحة متبقية لـ procmon للاستخدام عن طريق النقر على File —> Backing Files.
ماذا تفعل؟ قم بتغيير مكان التخزين.
تخزين الأحداث على القرص
يمكنك تغيير مكان تخزين الأحداث من ملف الصفحة إلى القرص عن طريق:
- إيقاف التقاط إذا كنت تعمل حاليًا على ذلك.
\end{Arabic}
2. انقر فوق ملف —> ملفات النسخ الاحتياطي. سترى بعد ذلك ملخصًا للأحداث المخزنة والحجم بالإضافة إلى خيار تغيير موقع التخزين.

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:
تحويل سجل capture.pml إلى capture.csv:
تذكر خيارات تتبع الكومة وحل الرمز التكراري في مربع الحوار حفظ في ملف أعلاه؟ يمكنك تمكين هذه الخيارات أيضًا باستخدام /SaveAs1
و /SaveAs2
.
يمكنك حفظ سجلات الكومة ومعلومات الرمز فقط في تنسيق XML.
تحويل سجل capture.pml إلى capture.xml بما في ذلك معلومات الكومة:
تحويل سجل capture.pml إلى capture.xml بما في ذلك معلومات الكومة مع الرموز:
اعلم أن إضافة سجلات الكومة والرموز ستزيد بشكل كبير من وقت التحويل وسوف ترى بالتأكيد مؤشر تقدم كما هو موضح أدناه.

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

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

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

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

لا تنسى أن تفتح procmon مرة أخرى بعد إعادة التشغيل! سيبدأ Procmon في التقاط الأحداث فور تشغيل ويندوز في C:\Windows\procmon.pmb. وسيستمر في القيام بذلك حتى تقوم بإيقافه عن طريق فتح procmon مرة أخرى.
تشغيل Procmon عن بُعد
على الرغم من أن procmon يعمل فقط محليًا على جهاز ويندوز، يمكنك استدعاء procmon للتشغيل عن بُعد باستخدام psexec أو أمر Invoke-Command
في PowerShell.
ذات الصلة: دليل PsExec النهائي، أفضل طريقة لتشغيل الشفرة عن بُعد باستخدام Invoke-Command
لتشغيل procmon باستخدام أمر Invoke-Command
في PowerShell، اتبع الخطوات التالية:
- قم بتمكين بالقوة التنفيذ عن بُعد لـ PowerShell على الجهاز البعيد إذا لم يتم ذلك بالفعل.
2. انسخ مجلد procmon إلى الكمبيوتر البعيد عبر وحدة التحكم في PowerShell.
3. قم بتنفيذ procmon عبر PowerShell مع التأكد من تخطي تأكيد EULA وإجبار procmon على تخزين الأحداث في ملف دعم بدلاً من الذاكرة الظاهرية وعدم الطلب لتصفية عند البدء.
4. في هذه النقطة، بدأ procmon بالتقاط. أعد إنتاج المشكلة التي تحاول التقاطها.
5. قم بإيقاف procmon على الكمبيوتر البعيد باستخدام التبديل /Terminate.
6. انتظر إيقاف procmon. كاختصار، يمكنك التحقق بشكل دوري من عملية procmon وإعادة التحكم إلى وحدة التحكم في PowerShell عندما يكون الأمر مكتملًا.
7. انسخ ملف السجل البعيد إلى الكمبيوتر المحلي
الآن، لديك ملف سجل الذي تم تنفيذه عن بُعد على جهاز الكمبيوتر المحلي الخاص بك!
إذا كنت ترغب في نص PowerShell مناسب لإدارة هذا التقاط، يمكنك العثور عليه أدناه.
إعداد تقاطات 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، فإنه دائمًا فكرة جيدة أن تختار إسقاط الأحداث المُصفَّاة من قائمة التصفية كما هو موضح أدناه.

بمجرد اختيارك لعنصر إسقاط الأحداث المُصفَّاة، يبدأ Procmon فورًا في إسقاط جميع الأحداث المُصفَّاة. لا يعرض Procmon هذه الأحداث على الشاشة ولا يحفظها في الذاكرة الظاهرية أو ملف تسجيل. إسقاط الأحداث غير المرغوب فيها تمامًا يساعد في الحفاظ على الموارد.
مواضيع متقدمة
هل ما زلت تشتهي المزيد من المعلومات حول Procmon وكيفية استخدامه؟ دعونا ننتقل إلى بعض المواضيع المتقدمة! هذه المواضيع هي تلك التي قد لا تحتاج إليها كثيرًا. تتعلق هذه المواضيع بمزيد من ميزات Procmon تحت الغطاء، ولكن يمكن أن تكون هذه المعلومات مفيدة عند استكشاف الأخطاء في Procmon.
مراقبو التصفية
لالتقاط الأحداث، يقوم Procmon بتسجيل واستخدام مراقب التصفية من خلال مدير التصفية في Windows (FltDrv). يتم تثبيت مراقب التصفية هذا الذي يُسمى PROCMON24 عند بدء عملية الالتقاط. في بعض الأحيان، يمكن أن يتعارض هذا المراقب مع تطبيقات أخرى.
بعد بدء Procmon، افتح نافذة PowerShell المرفوعة أو سطر الأوامر وقم بتشغيل fltmc filters
. تقوم أداة fltmc
بسرد وتحميل وتفريغ مراقبي التصفية. عند تشغيل هذا الأمر، سترى مراقب التصفية PROCMON24 محمّلًا كما هو موضح أدناه.
لاحظ أن الارتفاع لـ PROCMON24 هو 385200 بشكل افتراضي مع وجود عدد أقل من المرشحات الأخرى. يمثل ارتفاع برنامج التشغيل المرشح المستوى الذي يمكن لبرنامج التشغيل المرشح “رؤية” الأحداث به. على سبيل المثال ، إذا حدثت أحداث على مستوى wcifs أو luafv أو Wof ، فلن يكون برنامج التشغيل المرشح قادرًا على رؤيتها. سنتحدث فيما بعد عن كيفية تغيير هذا.

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

إذا كنت بحاجة إلى إلغاء تحميل برنامج تشغيل المرشح PROCMON24 ، فإن إعادة التشغيل هي الطريقة الوحيدة للقيام بذلك ، للأسف.
تتبعات الكومة
أحيانًا ، الأحداث البسيطة مثل قراءة مفتاح التسجيل ، أو فتح ملف ، أو استدعاء عنوان الشبكة غير كافية. تحتاج إلى الحفر أعمق ورؤية تاريخ المكالمات الفعلية لوظائف واجهة برمجة التطبيقات في نظام التشغيل ويندوز التي يقوم العملية بإجرائها. تحتاج إلى النظر في تتبع الكود التراكمي.
A stack trace is the history of various functions called during various function calls when a process is running.
مع قائمة الأحداث التي تظهر في بروكمون ، انقر مرتين على أي حدث وانقر على علامة التبويب التراكمي كما هو موضح أدناه. علامة التبويب التراكمي تمثل المكالمات الوظيفية التي قامت بها العملية الفردية في الوقت الذي حدث فيه الحدث.

موضوع تتبع الكود التراكمي يمكن أن يطول لفترة طويلة. إذا كنت ترغب في معرفة المزيد عن فهم تتبع مكدس العمليات ، تحقق من المقالة الحصول على تتبع كود تراكمي أفضل في بروكس مونيتور
تغيير الارتفاع لبروكمون (التقاط الأحداث على مستوى أدنى)
كما تم تغطيته سابقًا ، يستخدم بروكمون برنامج تصفية لالتقاط الأحداث. على الرغم من أنه قد يبدو أن بروكمون يلتقط كل حدث ويندوز (هناك الكثير من الأحداث التي تظهر في نافذة بروكمون!) ، إلا أنه لا يفعل ذلك. بروكمون يلتقط فقط الأحداث التي يعرفها برنامج تصفيته أو الارتفاع الذي يتمتع به برنامج تصفيته.
على سبيل المثال ، إذا كنت بحاجة إلى تسجيل نشاط مضاد الفيروسات ، وتخزين البيانات على مستوى منخفض وغيرها من الأحداث الموجودة على مستوى أجهزة الأجهزة ذات المستوى الأدنى ، يجب عليك تغيير ارتفاع برنامج تصفية بروكس مونيتور24 ليكون أدنى من الآخرين.
للقيام بذلك:
- تأكد من إغلاق Procmon.
2. البحث عن أدنى ارتفاع لمراقبي تصفية المحمّلين حاليًا باستخدام أمر fltmc
.
3. قم بتغيير قيمة التسجيل Altitude تحت المفتاح التسجيلي HKLM\System\CurrentControlSet\Services\PROCMON24\Instances\Process Monitor 24 Instance إلى 100 أقل من قيمة الارتفاع الأدنى (لرؤية جميع الأحداث).
قد يتغير مكان المفتاح التسجيلي اعتمادًا على إصدار Procmon الذي قمت بتثبيته. يستخدم هذا البرنامج التعليمي Procmon 2.4.
يمكنك فتح جلسة PowerShell مرتفعة وتشغيل الكود التالي لتغيير القيمة بسرعة.
كلما قمت بتعيين الارتفاع أقل، زاد عدد الأحداث التي يجب إدارتها. لا تقم بتعيين الارتفاع أقل مما تحتاج.
4. رفض حقوق Delete و Set Value لـ Everyone على مفتاح Process Monitor 24 Instance. عند تشغيل Procmon مرة أخرى، سيحاول ضبط قيمة Altitude
إلى القيمة الافتراضية. يمكنك تغيير هذه الأذونات عبر أداة regedit أو تشغيل مقتطف PowerShell أدناه.
5. قم بتفريغ مراقب تصفية PROCMON24 عن طريق إعادة تشغيل Windows.
6. قم بتشغيل Procmon.
7. افتح وحدة تحكم PowerShell أو موجه الأوامر وقم بتشغيل fltmc filters
. يجب أن ترى الآن مراقب تصفية Procmon عند الارتفاع الجديد.

يمكنك الآن التقاط كل ما تحتاجه. إذا كنت ترغب في تقليل مستوى الـ Altitude
في برنامج procmon إلى أدنى مستوى ممكن، فاستعد لعاصفة الأحداث!
أمثلة من العالم الحقيقي
يجب أن تكون لديك الآن فهم جيد لما يمكن أن يفعله برنامج procmon وكيف يمكن أن يساعدك في تتبع أحداث Windows. دعنا الآن نطبق هذه المعرفة ونغطي بعض الحالات الاستخدام الشائعة التي قد تحتاج فيها إلى هذا النوع من المعرفة.
العثور على ما يقوم بحذف ملف
إذا كان لديك ملف على جهاز الكمبيوتر الخاص بك بشكل مستمر يتم حذفه بدون سبب معروف وترغب في تتبعه، فيمكن لبرنامج procmon مساعدتك (وهو سهل جدًا).
ربما قمت بفتح برنامج procmon وحاولت تعيين حدث لملف يسمى Delete أو Remove ولكن لسوء حظك، لا يوجد عملية بهذا النوع. بدلاً من ذلك، للعثور على أحداث حذف الملفات، يجب أن تقوم بتصفية الأحداث التي لها Operation
من:
SetDispositionInformationFile
SetDispositionInformationEx
إذا كانت نظامك يقوم بحذف العديد من الملفات، سترغب أيضًا في تحديد نطاق أحداث حذف الملفات بواسطة اسم الملف أو المسار باستخدام عامل التصفية Path
أيضًا.
تتبع مشكلات الملفات المقفلة
لقد جربنا جميعًا ذلك؛ تحاول نقل أو حذف ملف ولكنه مقفل من قبل عملية أخرى. في بعض الأحيان، إذا كنت تحاول إلغاء تثبيت تطبيق، على سبيل المثال، فلن تعرف أبدًا ما إذا كانت الخطأ العشوائي الذي تراه له أي علاقة بملف مقفل في المقام الأول!
لمعرفة متى يحاول نظام Windows إزالة أو تعديل ملف مقفل، استخدم مجموعة عوامل التصفية التالية.
تصحيح التطبيقات التي تتطلب صلاحيات المشرف
هل تعمل مع تطبيق يجب أن يعمل وفقًا للوثائق، ولكن لا يعمل؟لقد كنا جميعًا في هذا الموقف. في بعض الأحيان، يتطلب بعض العمليات التي ينشأها التطبيق امتيازات مرتفعة ولكنها لن تخبرك أين أو كيف. يمكنك تشغيل Procmon للمساعدة.
طريقة لتعقب العمليات التي تم رفضها بسبب الصلاحيات المرتفعة المطلوبة هي تصفية النتيجة للحدث.
كلما حدث حدث تم رفضه بسبب عدم وجود الصلاحيات المرتفعة، سوف ترى عادةً نتيجة الوصول مرفوض
. باعتبار ذلك، يمكنك بسهولة بناء عامل تصفية بسيط يعرض جميع الأحداث مع نتيجة الوصول مرفوض
كما هو موضح أدناه.
من هنا، يمكنك إضافة المزيد من عوامل التصفية مثل مسار التسجيل أو المجلد بالسمة Path أيضًا.
العثور على العملية التي تستخدم عنوان IP
ربما تواجه سلوك شبكة غريب باستخدام Wireshark وتحتاج إلى معرفة العملية التي تبدأ هذا التواصل. قم بتشغيل Procon وأضف مجموعة القواعد التصفية التالية.
تقيد قواعد التصفية هذه الأحداث إلى حركة المرور على الشبكة المبادلة محليًا فقط مع وجهة عنوان IP واحدة.
تصحيح بطء بدء التشغيل
في بعض الأحيان، يكون بدء تشغيل نظام التشغيل بطيئًا. يمكن أن يكون هذا البطء ناتجًا عن العديد من مكونات نظام التشغيل وتطبيقاته المثبتة وما إلى ذلك. باستخدام إمكانية تسجيل البدء في Procmon، يمكنك تتبع المشكلة وإصلاحها.
- تمكين تسجيل الإقلاع. يمكنك معرفة كيفية القيام بذلك في القسم التقاط أحداث وقت الإقلاع أعلاه.
2. في صندوق الحوار تمكين تسجيل الإقلاع، تأكد من تحديد مربع الاختيار تكوين أحداث تحليل التوجيه. يجب أن يكون زر الراديو كل ثانية ملائمًا.

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

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

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

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

تصحيح أخطاء تطبيقات App-V
تستخدم العديد من المؤسسات خدمة App-V من Microsoft لتجاويد التطبيقات ونشرها للمستخدمين النهائيين. إذا كنت تستخدم App-V، فهناك وظيفة مفيدة (وغير موثقة) تحتاج إلى معرفتها تسمى /externalcapture
.
باستخدام .\procmon.exe /ExternalCapture
تعتبر هذه الوظيفة أكثر قدرة على التقاط النشاطات التي تتعلق بسجل التسجيل حول تطبيقات App-V. جرب هذه الوظيفة إذا لم تتمكن من العثور على ما تبحث عنه عند استكشاف الأخطاء في تطبيقات App-V!
يُفترض أن وظيفة الوسن /HookRegistry تخدم نفس الغرض مثل /ExternalCapture ولكنها لم تعد تعمل على أجهزة 64 بت.
خاتمة
ها هي، دليل شامل عن procmon! على الرغم من أنك تعلمت الكثير عن procmon، إلا أنه لا يزال هناك المزيد من الأشياء القيّمة التي يمكنك اكتشافها باستخدام هذه الأداة المفيدة.
إذا كنت ترغب في اقتراح تحديثات أو تغييرات على هذا الدليل النهائي، فيرجى التواصل معي على تويتر وإعلامي بذلك!