آشنایی با کار ویروس ها برای ویروس کشی

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

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

واما ویروس ها برنامه هایی هستند که به شکل پنهانی، موقع اجرا شدن برنامه آلوده خود را به برنامه های اجرایی نظیر فایل های COM و EXE می چسبانند و معمولا بدون اینکه تاثیری در کار اصلی برنامه آلوده بگذارند، منتظر زمان فعالیت نهایی یا برقراری شرط خاصی می شوند . حال این فعالیت می تواند بزرگتر کردن فایلهای مختلف DATA باشد ، یا آلوده کردن فایلهای اجرایی و یا از بین بردن اطلاعات PARTITION TABLE، معدوم کردن اطلاعا ت با ارزش یا از کار انداختن فایل های اجرایی و ... باشد .

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

افرادی که مایل به مطالعه مقاله می باشند لازم است که :

۱) با زبان اسمبلی آشنا باشند .

۲) به DEBUG و دستورات آن مسلط باشند .

۳) از اطلاعات برنامه نویسی سیستم در حد آشنایی با Header فایل های اجرایی برخوردار باشند .

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

(توضیح اینکه ویروس ها برنامه کامپیوتری هستند و نه چیز دیگری و می توانند با انواع زبان های برنامه سازی Assenbly، C++، Pascal،Basic، ... طراحی شوند و ما از قویترین زبان یعنی اسمبلی جهت اینکاراستفاده کرده ایم .)

قبل از بیان الگوریتم کلی ویروس نویسی بهتر است به توضیح یکسری عناوین زیر بپردازیم :

▪ انواع دستکاری و تخریب ویروس های کامپیوتری

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

الف) اختلال در کار سیستم(تخریب نرم افزاری)

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

بعضی از دلایل اختلال در سیستم بدلیل ویروس ها عبارتند از:

۱) خطاهای برنامه نویسی توسط برنامه نویس ویروس

۲) ناسازگاری ویروس با سیستم یا نرم افزارهای نصب شده بر روی آن

۳) تخریب اطلاعات که شامل حذف، تغییر ویا اشغال و تکثیر در حافظه

۴) اختلال عمدی سیستم توسط ویروس(اهداف نویسندگان ویروس) که به عنوان مثال می توان به کندی سرعت سیستم اشاره کرد.

ب) تخریب سخت افزاری

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

در این کامپیوتر ها می توان به کمک نرم افزار ،موتور دیسک گردان را از حرکت باز داشت و همزمان فرمان خواندن یک تراک که وجو ندارد ، را به هد داد به این ترتیب هد به دیواره های دیسک گردان برخورد کرده و می شکند . نمونه دیگر این است که CPU و Icهای آمیگا از جمله اگنس ، دنیس و پائولا از نوع CMOS بوده و در مقابل الکتریسیته حساس هستند . اگر همزمان به تمام ورودیهای بیت یک اعمال می شود ولتاژ اضافی باعث خرابی ICها می شود.به کمک یک برنامه کوتاه چند خطی به زبان ماشین می توان کلیه ثباتهایی که به نام CPU می روند را حاوی بیت یک نمود و CPU را خراب کرد .

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

ویروس می تواند تراک صفر دیسک را نابود کند در اینصورت ، این دیسک دیگر قابل استفاده نیست یا اینکه ویروس بطور مکرر هد از سیلندر بیرونی به سیلندر داخلی حرکت دهد این امر سبب سایش ونهایتا خرابی دیسک خواهد شد . در اینجا ممکن است مستقیما چیزی تخریب نشود ولی باعث فرسودگی می شود. برای مثال ویروس AMP۲P که روی فایل CAMMAND.COM ویندوز ۹۵ وجود دارد ،قادر است تنظیم اصلی کارخانه را تغییر دهد و ویروسی که بتواند اینکار را انجام دهد قادر است به تمام اجزای سیستم دسترسی داشته و آنها را خراب کند . این ویروس معمولا هارد دیسک را دچار تعدادی بد سکتور می کند ویا تراک صفر را از کار می اندازد که با فرمت فیزیکی مجدد نیز دیسک قابل اصلاح نیست .

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

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

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

ساختار کلی فایل های EXE پیچیده تر است . تمام فایل های EXE دارای یک Header یا عنوان بوده که شامل اطلاعات تخصصی فایل اجرایی نظیر مشخصه فایل،اندازه واقعی فایل،آدرس های Data Segment،Code Segment و..... می باشد. بنابراین بر خلاف فایل های COM که اولین دستور از آنها حاوی آدرس شروع برنامه است ، در این فایل ها بایت های ۲۰و۲۲ در داخل Header حاوی آدرس شروع برنامه است و چون فایل های EXE از نظر اندازه می توانند خیلی بزرگتر از COM باشند، این آدرسها شامل SEGMENT:OFFSET است

با توجه به توضیح فوق در مورد نحوه آلوده سازی فایل های COM کافی است آدرس های X۱:X۲ را به ابتدای برنامه خود تغییر داده وسپس در پایان کار نیز به محل اولیه X۱:X۲ باز گردیم . اما این نکته قابل ذکر است که بدلیل پیچیدگی ساختار فایل های EXE، آلوده سازی اینگونه فایل ها از فایل های COM مسکلتر است .

▪ دلایل خراب شدن فایل های اجرایی

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

باتوجه به توضیحات داده شده،هم اکنون الگوریتم کلی یکی از انواع ویروس های کامپیوتری را به صورت زیر می نویسیم :

۱) اولین فایل اجرایی در مسیر جاری را پیدا کنید

۲) اگر فایل پیدا شده ، آلوده است و دیگر فایل آلوده دیگری جهت جستجو وجود ندارد به مرحله ۶بروید.

۳) اگر فایل پیدا شده آلوده است به مرحله ۱بروید

۴) فایل آلوده شده را پیدا کنید و فایل را طوری تغییر بدهید تا به صورت عادی کار کند(آسیب نبینید)

۵) به مرحله ۷بروید

۶) عملیات مربوط به دستکاری یا تخریب را انجام دهید

۷) برنامه اولیه را اجرا کنید

● نتیجه گیری

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

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