الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

العلاقه بين CreateRemoteThread و LoadLibrary

مغلق
بدأه Yousof في 20 مايو 2006 · 5 رد · 798 مشاهدة · في لغة C و ++C
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ..

قرأت مقالا عن ال API Hook

لكني و صلت الى نقطة لم أفهمها و أتمنى أن اجد التوضيح من أحد الأخوه مع مثال ان أمكن

جزاكم الله خيرا ..

اقتباس
CreateRemoteThread as the name suggest is used to create

a thread in another process. A thread function has same prototype as LoadLibrary,

so we can call CreateRemoteThread with LoadLibrary’s address and it will cause

LoadLibrary call to be executed in target process’s context. This way LoadLibrary

can load our patching DLL in target process.

هذا هو المقال لمن أراد الاطلاع .

http://www.intellectualheaven.com/Articles/StraceNT.pdf

تم تعديل هذه المشاركة بواسطة Yousof في 20 مايو 2006 في 00:46

#2

هناك عدة طرق لعمل Hook لدالة من دوال API ويندوز

من بينها كتلبة الدالة البديلة في مكتبة DLL

لكي يتم تحميل DLL نستخدم الدالة LoadLibrary

لكن إستدعاء LoadLibrary يقوم بتحميل المكتبة في برنامجنا و نحن نريد تحميلها في برنامج أخر

كيف نستدعى الدالة من Process أخر ؟

أحد الحلول هو إستخدام الدالة CreateRemoteThread لإنشاء Thread في ذلك البرنامج

ثم نستخدم ذلك Thread و نستدعى منه LoadLibrary بحسن يتم تحميل DLL مكتبتنا داخل ذلك Process

ثم نقوم بعمل Hook للدالة التي نريد و عندما يستدعيها البرنامج الأخر تستدعى الدالة التي كتبناها داخل المكتبية

أرجو أن تكون قد فهم

سأحاول كتابة مثال في الأيام المقبلة إن شاء الله

d4baa0.gif
#3

السلام عليكم ..

وصلت المعلومه :) .. شكرا يا أخ DeltaAziz

بدأت الأمور تضحح شيئا فشيئا بالنسبة لي ..

سؤال أخير ..

المقال يعتمد في عمل ال Hook على عمل patch to IAT table entries و التي بها الدوال المستخدمه من المكتبات مع عناوينهم ..و عند استخدام CreateRemoteThread نقوم بتحميل مكتبتنا(mydll.dll) داخل ال Proces Address Space و من ثم تحميل الدوال الموجوده فيها بالطريقة ذاتها كما أشار المقال. و قد قلت في موضوع سابق في قسم الدلفي أننا لا نغير شيئا في عنوان الداله المراد عمل Hook لها و لا في الداله نفسها، أي أننا لا نضع دالتنا الجديده مكان الداله المراد عمل Hook لها

السؤال: هل في هذا المقال يتبع نفس الطريقه التي أشرت اليها في موضعط السابق و هي عمل JMP الى عنوان دالتنا و من ثم العوده الى الداله الأصليه بعد حفظ 6 بايتات أم أن هناك طرق اخرى لعمل الشيء ذاته؟

جزاك الله خيرا ..

#4

لا أخي يوسف، هذه طريقة أخرى...

وهذا المقال الذى طرحه الأخ يوسف لمن لا يعمل معه الرابط فوق

StraceNT.pdf

d4baa0.gif
#5

الأخ يوسف ، الرابط الذي وضعته لا يعمل، أرجو تصحيح الرابط، ووضع المقال...

شكراً لك..

#6

الرابط شغال معي لا اعرف ما المشكله

هذا الموضوع مغلق.

مواضيع مشابهة