
تحليل كامل ثابت وفي الذاكرة لـ Overlord RAT: بنية وكيل Go، وC2 عبر HTTP/2 + WebSocket، وحقن DLL انعكاسي، وتسجيل ضغطات مفاتيح المتصفح، ومؤشرات الاختراق (IOCs). دليل عملي لهندسة عكسية للبرمجيات الخبيثة.
يكشف فحص سلاسل الذاكرة (memory string scan) الذي أجراه Process Hacker على برنامج Overlord RAT (PID 7488) عن مجموعة كبيرة من استدعاءات Windows API والسلاسل الداخلية التي يتم حلها في وقت التشغيل. ومن بين هذه، يبرز http2dialCall كروتين استدعاء (callback) قائم على HTTP/2 يُستخدم لإنشاء اتصال C2. ويشير وجود واجهات برمجة التطبيقات المتعلقة بالتشفير والتقاط المدخلات والرسومات إلى برنامج RAT متكامل الميزات يمتلك قدرات تسجيل ضغطات المفاتيح والتقاط الشاشة وC2 المشفّر.
http2dialCall – دالة استدعاء عبر HTTP/2؛ تُستخدم لفتح قناة C2 عبر HTTP/2 (المنفذ 443)، بما يمتزج مع حركة HTTPS الشرعية. http2clientConnPool – تجمّع اتصالات (connection pool) لجلسات C2 عبر HTTP/2؛ يتيح اتصالاً مستمراً ومتعدد الإرسال (multiplexed) مع خادم C2. maxIdleConnsPerHost / GetEvictionPriority / SetEvictionPriority – إدارة دورة حياة الاتصال، تُبقي قنوات C2 الخاملة نشطة مع تفادي المهلات الزمنية (timeouts). CreateCryptoSession /GetEncryptionBltKey – إنشاء جلسة تشفير قائمة على DirectX/GPU؛ تُستخدم لالتقاط الشاشة المشفّر أو العمليات المُسرَّعة بواسطة GPU. capture._Ctype_int / capture.monCapture / capture.scaledPart / capture.mfActivate – روتينات التقاط الشاشة ومراقبة سطح المكتب. GetInputCurrentType / GetImmediateContext – استرجاع سياق الإدخال والعرض؛ يدعم تسجيل ضغطات المفاتيح واستخراج محتوى الشاشة. CreateTrueColorCondition – إعداد شرط العرض لعمليات التقاط الشاشة.
C2 عبر HTTP/2: يُظهر استخدام http2dialCall وhttp2clientConnPool أن برنامج RAT يتواصل عبر HTTP/2، وهو أصعب في الاكتشاف من HTTP العادي ويمتزج مع حركة الويب الحديثة. تسريب مشفّر: يشير CreateCryptoSession وGetEncryptionBltKey إلى نقل بيانات مشفّر، على الأرجح للملفات المسروقة أو لقطات الشاشة. قدرات RAT كاملة: التقاط الشاشة (capture.) + التقاط المدخلات (GetInputCurrentType) = تسجيل ضغطات المفاتيح ومراقبة عن بُعد. أسلوب العيش على الأرض (Living-off-the-Land): حل سلاسل API في وقت التشغيل (تخزين مُعتَّم) هو تقنية تهرب شائعة للتغلب على تحليل السلاسل الثابت. الاستمرارية والتهرب: إدارة تجمّع الاتصالات (maxIdleConnsPerHost، GetEvictionPriority) تُبقي قنوات C2 مستقرة مع تفادي الاكتشاف.

يكشف فحص ثانٍ لسلاسل الذاكرة لنفس عملية Overlord RAT عن مجموعة متميزة من السلاسل المتعلقة بالتقاط المدخلات، وC2 عبر WebSocket، والتلاعب بالذاكرة/الانعكاس (reflection). وخلافاً للمجموعة الأولى التي ركّزت على HTTP/2 والتقاط الشاشة، تشير هذه المجموعة إلى تسجيل ضغطات المفاتيح، والتواصل المستمر عبر WebSocket، وتقنيات التنفيذ في الذاكرة.
capture.rawWin – روتين التقاط النافذة الخام؛ يُستخدم لالتقاط لقطات شاشة للنوافذ النشطة. captureKeyStrokes – دالة تسجيل ضغطات المفاتيح المباشرة؛ تلتقط كل ضغطة مفتاح تُكتب على جهاز الضحية. map[uintptr]bool – بنية خريطة (map) في وقت التشغيل؛ يُرجَّح استخدامها لتتبع واجهات API المخترقة (hooked) أو المقابض (handles) الملتقطة. websocket.noCopy / websocket.header / websocket.opcode – سلاسل تنفيذ WebSocket؛ تشير إلى أن برنامج RAT يستخدم WebSocket كقناة C2 ثانوية (بالإضافة إلى HTTP/2). writeFramePayload/ readCloseFrameErr / setCloseErrLocked – معالجة إطارات WebSocket؛ تؤكد وجود تواصل C2 نشط قائم على WebSocket. reflectlite.Type / abi.UncommonType/ abi.PCLnTabMagic – سلاسل انعكاس/ABI الخاصة ببيئة تشغيل Go؛ تشير إلى أن الحمولة (payload) هي ملف ثنائي قائم على Go يستخدم الانعكاس. msgpack.isZeroer / msgpack.field – تسلسل MessagePack؛ يُستخدم لتجميع/تفكيك رسائل C2 بكفاءة. sync.poolDequeue / poolLocalInternal – إدارة تجمّع المزامنة (sync pool) في Go؛ تُستخدم لإعادة استخدام الذاكرة عالية الأداء.
قناتا C2 مزدوجتان: HTTP/2 (http2dialCall) + WebSocket (websocket.) = C2 احتياطي مع تجاوز فشل تلقائي إذا تم حظر إحدى القناتين. قدرة تسجيل ضغطات المفاتيح: يؤكد captureKeyStrokes أن برنامج RAT يقوم بالتقاط نشط لضغطات المفاتيح — بيانات الاعتماد والمحادثات وكلمات المرور في خطر. حمولة قائمة على Go: تكشف سلاسل reflectlite وabi.PCLnTabMagic وmsgpack أن هذا برنامج RAT مُصرَّف بلغة Go، وهو أصعب في الهندسة العكسية وغالباً ما يتجاوز توقيعات مضادات الفيروسات. تسلسل MessagePack: تشير msgpack. إلى رسائل C2 ثنائية مُدمجة، مما يقلل البصمة الشبكية ويتفادى الفحص العميق للحزم (DPI). الانعكاس في الذاكرة: تُستخدم reflectlite.Type وabi.UncommonType لحل الدوال ديناميكياً — وهو تهرب شائع لتفادي الاستيرادات الثابتة. C2 خفي عبر WebSocket: تمتزج حركة WebSocket عبر المنفذ 443 مع تطبيقات الويب الشرعية، مما يجعل الاكتشاف عبر مراقبة الشبكة أصعب.

تم تحميل الملف الثنائي المستخرج connectstart.bin (المستخرج من سلاسل ذاكرة Process Hacker لعملية Overlord RAT) في Binary Ninja للتحليل الثابت. يكشف عرض السلاسل عن وحدة تسجيل ضغطات مفاتيح مُهيكلة بالكامل مضمّنة في الحمولة، إلى جانب مساحة أسماء أوامر وكيل واضحة (overlord-client/cmd/agent/keylogger.*). وهذا يؤكد أن Overlord RAT يأتي بمعمارية وكيل معيارية (modular) حيث يكون مسجّل ضغطات المفاتيح نظاماً فرعياً مخصصاً يُتحكَّم به عبر أوامر C2.
مسار الوحدة: overlord-client/cmd/agent/keylogger.* – مساحة أسماء حزمة Go واضحة لوكيل تسجيل ضغطات المفاتيح. (Keylogger).Start/ .Stop – يبدأ ويوقف مسجّل ضغطات المفاتيح عند تلقي أمر C2. (Keylogger).IsRunning – يتحقق مما إذا كان مسجّل ضغطات المفاتيح نشطاً بالفعل. (Keylogger).captureLoop – الحلقة الرئيسية التي تلتقط ضغطات المفاتيح باستمرار. (*Keylogger).logKey – دالة التقاط ضغطات المفاتيح الخام. (Keylogger).getWindowTitle – يجلب عنوان النافذة النشطة (سياق لكل ضغطة مفتاح). (Keylogger).flushBuffer / .flushLoop / .FlushNow – تفريغ دوري لضغطات المفاتيح الملتقطة إلى القرص أو إلى C2. (Keylogger).ListFiles / .ReadFile / .DeleteFile / .ClearAll (Keylogger).rotateFile / .cleanupOldLogs – تدوير السجلات (log rotation) وتنظيفها لتفادي الاكتشاف.
معمارية وكيل معيارية: يُظهر المسار overlord-client/cmd/agent/ وكيل Go نظيفاً ومعيارياً — كل قدرة (تسجيل ضغطات المفاتيح، التقاط الشاشة، shell، إلخ) هي وحدة أوامر منفصلة. تسجيل ضغطات مفاتيح نشط: تؤكد captureLoop وlogKey وgetWindowTitle التقاط ضغطات المفاتيح في الوقت الفعلي مع سياق النافذة (أسماء المستخدمين، كلمات المرور، المحادثات). مكافحة الطب الشرعي (Anti-Forensics): تمنع rotateFile وcleanupOldLogs وDeleteFile تراكم السجلات وتقلل الآثار الجنائية. التهرب عبر ROT13: تُظهر سلسلة rot13 أن البيانات الملتقطة يتم تعتيمها قبل التخزين/التسريب للتغلب على الاكتشاف القائم على السلاسل. بوابة الأذونات: تشير NeedsPermissionGate / RequestPermission إلى أن برنامج RAT يتحقق من ظروف البيئة (UAC، حقوق المسؤول) قبل تنشيط مسجّل ضغطات المفاتيح. سلوك مدفوع بالأوامر: تُثبت Start/Stop/IsRunning أن مسجّل ضغطات المفاتيح يُشغَّل ويُوقَف عن بُعد بواسطة C2 — وليس تلقائياً، مما يقلل بصمة الاكتشاف.
