بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
اللهم علمنا ما ينفعنا وانفعنا بما علمتنا انك انت السميع العليم وبعد
=========> مقدمة حول الـWinAPI Hooking <==========
الهوك ومن اسمه هو خطاف ، يستخدم لمراقبة او فلترة او تعديل الاستدعاءات الخاصة بالـFunctions او WinAPI
وحتى اوضح الفكرة اكثر ، فعلى سبيل المثال الـAnti-Virus ،هل تسائلت يوميا كيف وانه عندما تفتح برنامجا واذا كان ذلك البرنامج مصاب بفايروس فانه يتم التقاطه ومسحه ، لكن كيف ؟ وكيف عرف الـAnti-Virus بانك قمت بتشغيل ذلك الملف اصلا ؟ او حتى انك تريد تشغيله !!!
بالطبع إن الـAnti-Virus لم ينتظر حتى تشغيل البرنامج المصاب ومن ثم قام بايقافه ، فماذا لو تم تشغيل اكثر من Process في آن واحد ؟ فكيف سوف يتعامل المستخدم مع ذلك الامر اساسا ؟
بالواقع ذلك عمل الـHook تحديداً فانه عندما يقوم المستخدم او اي عملية اخرى بتشغيل ملف معين ، فانه يستخدم API اسمها CreateProcess ( اضغط لتدخل مرجعها من قبل MS ) ، وهذه الـAPI هي المسؤولة عن تشغيل البرامج ، فوظيفة الـHook هي مراقبة هذه الـAPI عند استدعائها وعمل فلترة لها واتخاذ الاجراءات المناسبة لما يترتب على ذلك الامر
اذا اي استدعاء للـProcess عن طريق CreateProcess فانه بالواقع يمر ببرنامج الـAnti-Virus ليقوم بفلترته ومن ثم تنفيذه ، وبذلك يتم حماية المستخدم
وايضا هنالك الكثير من API المسؤولة عن نقل الملفات ونسخها وحذفها او قتل الـProcess او إنشائها او اخذ Handle لها ، ولذلك فهل يستطيع احد قتل الـAnti-Virus باستخدام Task Manager ، بالطبع لا ، وبنفس الوقت انا لا اقول انه لا يمكن قتله
=========> انواع الـWinAPI Hooking <==========
ينقسم الهوك الى عدة انواع
Ring -1
Ring 0
Ring 1
Ring 2
Ring 3
ما يهمنا حاليا Ring 3
Ring-1: بالواقع نوع من انواع الهوك يتم على مستوى CPU ولم يتم التصريح عنده بعد او اتخاذه بشكل رسمي او استخدامه
Ring0: او ما يطلق عليه Kernel-Mode Hook، اذ انه يتم على مستوى النواة وعلى كافة البرامج وهو ما تستخدمه برامج الحماية
Ring1 & Ring2: هوكات تحدث داخل النظام ولا يتم التعامل معها
Ring3: ويطلق عليه User-Mode Hook ، وبالواقع هو الذي يهمنا حاليا ويتم على Process معين ! ويمكن جعله Global Hook ولكل ذلك عيوب ومميزات ، ويقسم الى 4 انواع معروفة :-
Detours
Trampoline
IAT - Import Address Table
EAT - Export Address Table
=========> اّلية WinAPI Hook Type Ring3 <==========
إذا قمنا بالدخول الى CreateProcess مرة اخرى ، فنجد بان هذه الـAPI موجودة داخل DLL باسم Kernel32.dll
وهذه الملف يوجد داخل مجلد system32 --- C:\Windows\system32
وبما ان هذه الـAPI توجد داخل الـDLL File اذا بالتاكيد فان لها عنوانا داخل هذه الملف
ومن المعروف بانه عند تشغيل برنامج معين فانه يتم تحميله على الذاكرة لمعالجته ، وبالتالي وبما ان البرنامج يتم تحميله على الذاكرة سوف يقوم بتحميل المكتبات التي يستخدمها ايضا معه في الذاكرة ليقوم باستدعاء منها ما يشاء
ومن المعروف ايضا بانه يمكننا الكتابة على الذاكرة والتلاعب بها كيف ما نشاء
.....
إن أصبت فمن الله ، وإن اخطئت فمني ومن الشيطان
اترككم في امان الله ورعايته
اترككم في امان الله ورعايته
والسلام عليكم ورحمة الله وبركاته
عمل هوك ، صنع هوك ، فلترة دالة ، فلترة API ، القضاء على Function ، انشاء حماية ، منع استخدام Function ، كيفية عمل هوك ، كيفية عمل Hook ، هوك Detours ، هوك trampoline ، هوكات IAT , EAT ، Kernel32.dll , System32 , User32.dll , هوك Ring3 ، User Mode Hook, Kernel Mode Hook , الكتابة على الذاكرة
الله يعطيك العافية اخي على ما تقدمه
ردحذف