بسم الله الرحمن الرحيم
السلام عليكم و رحمة الله و بركاته
1- مقدمة :
يمكن تصنيف عمليات الـ Hooking الى قسمين رئيسين :
![[صورة: apih01.jpg]](http://img64.imageshack.us/img64/929/apih01.jpg)
![[صورة: apih02.jpg]](http://img821.imageshack.us/img821/4152/apih02.jpg)
- كما يمكن عمل حقن لمكتبة الربط الديناميك (Inject DLL) , لتغير & مراقبة مسار الإستدعاء SysCalls _
2- ما هو الـ Hot Patching ؟ :
السلام عليكم و رحمة الله و بركاته
1- مقدمة :
يمكن تصنيف عمليات الـ Hooking الى قسمين رئيسين :
![[صورة: apih01.jpg]](http://img64.imageshack.us/img64/929/apih01.jpg)
مبدأ عملية الـ Hooking : تحويل مسار الإستدعاء الأصلي الى عنوان دالتنا الخاصة , التي تحمل
نفس بارامترات الدالة المستهدفة (إستبدال) , أو مجرد مجموعه تعليمات (Codes) .![[صورة: apih02.jpg]](http://img821.imageshack.us/img821/4152/apih02.jpg)
هناك 3 تقنيات (عامة) , لعمل HooK لــ Api :
Hot Patching ,Inline hooking , IAT patching.
- كما يمكن عمل حقن لمكتبة الربط الديناميك (Inject DLL) , لتغير & مراقبة مسار الإستدعاء SysCalls _
كـ External Thread يمكن التحكم به !.
2- ما هو الـ Hot Patching ؟ :
- مبدأ العملية تحويل القفزة التي تؤدي الى تنفيذ الدالة & الإجراء المستهدف , نحو عنوان آخر
ليتم تنفيذ أوامر مستبدلة تنتهي بقفزة للرجوع لمكان سير البرنامج الأصلي .
- نأخذ على سبيل المثال الدالة MessageBoxA (برنامج منقح بـ OllyDbg) :
![[صورة: aone.jpg]](http://img580.imageshack.us/img580/9566/aone.jpg)
- إذا يمكننا التغير مباشرة من المنقح (تعديل) , أو بإستعمال الدالة VirtualProtect , التي تتيح لنا الكتابة في ذاكرة برنامجنا
(inline hooking), وذلك بتغير صلاحية الولوج لبلوك معين من برنامجنا المحمل للداكرة (VirtualProtectEx من أي
بروسس محمل ....) , لنقوم بالتعديل !
3- مثال تطبيقي hot Patching لـدالة MessageBoxA بإستخدام VirtualProtect : (في المرفقات)
- الكود واضح & يحتوي على تعليقات من a حتى z .
![[صورة: 524i.jpg]](http://img339.imageshack.us/img339/8136/524i.jpg)
ليتم تنفيذ أوامر مستبدلة تنتهي بقفزة للرجوع لمكان سير البرنامج الأصلي .
- نأخذ على سبيل المثال الدالة MessageBoxA (برنامج منقح بـ OllyDbg) :
![[صورة: aone.jpg]](http://img580.imageshack.us/img580/9566/aone.jpg)
- نستغل 5 bytes , في كتابة تعليمات أو برامترات لإستدعاء إجراء & دالة ما !
هكذا قمنا بتحويل مسار الإستدعاء الأصلي .
هكذا قمنا بتحويل مسار الإستدعاء الأصلي .
- إذا يمكننا التغير مباشرة من المنقح (تعديل) , أو بإستعمال الدالة VirtualProtect , التي تتيح لنا الكتابة في ذاكرة برنامجنا
(inline hooking), وذلك بتغير صلاحية الولوج لبلوك معين من برنامجنا المحمل للداكرة (VirtualProtectEx من أي
بروسس محمل ....) , لنقوم بالتعديل !
3- مثال تطبيقي hot Patching لـدالة MessageBoxA بإستخدام VirtualProtect : (في المرفقات)
- الكود واضح & يحتوي على تعليقات من a حتى z .
![[صورة: 524i.jpg]](http://img339.imageshack.us/img339/8136/524i.jpg)
بالتوفيق,,
I'M Fly Like A G6


![[-]](https://delphi4arab.net/forum/D4A2020/collapse.png)