الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تعلم برمجة ال WDM Device Drivers

مغلق
بدأه هاني الأتاسي في 29 يناير 2002 · 9 رد · 5,822 مشاهدة · في قسم المواضيع الهامة في قسم السي /سي++
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

هذا بحث كنت قد عملته في ال Windows Driver Model وهو في الوصلة :

http://people.msoe.edu/~atassim/atassi_WDM.pdf

من أجل تشغيله أنت تحتاج إلى Adobe Acropat Reader .

المشكلة أني كاتبه بالانجليزي .. ومستواه عالي شوي .. :o

إذا في أي سؤال أرجو وضعه هنا و شكرا ... :)

Coding on the Cloud and for the Cloud!

My Blog

#2

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

انت دائما أخ هاني بتتحفنا بالجديد :)الله يعطيك العافية

انا اطلعت على الملف بشكل عام و سريع و كانت العناوين حلوة :)

و إن شاء الله عندما أقرأه بشكل مفصل ... بدي أهلكك أسئلة لأنو هالفكرة حلوة كتير و أعتقد أن الكثير لم يخض في هذا المجال :)

بالنسبة لفكرة أنو الموضوع بالانكليزي فأعتقد أنو شي طبيعي , بس ممكن إذا لاقينا الشباب متحمسين للموضوع انو أساعدك في عملية الترجمة :)

مع التحيات.

#3

أهلين أخي عادل ..

بعد زمان ، وينك ياشيخ ماعم تبين ... ;)

أشكرك على اهتمامك في الموضوع وأنا بانتظار أسئلتك .. بس أنا لساتني مبتدى بتصميم ال device drivers لأنها بصراحة بحر كبير جدا والبرمجة فيها مختلفة تماما عن برمجة التطبيقات العادية .. :'(

ولكن مع الوقت © كلشي بيصير

Coding on the Cloud and for the Cloud!

My Blog

#4

اشكرك يا هاني على اهتمامك ...

سأقوم بقراءته بأقرب وقت ان شاء الله

وأنا أضم صوتي الى صوت الأخ عادل من أجل الترجمة

#5

السلام عليكم

ممتــــــــــــاز أخ هاني.

متميز دوما. بحثت في هذا الموضوع في فترة من الفترات ولكن لم تكن لي اي خبرة ولم القى اي مرجع ولا احد لأساله في الموضوع لذا توقفت عند نقطة الصفر :D

ان شاء الله ساقرأ بحثك لاحقا - مشغول في موضوع api hook - و أكيد سيكون هناك العديد من الاسئلة ( بدك تطول حالك علينا ;) ).

بالمناسبة ان كنت تعرف مراجع أخرى في هذا الموضوع اتمنى اعلامي .

هناك حتى الأحلام أصبحت ممنوعة ...

إنه لعار أن ننتمي لهكذا أوطان ... لكن ... ربما العار أن نكون نحن أبناء لتلكم أوطان .. من يدري ؟!!

ليعلم أولئك ... إنّ الشعوب إنْ هي استيقظت تسحق ظُلامََهَا ...

There, even in dreams u r wanted

To be a programmer, how a nice dream it was

Leaving ...

أعيدوا لإسمي لونه المفضل

#6

هل تقصد بال API Hook أنك تغير بتعليمات ال API ؟؟؟؟

وأهلا وسهلا فيك وبأسئلتك ... :)

بالنسبة لل WDM أنا عندي كتابين عنهم أحدهم لمايكروسوفت وهو EBook وأيضا عندي حزمة NuMega وكني لم أشتغل بعد بحزمة NuMega التي تسهل من موضوع برمجة ال Device Driver كثيرا ..

Coding on the Cloud and for the Cloud!

My Blog

#7

السلام عليكم

شئ من هذا القبيل

ما أريده من الـ api hook هو تـتبع دالة ما و الحصول على قيم الـ parameter التابعة لها أثناء استدعاءها من قبل برنامج أخر .

مثلا :

الدوال ExtTextOutW , TextOutW,TextOutA,ExtTextOutA

أود معرفة الـ text التي تقوم باخراجها عند استدعاءها من اي برنامج كان . (هذه هي فكرة القاموس الفوري الذي يقوم بالترجمة من لغة لأخرى بمجرد مرور الماوس على نص ما في الشاشة . لدي كود بسيط عن الفكرة مكتوب بالــ vc ) . هذا ما أبحث فيه حاليا .

مثال آخر :

يمكن باستعمال الـ api hook عمل مايسمى بـ winsock hook فيمكن معرفة ماتقوم الدالة WSASend بارساله عند استدعاءها من برنامج ما ( مثلا msn messenger عند إرسال اي رسالة لشخص أخر ) , على ما أظن هي فكرة عمل البرنامج WinSock Expert

http://dxqsoft.myrice.com/download/WE03b1.zip

.الفكرة بصورة مبسطة عمل برنامج وسيط بين الـ exe المستهدف و ملف الـ dll المستدعاة منه الدالة المقصودة . يقوم برنامجنا بـالتصدي لاستدعاءات الدالة ( intercept the function calls ) ويحصل على القيم المرفقة للدالة المستدعاة ثم يعيد الصلاحيات للبرنامج المستهدف ........

كنت قد سألت في منتدى الدلفي ان كان هناك من لديه معلومات حول winsock intercept وللأسف لم يعطى للسؤال ادنى اهتمام . لكن الحمد لله حصلت على كود ( vc ) يقوم بالعملية السابقة .

ان كان لديك معلومات في هذا المجال فلا تبخل علينا ;)

هناك حتى الأحلام أصبحت ممنوعة ...

إنه لعار أن ننتمي لهكذا أوطان ... لكن ... ربما العار أن نكون نحن أبناء لتلكم أوطان .. من يدري ؟!!

ليعلم أولئك ... إنّ الشعوب إنْ هي استيقظت تسحق ظُلامََهَا ...

There, even in dreams u r wanted

To be a programmer, how a nice dream it was

Leaving ...

أعيدوا لإسمي لونه المفضل

#8
اقتباس
أود معرفة الـ text التي تقوم باخراجها عند استدعاءها من اي برنامج كان . (هذه هي فكرة القاموس الفوري الذي يقوم بالترجمة من لغة لأخرى بمجرد مرور الماوس على نص ما في الشاشة . لدي كود بسيط عن الفكرة مكتوب بالــ vc ) . هذا ما أبحث فيه حاليا .

بالنسبة لبرنامج القاموس فهو يستخدم System Wide Hook حيث يراقب رسائل الفارة في أي برنامج ومن موقع الفارة يعرف الكلمة ..

ولكن مثلا إذا أنا كتبت في الفجوال سي كلمة باستخدام TextOut هل يسستطيع برنامج القاموس معرفة الكلمة بالطريقة التي تتحدث عنها ..

قرأت مرة في النت (وهو أعتقد في كتاب) عن طريقة لمراقبة تابع API معين في برنامج أنت تحدده .. حيث يعدل في ذاكرة ال Kernel32.DLL ..

بحكم الذي قرأته عن ال WDM DeviceDriver فإن التأكد من متحولات توابع ال API في Windows NT و 2000 تتم في ال Kernel-mode والذي يتم في ال User-mode في Kernel32.DLL هو فقط وسيط لاستدعاء تابع آخر .. مثلا التابع ReadFile يتم تحويله إلى NtReadFile .. وبالتالي يمكنك مثلا في برنامجك أن تنتقل إلىmodule Kernel32.dll في الذاكرة وتعدل قليلا في التابع ReadFile من غير أن تحسسه بذلك .. وبما أنه يمكنك أن تعمله مع برنامجك فإنه يمكنك أن تفعله في برنامج آخر .. طبعا التعديل يجب أن يكون بلغة الآلة لأنه في ال run-time

إذا أردتني أن أبحث لك من جديد على هذا المثال ، فأستطيع ذلك ..

على كل هل يمكنني أن أحصل على السورس كود تبع برنامج مراقبة السوكيت ..؟؟؟

وشكرا لك ...

بالمناسبة ماهو الاسم الذي أستطيع مناداتك به هل هو فقط tmaaa ..؟؟!؟!!! :confused:

Coding on the Cloud and for the Cloud!

My Blog

#9

السلام عليكم

مشكور أخ هاني على الاهتمام

بالنسبة لفكرة القاموس انا أعلم انه يستخدم System Wide Hook

هذه فكرة نشرت في احدى المقالات :

أولا عمل mouse hook لنحصل على موقع الماوس ثم يقوم برسم مستطيل صغير في المنطقة التي يشير لها الماوس .

بعد ذلك يقوم بارسال رسالة الى النظام تعلمه بان المنطقة قد حصل لها تغيير فيقوم النظام باعادة رسم المنطقة واعادة كتابة النص -ان وجد- باستخدام الدوال الخاصة لذلك . في هذا الوقت سيقوم برنامج القاموس بالحصول على متغيرات الدالة المستدعاة من قبل النظام لكتابة النص ( وهذا الجزء يتم من خلال الـ api hook وهو الجزء الأصعب و الاهم ) .

ثم تتم ترجمة الكلمة التي تم الحصول عليها .

باختصار تتم عملية mouse hook و api hook

ان كان هناك من له اهتمام في هذا المجال فانا على استعداد لوضع ما لدي حول هذا الموضوع .

أخ هاني بالنسبة لكود winsock hook فالذي يقوم به شئ بسيط - تعديل الكود سيمكنك من مراقبة ال socket - .سارسل لك رسالة خاصة بها الموقع الذي يمكن تنزيل الكود منه , وفي الرسالة سارفق اسمي :D ( نادني tmaaa ) .

تحياتي لك .

هناك حتى الأحلام أصبحت ممنوعة ...

إنه لعار أن ننتمي لهكذا أوطان ... لكن ... ربما العار أن نكون نحن أبناء لتلكم أوطان .. من يدري ؟!!

ليعلم أولئك ... إنّ الشعوب إنْ هي استيقظت تسحق ظُلامََهَا ...

There, even in dreams u r wanted

To be a programmer, how a nice dream it was

Leaving ...

أعيدوا لإسمي لونه المفضل

#10

أخ tmaaa أنا عجبني موضوع ال API Hook يمكنك أن تفتح موضوع بذلك ونتناقش فيه بعيدا عن موضوع ال WDM ... ;)

Coding on the Cloud and for the Cloud!

My Blog

هذا الموضوع مغلق.

مواضيع مشابهة