[Api Hooking [HOT PATCHING , تطبيق بسيط !
#1
بسم الله الرحمن الرحيم
السلام عليكم و رحمة الله و بركاته


1- مقدمة :
يمكن تصنيف عمليات الـ
Hooking الى قسمين رئيسين :
[صورة: apih01.jpg]

مبدأ عملية الـ Hooking : تحويل مسار الإستدعاء الأصلي الى عنوان دالتنا الخاصة , التي تحمل
نفس بارامترات الدالة المستهدفة (إستبدال) , أو مجرد مجموعه تعليمات (Codes) .

[صورة: apih02.jpg]

هناك 3 تقنيات (عامة) , لعمل HooK لــ Api :
Hot Patching ,Inline hooking , IAT patching.

- كما يمكن عمل حقن لمكتبة الربط الديناميك (
Inject DLL) , لتغير & مراقبة مسار الإستدعاء SysCalls _
كـ External Thread يمكن التحكم به !.

2- ما هو الـ Hot Patching ؟ :

- مبدأ العملية تحويل القفزة التي تؤدي الى تنفيذ الدالة & الإجراء المستهدف , نحو عنوان آخر
ليتم تنفيذ أوامر مستبدلة تنتهي بقفزة للرجوع لمكان سير
البرنامج الأصلي .

- نأخذ على سبيل المثال الدالة MessageBoxA (برنامج منقح بـ OllyDbg) :

[صورة: aone.jpg]

- نستغل 5 bytes , في كتابة تعليمات أو برامترات لإستدعاء إجراء & دالة ما !
هكذا قمنا بتحويل مسار الإستدعاء الأصلي .

- إذا يمكننا التغير مباشرة من المنقح (تعديل) , أو بإستعمال الدالة VirtualProtect , التي تتيح لنا الكتابة في ذاكرة برنامجنا
(
inline hooking), وذلك بتغير صلاحية الولوج لبلوك معين من برنامجنا المحمل للداكرة (VirtualProtectEx من أي
بروسس محمل ....) , لنقوم بالتعديل
!

3- مثال تطبيقي hot Patching لـدالة MessageBoxA بإستخدام VirtualProtect : (في المرفقات)
- الكود واضح & يحتوي على تعليقات من a حتى z .

[صورة: 524i.jpg]

بالتوفيق,,




الملفات المرفقة
.rar   Hot Patching Use VirtualProtect Function.rar (الحجم : 2.84 ك ب / التحميلات : 357)
I'M Fly Like A G6

[-] كل من 1 user says قال شكرا ل TF6M على المشاركة المفيدة
  • mohamed49
الرد
#2
السلام عليكم
بارك الله فيك أخي على هذا الدرس القيم حول الـHook
أخي ممكن ترجمة بسيطة للصورة الأولى حول قسمي الهوك؟؟
ومن يتهيب صعود الجبال يعش أبد الدهر بين التلال و الحفر
الرد
#3
ال API Hooking تنقسم الى قسمين
Local Hook اي هوك محلي مراقبة الاشياء التي تحدث لبرنامج معين او Thread
Global Hook اي هوك شامل .. مراقبة النظام بكامله .. All Threads
هدا والله اعلم
الرد
#4
شكرا أخي علي الدرس المفيد
الرد
#5
بارك الله فيك
هل يوجد مصادر اخري تشرح ال API Hooking بشكل مفصل ؟
الرد
#6
السلام عليكم و رحمة الله

إقتباس :- advapihook.rar
- afxCodeHook.zip
- codehook_1.5a.zip
- Examples.zip
- Mad.rar
- uallCollection.zip

كود :
www.mediafire.com/?qxhcgp5cvtdx2jg

حمل اخي احمد المرفق ثم قم بتنظيف ما يثير برامج الحماية...
[-] كل من 1 user says قال شكرا ل STRELiTZIA على المشاركة المفيدة
  • mohamed49
الرد
#7

معظمها ذكرت بالمنتدى
http://www.delphi4arab.net/forum/showthr...p?tid=2424
http://www.delphi4arab.net/forum/showthr...p?tid=2825
http://www.delphi4arab.net/forum/showthr...p?tid=2892
ربما احسن مصدر يشرح API Hook عبارة عن ثلاث مقالات بالروسية
كود :
http://www.wasm.ru/article.php?article=apihook_1 http://www.wasm.ru/article.php?article=apihook_2 http://www.wasm.ru/article.php?article=apihook_3
في الأول والأخير خطف الدوال ماهو الا تغيير بمجرى استدعاء الدوال، افهم كيف يعمل النظام ثم ابحث عن مكان غيره حسب ما تريد
بالتوفيق
[-] كل من 1 user says قال شكرا ل محمد عبد العزيز على المشاركة المفيدة
  • mohamed49
الرد
#8
شكرا لكم اخواني الاعزاء STRELiTZIA و B.M.AbdelAziZ
الرد
#9
بارك الله فيك ...
الرد
#10
ايضا هناك مقدمة بسيطة و شرح جيد للهوك
بكتاب The Tomes of Delphi - Win32 Core API Windows 2000 Edition
تحت الفصل Message Processing Functions
[-] كل من 1 user says قال شكرا ل Moha711 على المشاركة المفيدة
  • mohamed49
الرد


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


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