تعطيل بعض ازرار الكيبورد بإستخدام الـ Hook

الناقل : elmasry | الكاتب الأصلى : Slack | المصدر : www.arabteam2000-forum.com

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


يقول احد المطورين في ميكو في نظام
Windows هناك طريقة واحدة لمراقبة احدات النظام الا وهي Hook ويستطرد ويقول بانها طريقة فعالة لان Microsoft دعمتها بشكل كامل طبعا ضمن امور معينة ويرجع عائدا ويقول بان API hooking ليست مدعومة رسميا لذلك حاولوا تفاديه قدر الامكان .. (على العموم إن شاء الله اشوف كم موضوع حول الـ Hook المسموح به اولا ومن ثم ندخل على API Hook)

المهم حديثنا سوف يتمحور حول عمل hook لتعطيل بعض ازرار الـ keyboard او بمعني ادق ليس تعطيل ازرار بل تعطيل حدث معين يعملوه الا وهو ctrl+alt
اذا حملت البرنامج المرفق وشغلته ستلاحظ msg تقول لك بان الازرار تعطلت .. (اذا لنرى)

في نسخة NT دعمت ميكو عمل keyboard hook في مستوى الـ low level

WH_KEYBOARD_LL


اما في مستوى High level .او Ring3

WH_KEYBOARD


للمزيد حول الدوال راجع API Reference او MSDN

لنتكلم عن الاولى اولا لان الدالة تعمل اتصال مع طبقة Ring0 فانها استخدامها قد يفيد في امور معقدة كتعطيل مثلا عمل ctrl+alt+del وغيرها
في هذه الدالة عندما توقف عمل احد المفاتيح فان النظام لن يستشعر بان الزر قد ضغط بل يعتبره ملغي تمام

اما الثانية فلاتتجاوز تطبيقاتها الـ Key logger وغيرها من تسجيل ضربات المفاتيح وغيرها :)

وفي النهاية الكود المصدر + البرنامج .. لمن يود الاطلاع عليهما ..
 
ملف مرفق(ملفات)
 
ملف مرفق  DisableLowLevelKeys.zip (27.22كيلو )