
محمّل PE/DLL انعكاسي لـ x64 مُنفَّذ باستخدام استدعاءات النظام غير المباشرة الديناميكية
Atlas هو محمّل انعكاسي لبنية x64 يوفر الميزات التالية:
يتطلب Atlas المعلمات التالية ليعمل بشكل صحيح:
Usage: atlas_x64.exe [Process name / PID] [Cleanup] [Server] [Port] [AtlasPatcher DLL] [DLL/PE to inject] <Entrypoint>
| المعلمة | الوصف |
|---|---|
| Name / PID | اسم العملية المستهدفة أو معرّف PID الخاص بها |
| Cleanup | حدد ما إذا كنت تريد إزالة مكتبات DLL المحقونة من العملية المستهدفة عند الاكتمال (يقبل Cleanup القيم 1 أو 0) |
| Server | عنوان IP للخادم البعيد الذي توجد عليه مكتبات DLL |
| Port | المنفذ الذي يستخدمه الخادم الخاص بك |
| AtlasPatcher DLL | اسم مكتبة AtlasPatcher DLL (افتراضيًا atlas_patcher.dll) المستضافة على الخادم الخاص بك (يمكنك العثور على المكتبة ضمن /AtlasLdr/bin بعد التجميع) |
| DLL/PE to inject | اسم ملف DLL أو PE الذي تريد حقنه، والمستضاف على الخادم الخاص بك |
| Entrypoint | وسيط اختياري؛ اسم الدالة المُصدَّرة التي تريد استخدامها كنقطة دخول عند حقن مكتبة DLL |

النهج التقليدي لمحمّل عادةً ما يتضمن وجود حاقن (injector) مسؤول عن حقن DLL يحتوي على المحمّل في العملية البعيدة المستهدفة. وبمجرد الحقن، يُمرَّر التنفيذ إلى المحمّل المسؤول عن تعيين (mapping) DLL الخبيث. وعلى النقيض من ذلك، يتبع Atlas نهجًا مختلفًا بعض الشيء من خلال تنفيذ عملية التعيين بأكملها في سياقه الخاص، باستثناء تصحيح جدول عناوين الاستيراد (IAT) الذي يتم تأجيله.
بمجرد تعيين DLL الخبيث في سياق Atlas، يتم نسخه إلى ذاكرة تم حجزها مسبقًا في العملية البعيدة. عند هذه النقطة، يكون DLL الخبيث معيّنًا في العملية البعيدة، لكن IAT لم يتم تصحيحه بعد. ولإصلاح ذلك، يحقن AtlasLdr مكتبة DLL ذات تبعيات ضئيلة (atlas_patcher.dll) في العملية الخبيثة، والتي تتولى تصحيح IAT الخاص بـ DLL الخبيث ثم تنقل سياق التنفيذ إليه.
يساعد هذا النهج في تقليل حجم وتعقيد DLL المحمّل الذي سيتم حقنه في العملية البعيدة، ويقلل فرص اكتشاف الحاقن، حيث يمكننا تحميل DLL باستخدام المحمّل نفسه.
يجب تجميع Atlas باستخدام x86_64-w64-mingw32-g++، وبمجرد تثبيته على نظامك، ما عليك سوى تنفيذ make (أو mingw32-make.exe) في مجلد المشروع
