تفکرات صفر و یکی

نوشته های من در مورد سیستم عامل، درایور نویسی، مهندسی معکوس، امنیت و هر چیز سطح پایین دیگر

تفکرات صفر و یکی

نوشته های من در مورد سیستم عامل، درایور نویسی، مهندسی معکوس، امنیت و هر چیز سطح پایین دیگر

آخرین نظرات

۶ مطلب با کلمه‌ی کلیدی «آموزش درایور نویسی» ثبت شده است

در ادامه سری آموزش هایی که در مورد درایور نویسی در ویندوز نوشته ام، این بار آموزشی در مورد نوشتن یک Filesystem Filter Driver آماده کرده ام. از عنوان آموزش مشخص است که این درایور از نوع Filter Driver است که قبلا توضیح مختصری در مورد این نوع درایورها در آموزش مربوط به Device Stack داده ام، این درایور قرار است Filesystem هایی که روی سیستم رجیستر شده یا بعدا رجیستر می شوند را مانیتور کند. در انتهای این آموزش بخشی اختصاص داده ام در مورد کار با WinDbg. تمام فرمان هایی که در این بخش آمده را قبلا در آموزش مربوط به Device Stack در موردشان توضیح داده ام. دلیل آوردن چنین بخشی این بود که قسمت هایی از این آموزش هست که به موضوعات دیگری و مفصلی مرتبط هستند. برای اینکه وارد این توضیحات مفصل نشوم ترجیح دادم با نشان دادن آن مساله در WinDbg مساله را برایتان روشن کنم. 

قبل ادامه مروری هم روی آموزش های زیر داشته باشید.

  • آرش اسلامی

موضوع اصلی آموزش امروز ما در مورد IRQL است که می توان گفت یکی مهمترین مباحث موجود در دنیای درایور نویسی در ویندوز به حساب می آید. این مبحث کمی با مساله وقفه ها گره خورده است. در واقع این گره و ابهام به خاطر این است که ماکروسافت مستندات روشنی در این زمینه ارائه نکرده و از طرفی تشابه اسمی بین IRQL و IRQ ممکن است سوالاتی از قبیل: آیا این دو یکی هستند؟ آیا مربوط به سخت افزار می شوند؟ آیا مربوط به ویندوز می شوند؟ را به وجود می آورد. حداقل این ها سوالاتی بود که تا مدتی من درگیرشان بودم تا متوجه شدم موضوع از چه قرار است. و از أنجایی که در پست های آینده با اصطلاحاتی مانند PASSIVE/APC/DPC LEVEL روبرو خواهید شد لازم است در این مورد پیش زمینه ای داشته باشید.

 

  • آرش اسلامی

در آموزش های قبلی به صورت خیلی خلاصه در مورد روش هایی که یک درایور می تواند با برنامه سطح کاربر ارتباط برقرار کند صحبت کردیم و برای یکی از این روش ها که  IOCTL بود مثالی آوردیم. در این آموزش سعی می کنم این روش ها را با جزئیات بیشتری به همراه مثال شرح بدهم. در طول آموزش موضوعات دیگری هم مطرح می شود و برای این که ساختار آموزش بهم نریزد توضیحات مربوطه را بصورت جداگانه در انتهای این آموزش آورده ام. 

  • آرش اسلامی

Device Stack چیست؟

۱۴
ارديبهشت

امروز می خواهم در مورد Device Stack مطلبی بنویسم. من خودم زمانی که با این مفهوم آشنا شدم برایم این مفهوم کمی گنگ بود. تا اینکه بعد ها روی این موضوع بیشتر کار کردم و جزئیات بیشتری از چگونه نگهداری این ساختار در ویندوز و اینکه یک IRP چه مسیری را طی میکند تا به مقصد بررسد را متوجه شدم. در این پست سعی کرده ام این مسائل را شرح دهم. از آنجایی که در نوشتن مطالب طولانی تنبل هستم تصمیم گرفتم پست های کوتاه تری بگذارم. این آموزش به دو بخش تقسیم شده یک بخش نگاه سطح بالا که بدون وارد شدن به جزئیات به موضوع پرداخته ام و بخش دوم نگاه سطح پایین که نشان داده ام چگونه با استفاده از Windbg ساختار مربوط به Deivce Stack را بیرون بکشیم.

  • آرش اسلامی

در قسمت قبل طریقه ساخت یک درایور و لود کردن آن را یاد گرفتیم، و همچنین با ابزارهایی مانند OSRLoader و DbgView آشنا شدیم. در این آموزش هم قصد داریم ببینیم چگونه میتوان درایوری نوشت که بتواند با یک برنامه سطح کاربر ارتباط برقرار کند در واقع اطلاعاتی به درایور بفرسیم و دریافت کنیم.

  • آرش اسلامی

از این به بعد بخشی از این وبلاگ به آموزش درایور نویسی در ویندوز اختصاص خواهد یافت. مهمترین دلیل این کارم نبودن منابع فارسی در این زمینه است.  و دلیل دیگر این که خودم دوست دارم بهتر این موضوع را یاد بگیرم. سعی می کنم در ابتدا یکسری آموزش های ساده بگذارم بعد وارد مباحث پیچیده تر بشوم.

خوب بریم سر اصل مطلب ...

  • آرش اسلامی