
أداة ويندوز لتفريغ ملفات PE الضارة من الذاكرة إلى القرص للتحليل.
Process Dump هي أداة سطر أوامر لهندسة عكسية على Windows لتفريغ مكوّنات ذاكرة البرمجيات الخبيثة مرة أخرى إلى القرص بغرض التحليل. غالبًا ما تكون ملفات البرمجيات الخبيثة مُحزَّمة ومُشوَّشة قبل تنفيذها لتجنّب فاحصي مكافحة الفيروسات، غير أن هذه الملفات عند تنفيذها غالبًا ما تقوم بفك الحزمة أو حقن نسخة نظيفة من شيفرة البرمجية الخبيثة في الذاكرة. من المهام الشائعة لدى باحثي البرمجيات الخبيثة عند تحليلها تفريغ هذه الشيفرة المفكوكة من الذاكرة إلى القرص لفحصها بمنتجات مكافحة الفيروسات أو لتحليلها بأدوات التحليل الساكن مثل IDA.
تعمل Process Dump على أنظمة تشغيل Windows 32 و64 بت ويمكنها تفريغ مكوّنات الذاكرة من عمليات محددة أو من جميع العمليات قيد التشغيل حاليًا. تدعم Process Dump إنشاء واستخدام قاعدة بيانات تجزئات نظيفة (clean-hash)، بحيث يمكن تخطي تفريغ الملفات المعروفة مثل kernel32.dll. تشمل ميزاتها الرئيسية:
-closemon)، حيث يتم إيقاف العمليات المخطوفة مؤقتًا وتفريغها قبل إنهائها مباشرة.أحتفظ بإصدار مُجمَّع رسمي على موقعي هنا: https://split-code.com/processdump.html
يمكنك تنزيل أحدث إصدار مُجمَّع من Process Dump هنا:
استخدم pd64.exe على Windows 64 بت (موصى به)، أو pd32.exe على Windows 32 بت. كلا الملفين التنفيذيين مستقلان؛ ولا يتطلبان Microsoft Visual C++ Redistributable.
يمكن لـ Process Dump تفريغ جميع الشيفرة غير المعروفة من الذاكرة (-system)، أو تفريغ عمليات محددة، أو مراقبة العمليات وتفريغها قبل إنهائها.
على محطة عمل نظيفة، ولّد قاعدة بيانات أساسية بأحد الأمرين:
pd64.exe -db genquickpd64.exe -db genشغّل توليد قاعدة البيانات والتفريغ كأمرين منفصلين. للحصول على أفضل صلاحيات وصول، شغّلها كمسؤول (Administrator). العدد الافتراضي للعاملين هو 16.
مثال على الاستخدام:
pd64.exe -systempd64.exe -pid 419pd64.exe -pid 0x1a3pd64.exe -pid 0x1a3 -a 0x401000 -o C:\dumpspd64.exe -p "chrome[.]exe"pd64.exe -p ".*chrome.*"pd64.exe -closemonGeneral Dumping Options
| Option | Description |
|---|---|
-system | يفرّغ الوحدات والشيفرة المتناثرة غير المطابقة لقاعدة بيانات التجزئات النظيفة من جميع العمليات التي يمكن الوصول إليها. |
-pid <pid> | يفرّغ عملية محددة. استخدم النظام العشري أو بادئة 0x لمعرّف عملية سداسي عشري. |
-closemon | يخطف إنهاء العمليات ويفرّغها قبل الخروج. استخدمه في بيئة مُتحكَّم بها؛ اضغط Ctrl+C للإيقاف. |
-p <regex> | يفرّغ العمليات التي يطابق اسمها بالكامل تعبيرًا نمطيًا حساسًا لحالة الأحرف. عند وجود تطابقات متعددة يُطلب التأكيد. |
-a <address> | يفرّغ عند عنوان الأساس المحدد. يتطلب -pid؛ يقبل النظام العشري أو السداسي عشري ببادئة 0x. |
-o <path> | يحدد مجلد الإخراج (الافتراضي: دليل العمل الحالي). أنشئ المجلد أولًا؛ لا يتم استبدال الملفات الموجودة أبدًا. |
Clean Hash Database Options
تكون ملفات قاعدة البيانات افتراضيًا في دليل التطبيق: clean.hashes وentrypoints.hashes وshortentrypoints.hashes.
| الخيار | الوصف |
|---|---|
-db gen | يضيف التجزئات (hashes) من العمليات قيد التشغيل وملفات PE بشكل تكراري في %WINDIR% و%USERPROFILE% وC:\Program Files وC:\Program Files (x86). |
-db genquick | يضيف التجزئات من العمليات قيد التشغيل فقط. أسرع من gen، لكنه أقل اكتمالاً. |
-db add <dir> | يضيف تجزئات ملفات PE من الدليل المحدد بشكل تكراري، بما في ذلك توقيعات نقطة الدخول (entrypoint). |
-db remove <dir>، -db rem <dir> | يزيل تجزئات الوحدات النظيفة المطابقة من الدليل بشكل تكراري. تُحتفظ توقيعات نقطة الدخول. |
-nr | يعطّل التكرار لأوامر إضافة/إزالة قاعدة البيانات. لا يؤثر على -db gen. |
-db clean | يمسح قواعد البيانات الثلاث جميعها، بما في ذلك توقيعات نقطة الدخول. |
-db ignore | يتجاهل قواعد البيانات الثلاث المحمّلة لهذا التفريغ دون تغيير الملفات. قد تظل الوحدات المتكررة تُتخطى خلال التشغيل. |
-cdb <filepath>، -c <filepath> | يحدد مسار قاعدة بيانات التجزئات النظيفة. |
-edb <filepath> | يحدد مسار قاعدة بيانات تجزئات نقطة الدخول. |
-esdb <filepath> | يحدد مسار قاعدة بيانات تجزئات نقطة الدخول القصيرة. |
خيارات الإخراج
| الخيار | الوصف |
|---|---|
-v | يطبع تشخيصات مفصّلة. |
-nh | يكتم لافتة الإصدار/حقوق النشر. |
--help، -help، -h، --h | يطبع المساعدة ويخرج. التشغيل دون وسائط يطبع المساعدة أيضاً. |
خيارات متقدمة
| الخيار | الوصف |
|---|---|
-g | يفرض توليد ترويسات PE لكل من 32-bit و64-bit، متجاهلاً الترويسات الموجودة. |
-eprec | يفرض استرداد نقطة الدخول حتى لو كانت هناك نقطة دخول صالحة. الاسترداد استكشافي؛ البحث غير الناجح يترك القيمة القديمة دون تغيير. |
-ni | يعطّل إعادة بناء الاستيرادات العدوانية (مفعّلة افتراضياً). |
-nc | يعطّل تفريغ وتجزئة الكود الحر (loose-code) (مفعّل افتراضياً). |
-nep | يعطّل استرداد نقطة الدخول وتجزئة نقطة الدخول الحية، متجاوزاً -eprec. لا يزال توليد قاعدة بيانات الملفات يجمع توقيعات نقطة الدخول. |
-reexec | تحضير تجريبي لإعادة تشغيل التفريغات. يتخلص من بعض الحالة الملتقطة ويفترض تخطيط الأقسام الأصلي؛ لا يشغّل التفريغ ولا يضمن نجاحه. معطّل افتراضياً. |
-nt | يستخدم عاملاً واحداً، ما يعادل -t 1. لا يزال المراقبة الدقيقة تمتلك خيط مراقبة منفصلاً. |
-t <count> | يحدد عدد العمال (الافتراضي 16، الحد الأدنى 1) لتفريغ النظام وتوليد قاعدة البيانات والمراقبة الدقيقة. تبقى تفريغات PID/الاسم المباشرة متزامنة. آخر -t/-nt هو الذي يُعتمد. |
| الأمر | الوصف |
|---|---|
pd64.exe -db genquick | يبني بسرعة خط أساس من العمليات قيد التشغيل حالياً. |
pd64.exe -system -t 4 -o C:\dumps | يفرّغ الوحدات غير المعروفة والكود الحر بأربعة عمال إلى مجلد إخراج موجود. |
pd64.exe -closemon | يعمل في وضع مراقبة الإنهاء. |
pd64.exe -pid 0x18A | يفرّغ الوحدات والكود الحر من عملية محددة. |
pd64.exe -p ".*chrome.*" | يفرّغ العمليات التي تحتوي أسماؤها على chrome. |
pd64.exe -db gen | يبني خط أساس أكثر اكتمالاً من العمليات قيد التشغيل والمجلدات الشائعة. |
pd64.exe -db add C:\baseline -nr | يضيف ملفات PE من دليل دون البحث في الأدلة الفرعية. |
pd64.exe -pid 0x1a3 -a 0x401000 | يفرّغ عند عنوان محدد. إذا لم توجد ترويسة PE، يولّد ترويسات لكل من 32-bit و64-bit. |
لتحليل البرمجيات الخبيثة، استخدم مختبراً معزولاً وشغّل Process Dump كمسؤول (Administrator):
pd64.exe -db gen أو pd64.exe -db genquick قبل إدخال العينة.pd64.exe -closemon قيد التشغيل لالتقاط العمليات المخترقة (hooked) عند إنهائها.pd64.exe -system لتفريغ العمليات التي لا تزال قيد التشغيل.تُكتب التفريغات إلى دليل العمل ما لم يُضبط -o. أبقِها خاصة. التفريغات مخصصة للتحليل ولا يُضمن تشغيلها؛ تُرفض الصور الأكبر من 256 MiB.
hiddenmodule بدلاً من اسم وحدة إلى أن الوحدة لم تُسجَّل بشكل صحيح في العملية.codechunk تفريغًا من منطقة تنفيذية حرة بدون رأس PE. تُفرَّغ هذه مرتين، برؤوس x86 وx64 معاد بناؤها.أمثلة على أسماء الملفات: