سلام.
خوب من میخوام introduction رو بنویسم.
اولین نمونه ی ویروسها ی چند شکل ویروسهایی بودن که فقط از روشهای encryption استفاده میکردن. درواقع ویروس هنگام آلوده کردن یه برنامه کد خودش رو encrypt کرده و این کد انکریپت شده رو وارد برنامه ی قربانی میکنه. حالا یک قطعه کد دکریپشن هم به برنامه قربانی اضافه میکنه تا موقع اجرا کد انکریپت شده رو دکریپت کنه تا به این ترتیب کد قابل اجرا باشه.
خوب به این ترتیب یه ویروس که بر اساس این تکنیک طراحی شده بخشهای زیر رو داره:
1) decryption code
2) encrypted body
به 1 میگیم DC و به 2 میگیم EB.
همونطور که پیداست EB در هر آلوده سازی تغییر میکنه ولی DC ثابت میمونه چون اگه DC هم انکریپته بشه به احتمال خیلی خیلی خیلی زیاد غیر قابل اجرا میشه و یا اگر هم اجرا بشه کاری که انجام میده هیچ ربطی به دکریپشن EB نداره !!! و به این ترتیب دیگه ویروس تکثیر نخواهد شد. خوب بر این اساس آنتی ویروس برای پیدا کردن ویروس فقط میتونه از DC به عنوان علامت آلوده بودن استفاده کنه چون فقط این قطعه در کپی های متفاوت ویروس ثابت باقی میمونه. حالا اگه این قطعه به اندازهء کافی بزرگ نباشه دیگه از این قطعه هم نمیشه برای پیدا کردن ویروس استفاد کرد. پس یه روش برای جلوگیری از شناسایی این ویروسها داشتن DC کوتاهه. روش دیگه که در ویروسهای پلیمورفیک بنیانگذاری شد و در متامورفیکها هم کابرد داره "اضافه کردن یه قطعه کد قابل اجرا ولی بدون تاثیر(junk code) بر رفتار DC به DC " هستش.
برای این کار مثلا nop که کد باینری اون 0x90 هستش, و کاری انجام نمیده رو به یه قسمت از DC اضافه میکنه. به این ترتیب توالی بایتهای DC هم طی هر تکثیر تغییر میکنه و در نتیجه DC هم غیر قابل ردیابی میشه. این کار در ویروسهای پلیمورفیک توسط mutation engine انجام میشه. ویروسهای metamorphic که آخر ویروسهای غیرقابل ردیابی محسوب میشن متن کد به همون زبانی که نوشته شدن رو همراه خودشون حمل میکنن.( که اصولا این کد به زبان اسمبلیه). حالا این ویروس اگر در کامپیوتری که آلودش کرده یه کامپایلر مناسب گیر بیاره کد خودشو کامپایل میکنه ولی این دفعه یه مقدار junk code به متن کد خودش اضافه میکنه و بعد نتیجهء کامپایل رو که یه ویروس جدید با همون کارکرد سابقه اجرا میکنه و . . .. به این ترتیب ویروس به مرور داره تغییر پیدا میکنه و از اونجایی که متن کد شامل هم متن کد DC و هم متن کد EB هست هر دو در حال تغییر طی تقسیم در کامپیوتر مناسب هستن. از طرفی متامورفها بازهم از روشهای انکریپشن و دکریپشن و mutation engine استفاده میکنن که دیگه یافتن اونها رو خیلی سخت میکنه. این ویروسها برای انجام این کار نیازبه یه قسمت به اسم metamorphic engineدارن.
این از intro حالا هر کدوم از قسمتهای بالا توضیحاتش میمونه برای بعد مثلا:
mutation engine.
metamorphic engine.
روشها ی موجود در آنتی ویروسها برای مقابله با هرکدوم.
جزییات و مثالها و . . .
البته توجه داشته باشید که در بعضی رفرنسها متامورفیک به ویروسی گفته میشه که میتونه پلت فرمهای متفاوتی رو آلوده کنه.این نوع از ویروسها مورد نظر نیستن.
در پایان هم بگم خیلی خوشحال میشم اگه کسی نظری یا مطلبی تو این زمینه داره اینجا بنویسه تا گفتگو سریعتر به قسمتهای داغ برسه!