PDA

View Full Version : موضوع براي پروژه ترم آخر



shahmohammadi
شنبه 27 اسفند 1390, 10:44 صبح
با سلام خدمت دوستان و اساتيد عزيز.
خواستم بدونم براي پروژه پايان ترم چه موضوعي در رابطه با سيستم عامل و يا كرنلش مناسب هست.
در قسمت امنيت نرم افزار هم اين سوال رو براي اون موضوع پرسيدم.
خودم هم دارم جستجو مي كنم و گفتم كه از تجربه شما اساتيد هم استفاده كنم. (البته فقط توي انتخاب موضوع).
تشكر.

r00tkit
شنبه 27 اسفند 1390, 20:21 عصر
در ایران توی دورهی کارشناسی پیاده سازی یه چیز هم در حد خیلی خوب قبول می شه
می تونی یه درایور بنویسی مثلا یه NDIS که رول می گیره و ....

موفق باشی

shahmohammadi
شنبه 27 اسفند 1390, 21:34 عصر
ممنون.
تا حالا اين موضوع به ذهنم نرسيده بود.
من تجربه اي توي اين كار ندارم. نمي دونم چه قدر مهم است. ولي فكر نكنم اين طور كه شما توصيفش كرديد استادام قبول كنن. چون انتظارشون هم از من بالاست.
و مثل خودم انتظار دارند كه سنگ تموم بگذارم. (ترم بعد شايد ترم آخرم باشه).
در هر صورت هم در مورد اين موضوع يه كنكاشي مي كنم و هم دنبال موضوعات ديگر مي گردم تا از بينشون يك موضوعي رو انتخاب كنم.
باز هم تشكر.

r00tkit
شنبه 27 اسفند 1390, 22:46 عصر
ولي فكر نكنم اين طور كه شما توصيفش كرديد استادام قبول كنن

این طوری که من توصیف کردم نیست ، کد کرنل تا حالا زدی؟

shahmohammadi
یک شنبه 28 اسفند 1390, 07:33 صبح
کد کرنل تا حالا زدی؟
نه. ولي به نظرتون اگه همين درايور رو با چند هسته پردازنده و به صورت موازي بنويسم چي. (البته هنوز چيزي در اين مورد نمي دونم.)
من زياد پروژه آخر ترم نديدم. و اون چند تايي هم كه ديدم تعداد صفحاتشون زياد بود. حالا اگر بخواهم درايور بنويسم، به نظرتون چه چيز هايي رو به عنوان توضيح بايد بدم. مراحل ساخت، يك سري مقايسه ها يا... .
باز هم ممنون.

r00tkit
یک شنبه 28 اسفند 1390, 10:01 صبح
نوشتن درایور نیاز به دانش بالایی از کرنل ویندوز داره ( البته تا اینجا منظورم نوشتن درایور ها نرم افزاری هستش ( از خودم:)) ) مثلا همون NDIS
و نیاز به دانش بالایی در مورد برنامه نویسی کوچک ترین اشتباه باعث BSOD می شه

زمان خیلی زیادی صرف می شه تا بتونی اولین درایور که یه کار بدرد بخور، انجام می ده رو بنویسی و..


ولي به نظرتون اگه همين درايور رو با چند هسته پردازنده و به صورت موازي بنويسم چي. (البته هنوز چيزي در اين مورد نمي دونم.)
بنویسی ؟ الان فکر کنم داری می نویسی اگه منظور اجرا شدن موازی کد های درایورت هستش ، بازم همین الان سیستم زمان بندی ویندوز این کار رو برات انجام می ده و موازی داره کار می کنه
و این یکی از مشکلات اصلی تو شاید بشه ( مباحث IRQL , Spin lock و.... )

به عنوان شروع می تونی یه درایوری بنویسی که از user یه عدد رو به عنوان port می گیره و ان پورت رو بلاک می کنه ( یه firewall )

در مورد مستندات: انقدر ر زیاد هستش برای تحویل دادن (توضیح هر تکنولوژی که استفاده کردی و.... )

منابع اموزی هم خیلی خیلی کم هستش و کسی هم نیست کمکت کنه باید ( مثل c# و.. نیست :))
من خودم دوست دارم یه vm بنویسم اما وقتش رو ندارم ( هنوز هم زیاد مونده به ترم اخرم :) )

در کل موفق باشی
امضا : پست در بین برف و سرما :)

__Genius__
دوشنبه 29 اسفند 1390, 15:38 عصر
ایده برای پروژه های این مدلی موجود هست ، اما بستگی زیادی به هدف و دانش شخصی داره که قصد داره برنامه رو تحویل بده .
یک نمونه ساده که نمونه های کدش هم زیاد موجود هست نوشتن درایوری برای مشخص کردن Trust بودن یک فایل برای اجرا شدن هست (در نظر میگیریم فقط فایلهای اجرائی با پسوند EXE) ، که همون گزینه ای هست که در نرم افزارهای آنتی ویروس هم دیده میشه که اجازه Allow,Deny به کاربر می دن برای اجرای یک فایل و WhiteList-BlackList کردن اون . (که باید Notification رو Setup کنید و ...)
مورد دیگه هم مثلاً پیاده سازی قابلیت run-time scanning آنتی ویروس ها هست .
یا اینکه اگه از همون مورد اولی استفاده می کنید (Process Execution Monitoring) یه سری قابلیت با خلاقیت خودتون بکار ببرید و یه سری فایل ها با ویژگی های خاص رو مارک بکنید به عنوان "Threat" .
اما به دلیل اینکه کدنویسی این مدل پروژه ها قاعدتاً زیاد هست و روند تولیدی داخل این مدل ماژول ها کاملاً متفاوت با دیگر مدل های برنامه نویسی هست ، بهتره سرصبر و حوصله پروژه ای رو تحویل بدید که بعدها هم بکار بیاد تا صرف به چشم اومدن استاد یا تنها برای کسب نمره .