Api Hook مثال بسيط, Hook للدالة TerminateProcess
#11
dw -1 لم نقم بتعريفه هل هو إختصار لـ DWord ??
2- لما خصصنا البارامتر الأول للدالة ReadProcessMemory بـ dWord(-1) ؟
I'M Fly Like A G6

الرد
#12
إقتباس :مادا تعني (في داكرة برنامجنا ؟
عندما ينفذ البرنامج وكانه وحده وكل الذاكرة له وحده
القصد ان ما قمنا به من تعديل لا يؤثر على البرامج الاخرى التي تعمل بنفس الوقت

إقتباس :ما الفرق بين مقبض البرنامج و رقم التعريف id
تقصد Handle و PID
باختصار كلاهما مجرد رقم، PID يكون فريد مدى حياة الProcess
لكل شيئ Handle سواء نافذة او Process أو Thread او...
حتى تفهم اكثر طالع احذ كتب Win32
إقتباس : لمادا 6 ؟
حجم الاوامر المستخدمة للتغيير
5 bytes لامر Push
1 byte لامر Ret
المجموع يساوي 6


إقتباس :dw -1 لم نقم بتعريفه
معرف بالمثال المرفق باول مشاركة
PHP كود :
Dw  Dword

إقتباس :لما خصصنا البارامتر الأول للدالة ReadProcessMemory بـ -1 ؟
يقراء نفسه
[-] كل من 3 users say قال شكرا ل محمد عبد العزيز على المشاركة المفيدة
  • mohamed49, Rever7eR, Eagle Master
الرد
#13
شكرا ,,

1- إذا يمكننا أن نقوم بتتبع دوال الـ Api إنطلاقا من العنوان المحمل (loadlibrary مقبض) من الـ dll المصدر ؟؟

و بما اننا سنعترضها كالـ hook فبسهولة يمكن رصدها .

2- ألاحظ لما أستعمل فاحص للـ dll ما أنه يعطيني عنوان ثابت لمكان دالة ما (بداخل هدا الـ dll) ما تفسير دلك
لأنه عادة ؟ بكل تحميل او إعادة تحميل لتعليمة ما فإنه يأخذ Offset معين على حسب حالة الذاكرة؟؟
I'M Fly Like A G6

الرد
#14

1-
LoadLibrary تحمل المكتبة DLL لذاكرة البرنامج
GetProcAddress تعطي عنوان اي دالة من تلك المكتبة
2-
عند تحميل المكتبة للذاكرة قد يتم عمل relocations لتفهم اكثر كما قلت لك بردي السابق عليك بمعرفة بنية الملف التنفيذي Win32 PE وكيفية عمله
يمكن ان تبداء بروابط الرد #4 من موضوع كيف يتم ضغط الملفات التنفيدية ؟
والسلام عليكم
[-] كل من 3 users say قال شكرا ل محمد عبد العزيز على المشاركة المفيدة
  • mohamed49, Eagle Master, invocker
الرد
#15
شكرا ,,

هادا تعليق أحد الأخوى في منتدى آخر (ما رأيك؟؟):

تضع نقطة توقف على LoadLibrary ومن ثم تحفظ العنوان المسترجع في EAX (عنوان المكتبة بعد تحميلها الى الذاكرة) والذي سيحفظ في مكان ما, تقوم بوضع نقطة توقف عليه عند القراءة لانه سيستخدم فيما بعد مع GetProcAddress .

كنت أظن أنه يمكن دلك سواء بالدلفي أو بالأسمبلي ؟؟

+ في ما يخص المقال جاري المطالعة بارك الله فيك.
I'M Fly Like A G6

الرد
#16
إقتباس :تضع نقطة توقف على LoadLibrary ومن ثم تحفظ العنوان المسترجع في EAX (عنوان المكتبة بعد تحميلها الى الذاكرة) والذي سيحفظ في مكان ما, تقوم بوضع نقطة توقف عليه عند القراءة لانه سيستخدم فيما بعد مع GetProcAddress .
يتحدث عن تنقيح Debugging لمكتبة DLL
ما به ؟ او ما المشكل!


إقتباس :كنت أظن أنه يمكن دلك سواء بالدلفي أو بالأسمبلي ؟؟
يمكن عمل اي شيئ باي لغة
الرد
#17
شكرا تم تنفيذ الدرس بنجاح و بكل سهولة ,,

ممكن تضع سلسلة دروس في مجال برمجة الدريفر ؟؟ أو على أقل توضيحات أكثر .
I'M Fly Like A G6

[-] كل من 1 user says قال شكرا ل TF6M على المشاركة المفيدة
  • mohamed49
الرد
#18
السلام عليكم
بارك الله فيك أخي عزيز
نادرةهي المواضيع مثل هاته
وأتمنى أن أرى المزيد
سأعيد المراجعةSmile
ومن يتهيب صعود الجبال يعش أبد الدهر بين التلال و الحفر
الرد
#19
بارك الله فيك اخي وزادك علما حقيقة العالم العربي شحيح جدا من ناحية هذه المواضيع المماثلة بخصوص ردك هنا
تعمل Hook لعدد كبير من الدوال وعند استدعاءها اما تسمح بذلك او تمنعه حسب رغبة المستخدم
فقط فكر في الجملة 'استدعاء دالتي بدلا من دالة النظام' وانظر للافاق المتاحة
افهم من كلامك انك تستطيع مثلا ايقاف ملف عن نسخ نفسه الا بموافقة المستخدم هل يتم ذلك بعمل هوك على دالة معينة بحد ذاتها ام على البرنامج المسؤول وكيف تتم الطريقة
والسلام عليكم
الرد
#20
(12-05-2018, 06:39 PM)mohamed49 كتب : تستطيع مثلا ايقاف ملف عن نسخ نفسه الا بموافقة المستخدم. هل يتم ذلك بعمل هوك على دالة  معينة بحد ذاتها ام على البرنامج المسؤول وكيف...

وعليكم السلام
يمكن عمل ذلك بأكثر من طريقة، لمعرفة اسهلها ابحث في الانترنت عن
Copy Hook Handlers
رَبَّنَا اغْفِرْ لِي وَلِوَالِدَيَّ وَلِلْمُؤْمِنِينَ يَوْمَ يَقُومُ الْحِسَابُ
[-] كل من 1 user says قال شكرا ل محمد عبد العزيز على المشاركة المفيدة
  • mohamed49
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم