OS Internals
3.45K subscribers
6 photos
29 videos
12 files
84 links
مقاله و فیلم آموزش مدیریت و برنامه‌نویسی سیستم‌های عامل، شبکه و امنیت اطلاعات.

مقالات من در ویرگول:
https://virgool.io/@akazemi

ویدئوهای کانال در آپارات:
https://www.aparat.com/oxaa55

ارتباط با مدیر کانال از طریق:
@akazemi67
Download Telegram
این ویدئو یکی از جلسات درس آزمایشگاه سیستم‌عامل در دانشگاه علم و صنعت است که در آن ابتدا کاربرد‌های #KernelModule در #Linux، نحوه‌ی اجرا شدن ماژول‌های کرنل و تفاوت آن‌ها با برنامه‌های عادی، تفاوت Privilege سطح کرنل و سطح کاربر و همچنین کاربرد #ftrace در بررسی رویدادهای کرنل و #hook توابع آن، بیان می‌شود. پس از این توضیحات برای آشنایی با Ringهای پردازنده و کنترل Privilege دستورات در سطح کاربر و سطح هسته، یک برنامه‌ی سطح User برای اطلاع و تغییر در فعال بودن/نبودن وقفه در لینوکس نوشته و سعی می‌شود این کد اجرا شود که با دریافت #GPF یا General Protection Fault‌ در زمان رسیدن به دستور اسمبلی cli مواجه می‌شود. همین کد برای تمرین نوشتن #LKM و آشنایی با نحوه‌ی نصب کردن یک ماژول جدید در لینوکس به صورت یکLKM ساده نوشته شده و اجرای آن تست می‌شود. سپس به بررسی نحوه‌ی trace کردن برنامه‌ها در لینوکس پرداخته و ابتدا به کمک دستورات ltrace/strace برنامه‌ای را تا سر فراخوانی System Call رهگیری می‌کنیم. در ادامه برای رفتن به دل کرنل لینوکس و بررسی توابع اجرا شده توسط System Callها ابتدا کاربرد ftrace و استفاده از #tracefs نمایش داده شده و سپس به تشریح امکان hook کردن توابع کرنل به کمک آن می‌پردازیم. در پایان نیز به کمک ftrace چند System Call را hook کرده و برای تمرین استفاده از این امکان، دو مثال جلوگیری از اجرای پروسه‌ها درون کرنل لینوکس با hook کردن #execve و تغییر در نحوه‌ی خواندن/نوشتن فایل‌ها و پیاده‌سازی encryption در سطح کرنل با hook کردن توابع مربوط به File System را بررسی می‌کنیم.

https://aparat.com/v/otF1i
==============
https://t.me/OxAA55