
حقن DLL الانعكاسي هو تقنية حقن مكتبات تُستخدم فيها فكرة البرمجة الانعكاسية لتنفيذ تحميل مكتبة من الذاكرة إلى عملية مضيفة.
حقن مكتبات DLL الانعكاسي هو تقنية حقن مكتبات يتم فيها توظيف مفهوم البرمجة الانعكاسية لتنفيذ تحميل مكتبة من الذاكرة إلى عملية مضيفة. وبهذا تكون المكتبة مسؤولة عن تحميل نفسها من خلال تنفيذ مُحمّل ملفات Portable Executable (PE) أدنى. ويمكنها بعد ذلك التحكم، مع أقل قدر من التفاعل مع النظام المضيف والعملية، في كيفية تحميلها وتفاعلها مع المضيف.
يعمل الحقن من Windows NT4 حتى Windows 8 بما في ذلك، على معماريات x86 وx64 وARM حيثما ينطبق ذلك.
عملية حقن مكتبة عن بُعد في عملية ما تتكون من جزأين. أولاً، يجب كتابة المكتبة التي ترغب في حقنها في مساحة العناوين الخاصة بالعملية الهدف (يُشار إليها هنا باسم العملية المضيفة). ثانيًا، يجب تحميل المكتبة في تلك العملية المضيفة بطريقة تلبي توقعات وقت التشغيل للمكتبة، مثل حل الواردات الخاصة بها أو نقلها إلى موقع مناسب في الذاكرة.
بافتراض أن لدينا تنفيذ كود في العملية المضيفة وأن المكتبة التي نرغب في حقنها قد كُتبت في موقع عشوائي من الذاكرة في العملية المضيفة، فإن حقن مكتبات DLL الانعكاسي يعمل على النحو التالي.
افتح ملف 'rdi.sln' في Visual Studio C++ وقم ببناء الحل في وضع Release لإنشاء inject.exe وreflective_dll.dll
لاختبار الاستخدام، استخدم inject.exe لحقن reflective_dll.dll في عملية مضيفة عبر معرف العملية، على سبيل المثال:
inject.exe 1234
مرخّص بموجب ترخيص BSD من ثلاث فقرات، يرجى الاطلاع على LICENSE.txt للحصول على التفاصيل.