ویروس، یک نوع از بدافزار است که در اغلب مواقع بدون اطلاع كاربر اجرا شده و تلاش میکند خودش را در یک کد اجرایی دیگر کپی کند. وقتی موفق به انجام این کار شد، کد جدید، آلوده نامیده میشود. کد آلوده وقتی اجرا شود، به نوبهی خود کد دیگری را میتواند آلوده کند. این عمل تولید مثل یا کپیسازی از خود بر روی یک کد اجرایی موجود، ویژگی کلیدی در تعریف یک ویروس است معمولاً کاربران کامپیوتر به ویژه آنهایی که اطلاعات تخصصی کمتری درباره کامپیوتر دارند، ویروسها را برنامههایی هوشمند و خطرناک میدانند که خود به خود اجرا و تکثیر شده و اثرات تخریبی زیادی دارند که باعث از دست رفتن اطلاعات و گاه خراب شدن کامپیوتر میگردند در حالیکه طبق آمار تنها پنج درصد ویروسها دارای اثرات تخریبی بوده و بقیه صرفاً تکثیر میشوند. بنابراین یک ویروس رایانهای را میتوان برنامهای تعریف نمود که میتواند خودش را با استفاده از یک میزبان تکثیر نماید. بنابر این تعریف اگر برنامهای وجود داشته باشد که دارای اثرات تخریبی باشد ولی امکان تکثیر نداشته باشد، نمیتوان آنرا ویروس نامید. بنابراین ویروسهای رایانهای از جنس برنامههای معمولی هستند که توسط ویروسنویسان نوشته شده و سپس به طور ناگهانی توسط یک فایل اجرایی و یا جا گرفتن در ناحیه سیستمی دیسک، فایلها و یا کامپیوترهای دیگر را آلوده میکنند. در این حال پس از اجرای فایل آلوده به ویروس و یا دسترسی به یک دیسک آلوده توسط کاربر دوم، ویروس به صورت مخفی نسخهای از خودش را تولید کرده و به برنامههای دیگر میچسباند و به این ترتیب داستان زندگی ویروس آغاز میشود و هر یک از برنامهها و یا دیسکهای حاوی ویروس، پس از انتقال به کامپیوترهای دیگر باعث تکثیر نسخههایی از ویروس و آلوده شدن دیگر فایلها و دیسکها میشوند. لذا پس از اندک زمانی در کامپیوترهای موجود در یک کشور و یا حتی در سراسر دنیا منتشر میشوند. از آنجا که ویروسها به طور مخفیانه عمل میکنند، تا زمانی که کشف نشده و امکان پاکسازی آنها فراهم نگردیده باشد، برنامههای بسیاری را آلوده میکنند و از این رو یافتن سازنده و یا منشاء اصلی ویروس مشکل است.
اولین تحقیق واقعی علمی و آکادمیک بر روی ویروسها توسط فرد کوهن در سال 1983، با نام ویروس که توسط لِن آدلمن ابداع شده بود، انجام شد. بعضاً از کوهن به عنوان «پدر ویروسهای کامپیوتری» نام برده میشود، اما واقعاً ویروسهایی بودند که قبل از شروع تحقیقات او تولید شده بودند. ویروس Elk Cloner نوشته شده توسط ریچ اسکرنتا در سال 1982 در گردش بود و ویروسهای تولید شده توسط جو دلینگر نیز بین سالهای 1981 تا 1983 ساخته شده بودند؛ که همهی آنها برای پلتفرمهای Apple II بودند. برخی منابع یک نقص فنی در Arpanet را در سال 1980 به عنوان اولین ویروس ذکر میکنند، اما آن فقط یک کد قانونی و مجاز بود که اشتباه کار میکرد و تنها مسألهای که ایجاد میکرد این بود که دادهها را در بستههای شبکه پخش میکرد. ویروسهای گریگوری بنفورد، تنها به به داستانهای علمیاش ختم نشد. او در سال 1969 ویروسهای غیر مخرب خود را در جایی که امروزه «آزمایشگاه ملی لیوِرمور لارنس» خوانده میشود و در Arpanet اولیه تولید و منتشر کرد[۲].
ویروس هم مانند هر برنامه کامپیوتری نیاز به محلی برای ذخیره خود دارد. ولی این محل باید به گونهای باشد که ویروسها را به وصول اهداف خود نزدیکتر کند. همان گونه که قبلاً ذکر شد اکثر ویروسها به طور انگلوار به فایلهای اجرایی میچسبند و آنها را آلوده میکنند. اصولاً میتوان فایلها را به دو گونه کلی «اجرایی» و «غیر اجرایی» تقسیم کرد که عموم ویروسها در فایلهای اجرایی جای گرفته و آنها را آلوده میکنند و واقعاً کمتر ویروسی یافت میشود که در یک فایل غیراجرایی قرار بگیرد و بتواند از طریق آن تکثیر شود.
لازم به ذکر است که بعضی از فایلها را شاید نتوان ذاتاً اجرایی نامید اما چون اینگونه فایلها میتوانند حاوی قسمتهایی اجرایی باشند، لذا آنها را از نوع اجرایی در نظر میگیریم. از این نوع فایلها میتوان به فایلهای اچتیامال و مستندات برنامههای اداره اشاره کرد که به ترتیب ممکن است شامل اسکریپت و ماکرو باشند. اسکریپتها و ماکروها قسمتهایی اجرایی هستند که در دل این فایلها قرار گرفته و کار خاصی را انجام میدهند.
در ذیل فهرست پسوندهای رایج فایلهای اجرایی ارائه شده است و اکثر نرمافزارهای ضد ویروس در حالت عادی (بدون تنظیمات خاص) این فایلها را ویروسیابی میکنند (البته در برخی برنامههای ضد ویروس ممکن است برخی پسوندها حذف یا اضافه شوند) :
.com ، .exe ، .dll ، .ovl ، .bin ، .sys ، .dot ، .doc ، .vbe ، .vbs ، .hta ، .htm ، .scr ، .ocx ، .hlp ، .eml
بنابراین یکی از اصلیترین میزبانهای ویروس، فایلهای اجرایی هستند. از طرف دیگر برخی ویروسها نیز از سکتور راهانداز (Boot Sector) و جدول بخشبندی دیسک (Master Boot Record یا Partition Table) به عنوان میزبان استفاده میکنند. سکتور راهانداز واحد راهاندازی سیستمعامل است که در سکتور شماره صفر دیسکت فلاپی و یا درایوهای منطقی یک دیسک سخت قرار دارد و جدول بخشبندی شامل اطلاعات تقسیمبندی دیسک سخت میباشد که آن نیز در سکتور شماره صفر دیسک سخت قرار دارد. اینگونه ویروسها با قرار گرفتن در یکی از این دو محل، هنگام راهاندازی کامپیوتر، اجرا شده و در حافظه سیستم مقیم میشوند و تا زمان خاموش کردن کامپیوتر و یا راهاندازی دوباره، همانجا مانده و فلاپیها و یا دیسکهای سخت دیگر را آلوده میکنند.