
اكتشاف استثناءات EDR من خلال فحص الوحدات المُحمّلة في العمليات
تبحث هذه الأداة إما عن العمليات التي تم تحميل ملف ثنائي معين فيها أو العمليات التي لم يتم تحميله فيها. وهذا مفيد في السيناريوهات التالية:
ربما يمكنك إيجاد طرق أخرى قيّمة لاستخدام هذه الأداة. يتم الحصول على هذه النتائج مع تجنّب التكرار عبر جميع العمليات في النظام وبضوضاء أقل.
تحصل الأداة على جميع العمليات التي تم تحميل ملف ثنائي معين فيها عن طريق استدعاء NtQueryInformationFile مع العلامة FileProcessIdsUsingFileInformation. بعد ذلك، وفقط إذا لزم الأمر، يتم استدعاء EnumProcesses للحصول على PIDs جميع العمليات، وأخيرًا تتم مقارنة النتيجتين للحصول على قائمة PIDs نهائية. إذا لم تكن الأداة تعمل في الوضع الصامت، فسيتم تحويل قائمة PIDs النهائية إلى المسار المؤهل بالكامل للوحدة الرئيسية للعملية.
إذا كنت تريد تقليل النشاط العابر بين العمليات، استخدم الوضع الصامت (--quiet أو -q). في هذه الحالة، لن يتم فتح أي مقبض (handle) لعملية، لكن الأداة ستسترجع PIDs فقط وليس المسارات المؤهلة بالكامل.
الأداة متوافقة تمامًا مع Win10 والإصدارات الأحدث ومع Windows Server 2016 والإصدارات الأحدث. بالنسبة لإصدارات أنظمة التشغيل الأقدم، يتطلب استدعاء OpenProcess (السطر src::main.rs:108) كلاً من PROCESS_QUERY_INFORMATION وPROCESS_VM_READ بدلاً من PROCESS_QUERY_LIMITED_INFORMATION فقط (أو يمكنك ببساطة الالتزام بالوضع الصامت الذي لا يفتح أي مقبض لعملية).
نظرًا لأننا نستخدم إضافة LITCRYPT لتعتيم النصوص الحرفية (string literals)، يجب إعداد متغير البيئة LITCRYPT_ENCRYPT_KEY قبل تجميع الكود:
C:\Users\User\Desktop\bin_finder\bin_finder> set LITCRYPT_ENCRYPT_KEY="yoursupersecretkey"
بعد ذلك، قم ببساطة بتجميع الكود وتشغيل الأداة:
C:\Users\User\Desktop\Bin-Finder> cargo build --release
C:\Users\User\Desktop\Bin-Finder\target\release> bin_finder.exe -h
تمتلك Bin-finder وضعين مختلفين للاستخدام. الوضع الافتراضي سيبحث عن جميع العمليات التي لم يتم تحميل الملف الثنائي المحدد فيها. على سبيل المثال، يمكننا البحث عن جميع العمليات التي لم يتم تحميل ملف CrowdStrike dll فيها:

هذا مفيد جدًا عندما تبحث عن المجلدات/العمليات الموجودة ضمن قائمة استثناءات EDR.
إذا كنت تريد تقليل النشاط العابر بين العمليات، يمكن استخدام الوضع الصامت لاسترجاع PIDs فقط:

أيضًا، إذا كنت لا تعرف اسم ملف dll الذي تبحث عنه أو مساره، يمكنك محاولة سرد الوحدات (modules) المحمّلة في عملية عادية باستخدام العلامة -l أو --list (وهذا مفيد أيضًا لاكتشاف ما إذا كان هناك EDR مثبت أم لا):

وضع الاستخدام الثاني هو البحث العكسي (العلامتان -r أو --reverse)، والذي سيبحث عن جميع العمليات التي قامت حاليًا بتحميل الملف الثنائي المحدد. على سبيل المثال، ربما تكون مهتمًا بالحصول على PID للعملية التي تشغّل خدمة StorSvc. في هذه الحالة، قم فقط ببحث عكسي عن ملف dll الذي ينفذ خادم RPC المستخدم من قبل تلك الخدمة:

يمكن أيضًا استخدام هذا البحث العكسي للحصول مباشرة على PID لعملية ما عن طريق تحديد المسار الكامل لوحدتها الرئيسية (عادةً ملف .exe) دون الحاجة إلى التكرار عبر جميع العمليات في النظام. هكذا يمكنك الحصول على PIDs جميع عمليات chrome.exe قيد التشغيل:
