روش‌های لود شدن درایورهای کرنل (Kernel Drivers)

در سیستم‌عامل‌ها (به‌ویژه ویندوز و لینوکس) بسته به معماری سیستم‌عامل و نوع درایور روش لود می‌توانند متفاوت باشند. در ادامه، روش‌های اصلی بارگذاری درایورها در کرنل را بررسی می‌کنم:
🔵 در ویندوز (Windows):
1. لود شدن از طریق Service Control Manager (SCM)

ویندوز از SCM برای مدیریت سرویس‌ها و درایورها استفاده می‌کند.

درایورها در رجیستری در مسیر زیر تعریف می‌شوند:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<DriverName>

در اینجا، کلید Start مشخص می‌کند درایور در چه زمانی بارگذاری شود (Boot، System، Manual، ...).

مقدار توضیح
0 لود درایور در زمان بوت شدن بوت‌لودر (BOOT_START)
1 لود درایور در زمان لود شدن کرنل (SYSTEM_START)
2 لود دستی توسط سیستم یا کاربر
3 لود دستی فقط با دستور صریح
4 غیر فعال (Disabled)


2. لود از طریق NtLoadDriver

این API سیستمی که برای لود دستی درایور از فضای User-mode استفاده می‌شود.

ابزارهایی مانند sc.exe, OSRLoader یا برنامه‌های سفارشی از این API استفاده می‌کنند.

3. لود از طریق فریم‌ورک‌های درایور (مانند KMDF/UMDF)

این Windows Driver Frameworks اجازه می‌دهند درایورها به صورت مدرن‌تر و کنترل‌شده‌تر لود شوند.

4. لود توسط بدافزار یا rootkit

گاهی از تکنیک‌هایی مانند بارگذاری درایور unsigned از طریق آسیب‌پذیری، استفاده از CVEها، یا Patch کردن Kernel Memory برای بای‌پس کردن امضا استفاده می‌شود.

🟢 در لینوکس (Linux):
1. لود در زمان بوت توسط initramfs/initrd

برخی ماژول‌های کرنل (درایورها) در مرحله بوت اولیه لود می‌شوند.

پیکربندی‌ها معمولاً در /etc/initramfs-tools/ یا /boot/ وجود دارند.

2. لود خودکار توسط udev

زمانی که یک سخت‌افزار شناسایی می‌شود، udev به صورت داینامیک ماژول مناسب را بارگذاری می‌کند.

با دستور modprobe یا insmod می‌توان به صورت دستی نیز ماژول را بارگذاری کرد.

3. لود دستی:

با ابزارهای:

modprobe <module>

insmod <module.ko>

و حذف با:

rmmod <module>

modprobe -r <module>

4. لود از طریق فایل /etc/modules

برای لود شدن خودکار ماژول‌ها در زمان بوت.

🛡 نکته امنیتی:

لود شدن درایور کرنل (به‌ویژه در ویندوز) نیاز به دسترسی سطح کرنل یا Administrative privileges دارد. سوءاستفاده از این مکانیزم می‌تواند باعث اجرای کد با دسترسی بالا و ساخت rootkit شود.

#آکادمی_روزبه

Comments

Be the first to add a comment