برترین مقالات کامپیوتر

برترین مقالات کامپیوتر

برترین مقالات کامپیوتر

برترین مقالات کامپیوتر

آشنایی با عملکرد ویروسهای مقیم در حافظه

 

ویروسهای مقیم در حافظه همان طور که از اسم آنها بر می آید با قرار گرفتن در حافظه سیستم شروع به تکثیر و آلوده سازی می کنند. به این ویروسها ویروسهای با عملکرد غیر مستقیم نیز می گویند .

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

 مقایسه عملکرد ویروسهای مقیم و غیر مقیم :

ویروسهای مقیم در حافظه در مقایسه با ویروسهای غیر مقیم دارای سرعت تکثیر بیشتری هستند ولی در مدت زمانی طولانی ممکن است تعداد کمتری از فایلها را آلوده کنند. به این ترتیب که ویروسهای غیر مقیم تنها در صورتی که اجرا شوند شروع به آلوده سازی سیستم می کنند و تا وقتی که فایل آلوده به این گونه ویروسها اجرا نشود شروع به تکثیر نمی کنند ، بنا براین دارای سرعت تکثیر پایینی هستند . اما از آنجا که بعد از اجرا شدن بر اساس جستجوی فایل عمل آلوده سازی را انجام می دهند در مدت زمان طولانی ممکن است کل فایلهای کامپیوتر را آلوده کنند.

در عوض ویروسهای مقیم در حافظه پس از مقیم شدن به محض اینکه فایلی در دسترس قرار گیرد آن را آلوده می کنند ، بنا بر این دارای سرعت تکثیر بالایی هستند اما از آنجا که تنها بعضی از فایلهای اجرایی آن هم بیشتر به هنگام اجرا شدن در دسترس ویروس قرار می گیرند ، لذا از این نظر در طولانی مدت ممکن است تعداد کمتری فایل را آلوده کنند.

 مزایای ویروسهای مقیم در حافظه بر ویروسهای غیر مقیم :

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

همچنین بعضی از ویروسهای مقیم در حافظه هنگامی که خودشان در حافظه مقیم باشند با در اختیار گرفتن توابع  خاصی از وقفه های DOS مقادیر اولیه اندازه تاریخ و زمان فایل های آلوده به همان ویروس را نشان می دهند و به این ترتیب نمی گذارند که کاربر به واسطه تغییر اندازه فایل یا احتمالا تغییر تاریخ و زمان فایل متوجه آلوده بودن آن شود لذا باز هم احتمال کشف شدن ویروس توسط کاربر کاهش می یابد.

 نکته : بعضی از ویروسهای مقیم در حافظه قبل از اینکه در حافظه قرار بگیرند مانند ویروسهای فایلی با عملکرد مستقیم به جستجوی فایل می پردازد و تعدادی از فایلها (معمولا فایلهای سیستمی) را آلوده می کنند و سپس در حافظه مقیم می شوند.

 ساختار کلی ویروسهای مقیم در حافظه :

ویروسهای مقیم در حافظه دارای دو بخش هستند یک بخش غیر مقیم که قبل از اینکه ویروس در حافظه مقیم شود اجرا می شود و بخش دیگر پس از مقیم شدن ویروس در حافظه. بخش اول هنگامی اجرا می شود که فایلی آلوده به ویروس توسط کاربر اجرا شود و وظیفه تخصیص حافظه و قرار دادن ویروس در حافظه و انتقال بردار وقفه    مورد نظر را به ویروس بر عهده دارد . اما بخش دوم زمانی اجرا می شود که برنامه ای با فراخوانی وقفه ای که در اختیار ویروس است بخواهد کار خاصی را انجام دهد . در این حالت ویروس که سر راه دسترسی به وقفه مزبور نشسته است فعال می شود و عملیات تکثیر تخریب یا مخفی کاری (برای جلوگیری از کشف ویروس توسط کاربر) را انجام می دهد . در اینجا به توضیح مراحل بخش اول ( غیر مقیم ) می پردازیم :

1- تست مقیم بودن ویروس در حافظه:

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

  2- تخصیص حافظه :

ویروسها به دو روش کلی در حافظه مقیم می شوند :

1 – با استفاده از وقفه 27h یا تابع 31h از وقفه 21h

2 – با استفاده از دستکاری زنجیره MCB(Memory Control Black) در حافظه .

در روش اول پس از اینکه قسمت غیر مقیم اجرا شد ویروس با استفاده از فراخوانی وقفه 27h و یا تابع 31h از وقفه 21h اجرای خود را خاتمه می دهد و به صورت مقیم در حافظه قرار می گیرد ویروسهایی که از این روش استفاده می کنند بخش تخصیص حافظه را خودشان انجام نمی دهند و این بخش را سیستم عامل با توجه به پارامترهای ورودی انجام می دهد . پس بخش تخصیص حافظه فقط مربوط به ویروسهایی است که از روش دوم برای مقیم شدن استفاده می کنند.

در روش دوم ویروسها ابتدا یک قسمت خالی از حافظه را برای اینکه کدشان را در آن قرار دهند پیدا می کنند (پیدا کردن فضای خالی در حافظه نیز دارای روشهای متنوعی است) سپس به صورت دستی در ابتدای بلاک تخصیص یافته DTA را تشکیل می دهند و بعد با دستکاری زنجیره MCB خود را در وسط یا انتهای این زنجیره  قرار می دهند این عملیات باعث می شود که این قسمت از حافظه به ویروس اختصاص داده شده و توسط برنامه های دیگر اشغال نشود.

  3- کپی ویروس در حافظه :

این بخش مخصوص آن دسته از ویروس های مقیم در حافظه است که از روش دستکاری زنجیره MCB برای تخصیص حافظه استفاده می کنند . در این قسمت ویروس از ابتدا تا انتهای خود را در بلاک اختصاص داده شده در حافظه کپی می کند.

  4- تغییر بردار وقفه مورد نظر و اشاره آن به ویروس :

در این قسمت ویروس با دستکاری آدرس وقفه مورد نظر در جدول بردار وقفه ها که از آدرس 0000:0000 شروع می شود آخرین مرحله مقیم شدن را انجام می دهد . معمولا ویروسها وقفه های 21h و 9h , 13h را در اختیار می گیرند . ویروسها با در اختیار گرفتن وقفه 21h برای عملیات تکثیر و مخفی کاری وقفه 9h برای عملیات تخریبی دیسک ها یا جلوگیری از دسترسی کاربر به اطلاعات دیسک ها استفاده می کنند در این بخش ویروس آدرس وقفه های مورد نظر خود را از جدول بردار وقفه ها برداشته و درون قسمتی از ویروس کپی شده در حافظه ذخیره می کند و به جای آن آدرس بخش مقیم خود را قرار می دهد در نتیجه هر بار که برنامه ای این وقفه ها را فراخوانی کند ابتدا بخش مقیم ویروس اجرا شده و پس ار آن وقفه اصلی (که آدرس آن درون بخش مقیم ویروس توسط بخش غیر مقیم ذخیره شده است)اجرا می شود.

  5- خاتمه اجرای بخش غیر مقیم ویروس و اجرای برنامه اصلی فایل آلوده :

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

نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد