شرح Process Explorer للمختبر: اقرأ العملية ومسارها وملفاتها قبل ما تحكم عليها
تفتح قائمة العمليات فتشوف اسمًا مألوفًا مرتين، أو برنامجًا صغيرًا يستهلك موارد أكثر مما توقعت. هل هذا خلل؟ هل البرنامج تابع للتطبيق الذي تختبره؟ أم أن الاسم وحده يخدعك؟ Process Explorer يساعدك تجمع سياقًا أفضل، لكن ما يصدر حكمًا نهائيًا على العملية بدلًا عنك.
بنستخدم مثالًا على جهاز ويندوز تدريبي نملكه: تطبيق معروف وملف وهمي، ثم نقرأ الهوية والمسار والعلاقة بالعمليات الأخرى والموارد المفتوحة. المقصد أن تتعلم الملاحظة والتفسير، بدون إنهاء عمليات النظام أو أخذ نسخ من ذاكرة برامج تحمل بيانات حساسة.
البرنامج على القرص والعملية الشغالة مو نفس الشيء
الملف التنفيذي موجود على القرص، والعملية تمثل نسخة تعمل منه في وقت معين. تستطيع تشغيل البرنامج نفسه أكثر من مرة، وقد ينشئ التطبيق عدة عمليات لتوزيع مهامه. لذلك تكرار الاسم ليس دليلًا على وجود نسخة خبيثة، كما أن اسمًا واحدًا لا يثبت أن التطبيق كله يعمل في عملية واحدة.
ابدأ بسؤال بسيط: أي نسخة من البرنامج تخص التجربة التي أجريها الآن؟ اسم العملية يضيق البحث، لكنك تحتاج معرف العملية PID ووقت المشاهدة والمسار والسياق. إذا فتح عدة مستخدمين البرنامج نفسه، فالاسم المتكرر قد يعكس جلسات طبيعية بدل حادثة تحتاج استجابة أمنية.
تخيّل محررًا تدريبيًا فتحت فيه report.txt، ثم فتحت نسخة ثانية بدون ذلك الملف. قد تحمل العمليتان الاسم نفسه، بينما الموارد المفتوحة مختلفة. البحث عن الاسم وحده لا يخبرك أي نسخة ترتبط بالملف. هنا تحتاج تربط العملية بالمورد الذي تحاول تفسيره.
وفي تقريرك، لا تكتب أن الملف التنفيذي موجود إذًا العملية كانت تعمل وقت الحدث. وجود الملف دليل مختلف عن التشغيل. وبالمثل، مشاهدتك عملية الآن لا تقول إنها كانت موجودة أمس. احتفظ بزمن الملاحظة حتى لا تتحول قراءة للحالة الحالية إلى ادعاء عن تاريخ النظام.
جهّز الأداة من مصدرها وابدأ بعملية تملكها
Process Explorer أداة Sysinternals من مايكروسوفت. احصل عليها من المصدر الرسمي أو حزمة الأدوات المعتمدة لدى جهة التدريب، وراجع متطلبات الإصدار الذي تنزله. دعم أنظمة ويندوز القديمة قد يختلف مع تحديثات الحزمة؛ لا تعتمد على شرح عمره سنوات لتقرر أن أحدث ملف يعمل على كل لاب.
استخدم تطبيقًا معروفًا داخل جهازك التدريبي، ولا تبدأ بعملية نظام حساسة لمجرد أن اسمها يظهر في دروس أخرى. القراءة على عملية تخصك تعطيك تمرينًا واضحًا دون الحاجة إلى توسيع صلاحياتك. إذا بعض التفاصيل غير متاحة، سجّل حدود الوصول بدل تعطيل حماية النظام أو محاولة تجاوزها.
راجع المساعدة الموجودة مع الإصدار. أسماء القوائم ومواقع الحقول قد تتغير أو تختلف طريقة عرضها، بينما الأسئلة التي تسألها ثابتة: من صاحب العملية؟ أين ملفها؟ ما الموارد التي تعرضها القراءة؟ إن كان هدفك فهم أداة، فالتوثيق المحلي جزء من التدريب وليس خطوة اختيارية بعد فشل المثال.
كذلك سجّل بداية التجربة: التطبيق الذي فتحته، واسم الملف الوهمي، ووقت التشغيل. لا تحتاج بيانات حقيقية حتى ترى علاقة ملف بعملية. بناء تجربة نظيفة يوفر عليك تفسير عشرات التطبيقات الخلفية ويقلل احتمال أن تلتقط أسرارًا أو مسارات حسابات عمل ضمن صورة تريد مشاركتها.
اقرأ المسار والهوية مع الاسم
اسم يشبه برنامجًا معروفًا لا يثبت أن الملف هو البرنامج المتوقع. وفي المقابل، مسار مختلف ليس حكمًا بأن الملف خبيث؛ بعض البرامج لها تثبيت لكل مستخدم أو نسخ محمولة أو بيئات تطوير. المطلوب أن تقارن المسار بالتثبيت المعتمد والغرض من التطبيق، لا أن تستخدم قائمة مسارات محفوظة بدل التحقيق.
اجمع في ملاحظتك اسم العملية وPID ومسار الملف والحساب الذي تظهر أنها تعمل تحته. لو كان الاسم مكررًا، هذه القيم تساعدك تفرق النسخ. لا تنسخ اسم مستخدم من عمود دون الانتباه إلى الجهاز أو الدومين الذي يقصده. الحساب المحلي والحساب المؤسسي قد يحملان أسماء متشابهة لكن حقوقهما مختلفة.
إذا كان التطبيق يفترض أن يعمل تحت حساب خدمة محدود، فالهوية المقروءة تستحق مقارنة مع وثيقة تشغيله. أما ظهور حساب أعلى صلاحية وحده فلا يحدد الأثر الأمني؛ تحتاج تعرف لماذا يستخدمه التطبيق وهل هذا متوافق مع الحاجة. اكتب عدم التطابق حين يثبته مالك النظام، لا التخمين من كلمة admin.
وسطر الأوامر قد يوضح ملف إعداد أو وظيفة تشغيل، لكنه قد يحتوي تفاصيل حساسة. لا تنشر لقطة عامة قبل مراجعة محتواها، ولا تنقل أسرارًا إلى تقرير تدريبي. التوثيق الجيد يحتفظ بالدليل المطلوب ويخفي القيم غير اللازمة عن النسخة العامة، مع بقاء الأصل في مكان المهمة المعتمد.
شجرة العمليات تفيدك كسياق، مو كسجل تاريخ كامل
عرض الشجرة يساعدك ترى العلاقة المعروضة بين العمليات، وتسأل لماذا التطبيق فتح عملية أخرى. هذا مفيد مع تطبيقات تطلق مساعدين أو أدوات تحديث أو أجزاء متعددة. لكن لا تعتبر المشاهدة الحالية بديلًا عن سجل إنشاء العمليات إذا السؤال متعلقًا بحدث سبق فتح الأداة.
خلنا نفترض أنك شغلت تطبيق التدريب بالطريقة المعتادة ثم ظهر مساعد له. سجّل ما شاهدته والوقت، وراجع وظيفة المساعد في توثيق التطبيق. وجود برنامج فرعي باسم غير مألوف يستحق سؤالًا، لكنه لا يثبت استغلالًا. بعض التطبيقات تعزل العرض أو الشبكة أو التحديث في عمليات مستقلة.
وقد تنتهي عملية بسرعة بينما تبقى أخرى أو يتغير العرض خلال قراءتك. لهذا لقطة واحدة لها حدود زمنية. إذا تحتاج معرفة سلسلة تشغيل دقيقة، استعن بآلية تسجيل معتمدة ومعدة مسبقًا في اللاب، بدل إعادة كتابة تاريخ مفترض من شجرة رأيتها بعد انتهاء التجربة.
ومن جهة التقرير، فرق بين «ظهر تحت العملية في العرض وقت القراءة» و«أثبت سجل الإنشاء أن العملية بدأت بواسطة هذه الجهة». الجملتان تستندان إلى نوعين من الأدلة. اختيار الصياغة الدقيقة يحميك من استنتاج علاقة تاريخية لم تثبتها، ويعطي فريق المراجعة فرصة يطلب الدليل المناسب إذا كانت العلاقة مهمة.
PID يحدد النسخة الحالية، لا هوية أبدية للبرنامج
معرف العملية مفيد جدًا للتمييز بين نسخ البرنامج. لكنه يرتبط بعمر العملية، وليس اسمًا ثابتًا لكل تشغيل. إذا أغلق المستخدم التطبيق وفتحه مجددًا، قد تتغير القيمة. وقد يُستخدم رقم سابق بعد انتهاء العملية في سياق لاحق، لذلك اكتب الوقت مع PID ولا تبحث عن الرقم بعد ساعات كأنه يشير إلى الكائن نفسه دائمًا.
إذا عندك PowerShell على الجهاز التدريبي، قراءة بسيطة لعمليات التطبيق المعروف قد تساعد المقارنة. مثلًا إذا لديك notepad يعمل ضمن التجربة:
Get-Process -Name notepad | Select-Object Id,ProcessName,StartTime
عدم ظهور notepad قد يعني أنه غير موجود بالاسم المتوقع في تلك اللحظة، وليس أن كل محررات النص غير شغالة. تأكد من الاسم في قائمتك وتوقيت القراءة. ولا تستخدم المثال كأمر لازم ينجح على جهاز لم تشغل فيه هذا التطبيق أصلًا.
هذه القراءة لا توقف العملية ولا تغيرها. إذا اختلفت القائمة بين أداتين، راجع هل العملية انتهت أو بدأت بين القياسين، وهل بعض التفاصيل مقيدة بالوصول. اختلاف التوقيت تفسير منطقي قبل أن تفترض أن أداة تخفي شيئًا أو الثانية تكشف حالة سرية.
وعند توثيق مورد مفتوح، اربطه بالعملية في وقت الملاحظة. عبارة «الملف كان مرتبطًا بـPID المحدد عند الساعة كذا» قابلة للمراجعة، بينما رقم بلا زمن أو اسم ومسار ناقص يترك القارئ لا يعرف أي تشغيل تقصد.
Handles: وش معنى أن العملية عندها مورد مفتوح؟
في ويندوز، Handle وسيلة تتعامل بها العملية مع مورد يمثل كائنًا، مثل ملف أو جزء آخر من النظام. ليس كل Handle ملفًا، وليس الرقم المعروض مسارًا يمكنك نسخه إلى مستكشف الملفات. نوع المورد واسمه وسياق العملية يحددون كيف تفسر العلاقة التي تراها.
Process Explorer يعرض في أحد أوضاع الجزء السفلي المقابض المفتوحة للعملية المختارة. هنا يفيد السؤال «من لديه علاقة حالية بهذا الملف؟». إذا كان تطبيق التدريب يبقي الملف مفتوحًا، قد يظهر ذلك في القراءة أو البحث، لكن سلوك كل تطبيق يختلف. بعض البرامج تقرأ الملف ثم تغلقه حتى لو بقي محتواه في النافذة.
لذلك عدم ظهور Handle لملف لا يعني أن التطبيق لم يقرأه إطلاقًا، كما أن ظهوره لا يثبت أنه كتب فيه. هذه قراءة للحالة، وليست سجلًا لكل عمليات القراءة والكتابة. إذا هدفك إثبات كتابة بعينها، تحتاج دليل حدث أو تجربة مخصصة، لا مجرد رابط مورد بعملية.
ولا تستخدم خيار إغلاق Handle كطريقة سهلة لحل قفل ملف داخل اختبار. الإغلاق القسري قد يربك التطبيق أو يفسد حالته. اجمع الدليل ثم اتبع طريقة إغلاق التطبيق الطبيعية أو إجراء مالكه إذا كانت المهمة تسمح. الأداة تعطيك رؤية، وما تحتاج تحول كل وسيلة تحكم متاحة فيها إلى خطوة تدريب.
DLLs: اسم المكتبة ومسارها وإصدارها تحتاج قراءة معًا
المكتبة الديناميكية DLL توفر وظائف أو بيانات يستخدمها البرنامج، وتحميل مكتبات متعددة سلوك طبيعي في ويندوز. Process Explorer يستطيع عرض المكتبات والملفات المعينة في الذاكرة ضمن الوضع المناسب. الفائدة هنا أن ترى أي ملف استخدمته النسخة الحالية، بدل افتراض أنها تحمل المكتبة التي وجدتها في مجلد آخر.
تخيل لابًا فيه نسختان معتمدتان من تطبيق، وكل نسخة تستخدم مكتبة مختلفة الإصدار. إذا التطبيق يشتكي من تعارض، فاسم DLL وحده ما يكفي؛ المسار والإصدار والعلاقة بالتشغيل أهم. مقارنة دقيقة قد تكشف أن برنامج التدريب يستخدم نسخة غير التي كان المسؤول يتوقعها.
لكن وجود مكتبة في مجلد قابل للكتابة ما يثبت وحده مسارًا ناجحًا لرفع الصلاحيات أو طريقة تحميل قابلة للاستغلال. تحتاج تعرف الحقوق والسياق وكيف جرى التحميل والظروف المطلوبة. لا تضع مكتبة تجريبية بديلة في جهاز عمل لإثبات فرضية دون تصريح وخطة عزل واضحة.
وفي التقرير، اكتب ما أثبتته: اسم ومسار مكتبة ظهرت محملة في عملية معينة وقت القراءة. ثم فرّق بين عدم تطابق إصدار، وبين إعداد صلاحيات يحتاج مراجعة، وبين أثر أمني مثبت. هذه مشاكل قد ترتبط لكنها ليست شيئًا واحدًا، وتوصية تصحيح الإصدار تختلف عن توصية تعديل حقوق المجلد.
التوقيع واستهلاك الموارد مؤشرات تحتاج سياقًا
التحقق من توقيع ملف معروف يساعدك تقارن هوية ناشره وسلامة التوقيع وفق نتيجة التحقق. لكنه لا يضمن أن كل استخدام للملف آمن أو أن إعداد التطبيق صحيح. ملف مشروع قد يشغل وظيفة غير مناسبة، وملف داخلي غير موقع قد يكون جزءًا معتمدًا من بيئة التطوير. لا تجعل حالة واحدة حكمًا شاملًا.
إذا رأيت استهلاك CPU مرتفعًا، اسأل عن المهمة التي ينفذها البرنامج وقت القياس. تحديث أو ضغط ملفات أو بناء مشروع قد يرفع الاستهلاك بصورة طبيعية. راقب السياق والمدة وقارن المتوقع قبل وصفه بأنه نشاط خبيث. لقطة عند لحظة الذروة لا تقول إن العملية تستهلك النسبة نفسها طوال اليوم.
وبالنسبة للذاكرة، اعرف أي مقياس تقرؤه بدل استخدام كلمة «RAM» لكل الأعمدة. المقاييس التي تخص ذاكرة العملية لا تمثل دائمًا الشيء نفسه. إذا كان هدفك تشخيصًا دقيقًا للأداء، راجع معنى العمود ووحدته وتغيره مع الزمن، ولا تنقل رقمًا بلا تسمية إلى التقرير.
وتجنب إرسال ملفات أو تفاصيل عمليات إلى خدمات خارجية للتحقق دون سياسة الجهة. وجود تكامل أو بحث في أداة لا يمنح تصريحًا بنقل بيانات جهاز العميل. في تمرين محلي، تستطيع تتعلم قراءة المسار والهوية والتوقيع من الأدلة المتاحة، ثم تناقش حدود أي خدمة تحليل إضافية قبل استخدامها.
Process Explorer أو Process Monitor: اختر حسب السؤال
إذا سؤالك عن العمليات الحالية والمكتبات أو الموارد المفتوحة، فـProcess Explorer مناسب كبداية. وإذا سؤالك عن أحداث تحدث خلال فترة، مثل محاولات ملف أو Registry أو نشاط عملية، فـProcess Monitor يقدم تسجيلًا من نوع مختلف. تشابه الأسماء ما يعني أن المخرجين بديلان كاملان لبعضهما.
خلنا نفترض تطبيقًا يقرأ إعدادًا ثم يغلق الملف. قد لا ترى علاقة الملف في لقطة حالية بعد انتهاء القراءة. هذا لا ينفي أن الحدث حصل. تحتاج التقاطًا محدودًا ومصرحًا يراقب الفترة المناسبة إن كان هدفك معرفة الحدث، مع تصفية على تطبيق التدريب وتقليل البيانات غير اللازمة.
لا تشغل تسجيلًا واسعًا طوال يوم عمل لتجاوب سؤالًا عن محاولة قصيرة إذا ما كانت خطة المهمة تتطلبه. سجلات النشاط قد تحتوي مسارات وأسماء حسابات وتفاصيل تشغيل، وقد تنمو بسرعة. حدد البداية والنهاية والهدف ومكان حفظ الدليل مع مسؤول البيئة.
اختيار الأداة الصحيح يبدأ بصياغة السؤال: حالة الآن أم حدث في فترة؟ نسخة حالية أم تسلسل إنشاء؟ حق على مورد أم استخدام فعلي له؟ هذه الفروق تساعدك تستفيد من Sysinternals في اختبار مصرح وتشخيص عملي، بدل تشغيل كل الأدوات ثم محاولة تركيب قصة من نتائج لا تقيس الشيء نفسه.
تمرين عملي وملاحظة أخيرة للتقرير
على جهازك المعزول، شغّل تطبيقًا معروفًا وافتح ملفًا وهميًا. حدده في Process Explorer وسجل الاسم والمسار والحساب وPID. ابحث عن العلاقة بالملف واقرأ نوع المورد إذا ظهر. إذا لم يظهر، لا تعلن فشل التجربة؛ سجّل أن التطبيق قد لا يبقي الملف مفتوحًا وراجع سلوكه أو اختر تطبيق تدريب موثقًا يحافظ على مورد مفتوح.
افتح نسخة ثانية إن كان التطبيق يسمح، ثم قارن النسختين بدون إنهائهما بالقوة. حاول تحديد أي نسخة ترتبط بتجربتك، واكتب الدليل الذي اعتمدت عليه. بعدها أغلق التطبيق بالطريقة الطبيعية وراجع القائمة. هكذا تتعلم حدود القراءة والتوقيت بدون لمس عمليات النظام أو بيانات عمل.
نتيجة جيدة تصف المشاهدة وحدودها: «وقت القياس ظهرت العملية من المسار المعتمد تحت حساب التدريب، وعرضت الأداة مورد الملف الوهمي ضمن المقابض المفتوحة. لا تثبت هذه القراءة وحدها نوع كل عمليات الملف أو تاريخ تشغيل سابق». ليست كل تجربة لازم تنتهي باكتشاف مخيف؛ الفهم الدقيق نتيجة مفيدة.
ولربط الاستخدام الفعلي بحقوق المورد، راجع شرح AccessChk:
https://courses.cyberpts.com/community/80/shrh-accesschk-kyf-tqra-slahyat-wyndwz-wtfrq-byn-mlf-qabl-llktabh-wthghrh-mthbth
المراجع: صفحة Process Explorer، وتعريف Handles and objects، وصفحة Process Monitor الرسمية:
https://learn.microsoft.com/en-us/sysinternals/downloads/process-explorer
https://learn.microsoft.com/en-us/windows/win32/sysinfo/handles-and-objects
https://learn.microsoft.com/en-us/sysinternals/downloads/procmon
اسم العملية أول خيط فقط. لما تضيف المسار والهوية والزمن والمورد، تقدر تناقش ما حصل بدليل، وتعرف متى تحتاج تسجيل أحداث ومتى تكفي قراءة الحالة الحالية.