بخشی از مقاله
مقایسه ضد ویروسها
ضد ویروس ها با استفاده از شیوه های متفاوتی ویروس ها را شناسایی می کنند . یک روش ، استفاده از امضای ویروس (Virus Signature) در فایل هاست.
بهتر است کمی در مورد روش کار نرم افزارهای ضد ویروس بدانید . ضد ویروس ها با استفاده از شیوه های متفاوتی ویروس ها را شناسایی می کنند . یک روش ، استفاده از امضای ویروس (Virus Signature) در فایل هاست.
هرگاه یک فایل توسط ویروس ها آلوده شود بخشی از آن تغییر پیدا می کند . هر ویروس تغییر خاص و منحصر به فردی را در فایلها ایجاد می نماید .
ضد ویروس ها می توانند با شناسایی این تغییر و مقایسه آن با لیست امضای ویروس هایی که در پایگاه اطلاعات (Database) خود دارند به این امر پی ببرند که فایل توسط چه ویروسی آلوده شده .
ولی از آنجا که ویروس هایی وجود دارند که برای فرار از شناخته شدن امضای ثابتی ندارند و در واقع از سیستم پیشرفته ای استفاده می کنند ضد ویروس ها مجبورند شیوه های دیگری را نیز به کار بگیرند تا ویروسها را شناسایی کنند . یکی از این شیوه های کمکی ، بررسی رفتار فایلها می باشد .
به عنوان مثال هنگامی که ویروس یک فایل را آلوده کرد ، سعی می کند خودش را تکثیر کند . این عمل ممکن است باعث شود ویروس فایل آلوده شده را کپی کند و یا سعی کند قسمتی از فایل های دیگر را تغییر دهد تا آنها نیز به ویروس آلوده شوند .
همچنین ویروس ممکن است شروع به تخریب و کد نمودن فایلها و یا بخش هایی از دیسک سخت (Hard Disk) نماید . به همین دلیل ضد ویروس های پیشرفته در بیشتر موارد از این طریق می توانند حتی ویروسهایی را که امضایشان در لیست دیتابیس آنها وجود ندارد ، شناسایی کنند .
بدون شک این امر که ضد ویروس رفتار کلیه فایلهای سیستم را تحت نظر بگیرد باعث پایین آمدن سرعت سیستم خواهد شد . البته میزان این کند شدن به مشخصات سخت افزاری کامپیوتر مورد استفاده بستگی خواهد داشت . معمولا داشتن حافظه رم (Ram) بیشتر و پردازنده (CPU) سریعتر باعث می شود این افت سرعت چندان به چشم نیاید .
ضد ویروس ها همچنین توانایی شناسایی کرم ها و تروجان ها را نیز دارند. موثر ترین روش جلوگیری از آلوده شدن یک کامپیوتر به تروجان ، استفاده از یک ضد ویروس قدرتمند و همواره به روز (Up To Date ) می باشد .
به این ترتیب حتی اگر فایلهای آلوده به تروجان در قالب تصویر یا موسیقی ویا هر فایل دیگر وارد سیستم شوند ، توسط ضد ویروس شناسایی خواهند شد.
نکته مهمی که در مورد ضد ویروس ها نباید فراموش کرد این است که حتی بهترین و قدرتمند ترین ضد ویروس ، تا زمانی که از طریق شرکت سازنده به روز (Update) نشود ، توانایی شناسایی و مقابله با ویروس های جدید را نخواهد داشت . این ارتقا به طور معمول از طریق اینترنت و به صورت رایگان (در صورتی که نرم افزار را خریداری کرده باشید ) قابل انجام است .
ضد ویروس های پیشرفته نظیر Norton Anti Virus توانایی اسکن کردن ایمیل های ورودی به کامپیوتر را نیز دارند و به این طریق می توانند از ورود ویروس های منتشر شونده از طریق ایمیل ها و کرم ها جلوگیری کنند .
یک کامپیوتر بدون ضد ویروس و یا با ضد ویروس ارتقا نیافته ، ریسک امنیتی بسیار بالایی دارد و دیری نمی پاید که به انواع نرم افزارهای مخرب و خطرناک آلوده شود . در واقع نصب ضد ویروس اولین و مهم ترین قدم در راستای افزایش امنیت هر کامپیوتر است .
پس در صورتی که یک ضد ویروس بر روی سیستم خود نصب نموده اید ارتقای آن را فراموش نکنید . در غیر این صورت ضد ویروس توانایی محافظت از کامپیوتر را نخواهد داشت و فقط باعث افت سرعت خواهد بود . انواعی از ضد ویروس ها در بخش دانلود و همچنین از صفحه اصلی سایت قابل دریافت هستند
مقدمه
امروزه با توجه به تعدد ویروس های كامپیوتری در كشور،كه اغلب آنها نیز ایرانی می باشند، شناخت و جلوگیری از تخریب آنها مفید ولازم به نظر می رسد . پیش از هر گونه بحث فنی لازم است توضیحی در مورد ویروس و خوب وبد بودن ویروس سازی از دیدگاه مثبت آن بررسی شود تا مبادا افراد بد گمان و احتمالا متنفر از ویروس ، سیل بدو بیراه خود را نثار ویروس نویسان! كنند بد نیست بدانیم جدای از هنر و تكنیك زیبای عملكرد ویروس های مختلف و شیرینی جدال با ویروس یابها ،
خود ویروس عاملی برای حمایت از برنامه های كاربردی می توامند به شمار آید، چرا كه اولین ویروس ها در راه جلوگیری از كپی برداریهای غیر مجاز طرح و نوشته شده و زمان فعالیت آن را موكول به وقتی كرده اند كه فرد خاطی از " خواهش عدم كپی غیر مجاز" نیاز به گوش مالی دارد ! تا شاید همین فرد عادت به خرید و تهیه ی برنامه های مورد استفاده خود از طریق اصولی بنماید. واما ویروس ها برنامه هایی هستند كه به شكل پنهانی، موقع اجرا شدن برنامه آلوده خود را به برنامه های اجرایی نظیر فایل های COM و EXE می چسبانند و معمولا بدون اینكه تاثیری در كار اصلی برنامه آلوده بگذارند، منتظر زمان فعالیت نهایی یا برقراری شرط خاصی می شوند .
حال این فعالیت می تواند بزرگتر كردن فایلهای مختلف DATA باشد ، یا آلوده كردن فایلهای اجرایی و یا از بین بردن اطلاعات PARTITION TABLE، معدوم كردن اطلاعا ت با ارزش یا از كار انداختن فایل های اجرایی و ... باشد . ولی در هر حال یك چیز در اكثر ویروس ها مشترك می باشد و آن انتقال ویروس از فایل های آلوده به فایل های سالم است . در این مقاله سعی شده است كه نحوه عملكرد یكی از انواع ویروس های كامپیوتری بیان شود كه قبل از مطالعه لازم است به نكته ذیل توجه گردد.
افرادی كه مایل به مطالعه مقاله می باشند لازم است كه :
۱- با زبان اسمبلی آشنا باشند .
۲- به DEBUG و دستورات آن مسلط باشند .
۳- از اطلاعات برنامه نویسی سیستم در حد آشنایی با Header فایل های اجرایی برخوردار باشند .
بنابراین اگر ملاحظه می شود كه روشها بسیار خلاصه مطرح شده، تنها بدلیل عدم دسترسی عمومی به اطلاعاتی كه ممكن است خطرناك باشد،است و هدف، ارائه روش بوده و باقی جزئیات بر حسب توان با خود برنامه نویس است .
(توضیح اینكه ویروس ها برنامه كامپیوتری هستند و نه چیز دیگری و می توانند با انواع زبان های برنامه سازی Assenbly، C++، Pascal،Basic، ... طراحی شوند و ما از قویترین زبان یعنی اسمبلی جهت اینكاراستفاده كرده ایم .) قبل از بیان الگوریتم كلی ویروس نویسی بهتر است به توضیح یكسری عناوین زیر بپردازیم :
انواع دستكاری و تخریب ویروس های كامپیوتری
صرف نظر از ویروس هایی كه كاربران را مورد لطف قرارداده و تنها با صدورپیامی، نمایش تصویری و یا پخش موزیكی حضور خود را اعلام می كنند،سایر ویروس ها به گونه های مختلف باعث نابودی اطلاعات و در برخی موارد باعث خرابی سخت افزار كامپیوتر می شوند.
در زیر نمونه هایی از خسارات ویروس ها بیان می شود:
الف: اختلال در كار سیستم(تخریب نرم افزاری)
در این حالت ویروس با ایجاد خطا دربرنامه موجب اختلال در اجرای آن می شود. این اختلال گاه همراه با تصویری بر روی صفحه نمایش و یا صدای خاصی بلندگو یا قفل شدن كامپیوتر می باشد .
بعضی از دلایل اختلال در سیستم بدلیل ویروس ها عبارتند از:
۱-خطاهای برنامه نویسی توسط برنامه نویس ویروس
۲ - ناسازگاری ویروس با سیستم یا نرم افزارهای نصب شده بر روی آن
۳- تخریب اطلاعات كه شامل حذف، تغییر ویا اشغال و تكثیر در حافظه
۴- اختلال عمدی سیستم توسط ویروس(اهداف نویسندگان ویروس) كه به عنوان مثال می توان به كندی سرعت سیستم اشاره كرد.
ب:تخریب سخت افزرای
عده ای معتقدند كه ویروس ها نمی توانند به سخت افزار آسیب برسانند وتا به امروز، هیچ ویروسی پیدا نشده است كه كه این كار را انجام دهد. ولی در خلاف انتظار از بین بردن سخت افزار توسط برنامه های نرم افزاری امكان پذیر و عملی است . گرچه خسارات سخت افزاری در موارد اندكی توسط ویروسها وجود دارد ولی باید آنها را جدی گرفت . به عنوان مثال كامپیوترهای سری آمیگا از شركت كمو دور، به خاطر نداشتن كنترل در قسمت های مختلف در مقابل ویروس آسیب پذیرند.
در این كامپیوتر ها می توان به كمك نرم افزار ،موتور دیسك گردان را از حركت باز داشت و همزمان فرمان خواندن یك تراك كه وجو ندارد ، را به هد داد به این ترتیب هد به دیواره های دیسك گردان برخورد كرده و می شكند . نمونه دیگر این است كه CPU و Icهای آمیگا از جمله اگنس ، دنیس و پائولا از نوع CMOS بوده و در مقابل الكتریسیته حساس هستند .
اگر همزمان به تمام ورودیهای بیت یك اعمال می شود ولتاژ اضافی باعث خرابی ICها می شود.به كمك یك برنامه كوتاه چند خطی به زبان ماشین می توان كلیه ثباتهایی كه به نام CPU می روند را حاوی بیت یك نمود و CPU را خراب كرد . در رایانه های شخصی ویروس می تواند هد خواندن و نوشتن دیسك گردان را روی یك تراك داخلی ، كه وجودندارد قرار بدهد. در بعضی از دیسك گردانها، اینكار باعث می شود كه هد ، به بستی در داخل دیسك گردان گیركندو فقط با باز كردن دیسك گردان و جابه جا كردن هد با دست ،
مشكل حل می شود. ویروس می تواند تراك صفر دیسك را نابود كند در اینصورت ، این دیسك دیگر قابل استفاده نیست یا اینكه ویروس بطور مكرر هد از سیلندر بیرونی به سیلندر داخلی حركت دهد این امر سبب سایش ونهایتا خرابی دیسك خواهد شد . در اینجا ممكن است مستقیما چیزی تخریب نشود ولی باعث فرسودگی می شود.
برای مثال ویروس AMP۲P كه روی فایل CAMMAND.COM ویندوز ۹۵ وجود دارد ،قادر است تنظیم اصلی كارخانه را تغییر دهد و ویروسی كه بتواند اینكار را انجام دهد قادر است به تمام اجزای سیستم دسترسی داشته و آنها را خراب كند . این ویروس معمولا هارد دیسك را دچار تعدادی بد سكتور می كند ویا تراك صفر را از كار می اندازد كه با فرمت فیزیكی مجدد نیز دیسك قابل اصلاح نیست . تا چندی قبل ویروس ها فقط فایل ها را خراب می كردند كه معمولا چاره اینكار آسان بود ولی اكنون ویروس ها به آنچنان توانایی رسیده اند كه قادرند سخت افزار سیستم را مورد هدف قرار دهند كه در این صورت خسارات ایجاد شده شدید و جبران آن سنگین است . تازه ممكن است پس ازتعویض قسمت خراب شده ، ویروس مجددا آنرا تخریب كند.
ساختار كلی فایل های COM وEXE تحت DOS
ساختار كلی فایل های اجرایی از نوع COM تحت DOS
با توجه به شكل ، مشخص می شود كه معمولا و نه همیشه اولین دستور از فایل های اجرایی COM، حاوی یك آدرس پرش (Jump) می باشد كه اجرای برنامه را به مكان دیگری از داخل حافظه انتقال می دهد و سپس دستورات اصلی برنامهاز مكان XXXXX در شكل فوق آغاز می گردد.اما اگر همین آدرس پرش اولیه را بتوانیم طوری تغییر دهیم كه به ابتدای برنامه خودمان منتقل شود .
می توان گفت كه نصف كار آلوده سازی را انجام داده ایم . بصورت كلی جهت انجام این كار ابتدا آدرس پرش اولیه XXXXX را در مكانی از حافظه ذخیره كرده (برای استفاده بعدی ) و سپس آدرس شروع برنامه خود را درآن قرار می دهیم . خوب تا اینجا توانسته ایم كنترل اجرایی فایل های COM را بدست گیریم . سپس كافی است در داخل ویروس عملیات مربوط به یافتن فایل های اجرایی غیر آلوده ، درستكاری آنها و انجام یكسری تخریب ها ( چاپ یكسری مطالب جهت ترساندن كاربر معرفی خود) و نهایتا برگشت به آدرس اولیه پرش XXXXX جهت اجرای عادی فایل آلوده شده مراجعه كرده تا برنامه ازاین پس روال عادی اجرایی خود را انجام دهد.
ساختار كلی فایل های اجرایی از نوع EXE تحت DOS
ساختار كلی فایل های EXE پیچیده تر است . طبق شكل،تمام فایل های EXE دارای یك Header یا عنوان بوده كه شامل اطلاعات تخصصی فایل اجرایی نظیر مشخصه فایل،اندازه واقعی فایل،آدرس های Data Segment،Code Segment و..... می باشد. بنابراین بر خلاف فایل های COM كه اولین دستور از آنها حاوی آدرس شروع برنامه است ، در این فایل ها بایت های ۲۰و۲۲ در داخل Header حاوی آدرس شروع برنامه است و چون فایل های EXE از نظر اندازه می توانند خیلی بزرگتر از COM باشند، این آدرسها شامل SEGMENT:OFFSET است
با توجه به توضیح فوق در مورد نحوه آلوده سازی فایل های COM كافی است آدرس های X۱:X۲ را به ابتدای برنامه خود تغییر داده وسپس در پایان كار نیز به محل اولیه X۱:X۲ باز گردیم . اما این نكته قابل ذكر است كه بدلیل پیچیدگی ساختار فایل های EXE، آلوده سازی اینگونه فایل ها از فایل های COM مسكلتر است .