
أداة تعمل في وضع المستخدم على ويندوز لتعداد وتصنيف منافذ ALPC، بما في ذلك العمليات المحمية بـ PPL.
أداة Windows تعمل في مساحة المستخدم لتعداد وتصنيف منافذ استدعاء الإجراءات المحلية المتقدم (ALPC)، بما في ذلك تلك المملوكة لعمليات PPL (عمليات الحماية الخفيفة) حيث يفشل تكرار المقابض القياسي.
غالبًا ما تتجاهل أدوات التعداد القياسية المنافذ المحمية أو تلك التي يُرفض الوصول إليها تمامًا، مما يخلق بقعًا عمياء. تحل هذه الأداة ديناميكيًا فهرس نوع كائن منفذ ALPC وتتراجع إلى NtQueryInformationProcess لتصنيف المنافذ التي ترفض طلبات التكرار القياسية بدقة.
تلغي هذه الأداة البقع العمياء في تعداد IPC القياسي في Windows لفئتين أساسيتين:
PROCESS_DUP_HANDLE لإخفاء نشاطها. تُسقط الأدوات القياسية هذه المنافذ بصمت. تلتقط هذه الأداة الفشل وتستعلم عن بنية PS_PROTECTION بدلاً من ذلك. إذا رفضت عملية الوصول ولكنها أعادت Type و Signer بقيمة 0 (None)، فهي ليست عملية PPL شرعية في Windows، وهذا أمر شاذ للغاية ويجب الإبلاغ عنه للتحقيق الفوري.أثناء الاختبار على نظام Windows مباشر، جالت الأداة على 58,916 مقبضًا مفتوحًا وعزلت 2,618 منفذ ALPC:
الإخراج الخام: الإخراج الكامل غير المُفلتر لهذه الجولة متاح في
alpc_enumerator_output.txt.
ملاحظة حول المنافذ المجهولة: طباعة المنافذ المجهولة على وحدة التحكم معطلة افتراضيًا في
main.cppلمنع تضخم إخراج الطرفية بآلاف الإدخالات. إذا كنت بحاجة إلى إخراج فوري للمنافذ المجهولة، فقم بإلغاء تعليقcheckEntriesVectorForPrint(anonEntries, "Anonymous");عند السطر ~451 قبل الترجمة.
لإثبات دقة تعداد مساحة المستخدم، تم التحقق يدويًا من إخراج الأداة مقابل مصحح نواة Windows (WinDbg). تطابق عناوين الكائنات ومستويات توقيع PPL بيانات النواة الفعلية تمامًا.
main.cpp في Visual Studio أو ترجم عبر MSVC.Release (x64).SeDebugPrivilege).بدلاً من ترميز فهرس نوع كائن ALPC بشكل ثابت (وهو ما يتعطل عبر إصدارات Windows المختلفة)، تنشئ الأداة منفذ ALPC مؤقتًا وتستعلم عن نوعه ديناميكيًا لعزل الفهرس الصحيح للنظام المضيف (مثل الفهرس 46). عندما يفشل تكرار المقابض القياسي، تقوم بفك ترميز PS_PROTECTION لاستخراج Type و Signer الدقيقين اللازمين لتصنيف المنافذ دون الاعتماد على حقوق الوصول.
للتحليل التقني الكامل، إليك رابط المقال على Medium: https://medium.com/@sphinx_321/userland-alpc-enumeration-dynamic-ppl-aware-approach-283541194102
هذه الأداة جزء من أبحاثي المستمرة حول ALPC/RPC ودواخل Windows. سأنشر المزيد من النتائج وسأصدر أدوات مصاحبة في المستقبل القريب. إذا وجدت هذا مفيدًا، ففكر في متابعتي على GitHub أو على حساباتي الاجتماعية أدناه ليصلك إشعار بالإصدارات المستقبلية.