ویرگول
ورودثبت نام
سید عمید قائم مقامی
سید عمید قائم مقامیبرنامه نویسی سیستم ویندوز و مهندسی معکوس و علاقه مند به آموزش.
سید عمید قائم مقامی
سید عمید قائم مقامی
خواندن ۱ دقیقه·۹ روز پیش

درایور نویسی سطح کرنل قسمت اول (آماده سازی، همراه با کد نمونه):

پیکربندی مهم‌ترین مرحله برای این است که درایور بتواند به‌درستی بارگذاری (Load) شود. معمولاً پیشنهاد می‌شود که تست درایور را روی یک کامپیوتر جدا از سیستم توسعه انجام دهید.

1.فعال کردن بارگذاری درایورهای Test Signed

برای اینکه ویندوز اجازه دهد درایورهایی که فقط Test Signing شده‌اند را بارگذاری کند، این دستور را در Command Prompt با دسترسی Admin وارد کنید:

bcdedit /set testsigning on

2.فعال کردن Kernel Debugging

برای فعال شدن دیباگ کرنل (که برای توسعه و بررسی درایورها لازم است):

bcdedit -debug on

بعد از اجرای این دو دستور، سیستم باید ری‌استارت شود تا تغییرات اعمال شود.


از این آدرس :
https://learn.microsoft.com/en-us/sysinternals/downloads/debugview
DebugView رو دانلود کنید. با این ابزار میتونی خروجی رو ببینیم.

(دیباگ ویو رو باید با دسترسی ادمین اجرا کنید، و در ویندوز های ۳۲ بیت، دیباگ ویو ۳۲ بیت استفاده شود و در ویندوز های ۶۴ بیت نسخه ۶۴ بیت استفاده شود)


مراحل زیر را انجام بدین تا یک درایور سطح کرنل نوشته و با دستور نشان داده شده درایور رو در کرنل نصب و راه اندازی و متوقف کنیم.

1.روی پروژه راست کلیک کنید.

2. یک فایل C بسازید.

3.با نام Main.c ذخیره کنید.

  1. کد نمونه

#pragma warning (disable : 4100) #include<ntifs.h> NTSTATUS UnloadDriver(PDRIVER_OBJECT pDriverObject) { DbgPrintEx(0, 0, "goodbye!"); return STATUS_SUCCESS; } NTSTATUS DriverEntry(PDRIVER_OBJECT pDriverObject, PUNICODE_STRING pRegistryPath) { pDriverObject->DriverUnload = UnloadDriver; DbgPrintEx(0, 0, "Hello"); DbgPrintEx(0, 0, "Welcome to the first Driver!"); return STATUS_SUCCESS; }

5.پروژرو بیلد میکنیم.

6.قسمت اول: به آدرس فایل sys میرویم.

قسمت دوم: با دستور create ماژول را ران میکنیم.

  1. با دستور start .راه اندازی میشود

  1. در دیباگ ویو goodby! نمای داده میشود.

Telegram: @CaKeegan
Gmail : amidgm2020@gmail.com

kernelدرایور
۱
۰
سید عمید قائم مقامی
سید عمید قائم مقامی
برنامه نویسی سیستم ویندوز و مهندسی معکوس و علاقه مند به آموزش.
شاید از این پست‌ها خوشتان بیاید