कम्प्यूटर वायरस या कम्प्यूटर विषाणु एक कंप्यूटर प्रोग्राम है जो अपनी अनुलिपि कर सकता है और उपयोगकर्ता की अनुमति के बिना एक कंप्यूटर को संक्रमित कर सकता है और उपयोगकर्ता को इसका पता भी नहीं चलता है। विभिन्न प्रकार के मैलवेयर और एडवेयर प्रोग्राम्स के सन्दर्भ में भी "वायरस" शब्द का उपयोग सामान्य रूप से होता है, हालाँकि यह कभी-कभी ग़लती से भी होता है। मूल वायरस अनुलिपियों में परिवर्तन कर सकता है, या अनुलिपियाँ ख़ुद अपने आप में परिवर्तन कर सकती हैं, जैसा कि एक रूपांतरित वायरस में होता है। एक वायरस एक कंप्यूटर से दूसरे कंप्यूटर में तभी फ़ैल सकता है जब इसका होस्ट एक असंक्रमित कंप्यूटर में लाया जाता है, उदाहरण के लिए एक उपयोगकर्ता के द्वारा इसे एक नेटवर्क या इन्टरनेट पर भेजने से, या इसे हटाये जाने योग्य माध्यम जैसे फ्लॉपी डिस्क, CD, या USB ड्राइव पर लाने से. इसी के साथ वायरस एक ऐसे संचिका तंत्र या जाल संचिका प्रमाली पर संक्रमित संचिकाओं के द्वारा दूसरे कम्पूटरों पर फ़ैल सकता है जो दूसरे कम्प्यूटरों पर भी खुल सकती हों.कभी कभी कंप्यूटर का कीड़ा और ट्रोजन होर्सेस के लिए भी भ्रम पूर्वक वायरस शब्द का उपयोग किया जाता है। एक कीडा अन्य कम्प्यूटरों में ख़ुद फैला सकता है इसे पोषी के एक भाग्य के रूप में स्थानांतरित होने की जरुरत नहीं होती है और एक ट्रोजन होर्स एक ऐसी फाईल है जो हानिरहित प्रतीत होती है। कीडे और ट्रोजन होर्स एक कम्यूटर सिस्टम के आंकडों, कार्यात्मक प्रदर्शन, या कार्य निष्पादन के दौरान नेटवर्किंग को नुकसान पहुंचा सकते हैं। सामान्य तौर पर, एक कीड़ा वास्तव में सिस्टम के हार्डवेयर या सॉफ्टवेयर को नुकसान नहीं पहुंचाता, जबकि कम से कम सिद्धांत रूप में, एक ट्रोजन पेलोड, निष्पादन के दोरान किसी भी प्रकार का नुकसान पहुँचने में सक्षम होता है। जब प्रोग्राम नहीं चल रहा है तब कुछ भी नहीं दिखाई देता है लेकिन जैसे ही संक्रमित कोड चलता है, ट्रोजन होर्स प्रवेश कर जाता है। यही कारण है कि लोगों के लिए वायरस और अन्य मैलवेयर को खोजना बहुत ही कठिन होता है और इसीलिए उन्हें स्पायवेयर प्रोग्राम और पंजीकरण प्रक्रिया का उपयोग करना पड़ता है। आजकल अधिकांश व्यक्तिगत कंप्यूटर इंटरनेट और लोकर एरिया नेटवर्क से जुड़े हैं और लोकल एरिया नेटवर्क, दूषित कोड को फैलाने की प्रक्रिया को सुविधाजनक बनाता है। आज का वायरस नेटवर्क सेवाओ का भी लाभ उठा सकता है जैसे वर्ल्ड वाइड वेब, ई मेल, त्वरित संदेश और संचिका साझा प्रणालियां वायरसों और कीडों को फैलने में मदद करती हैं। इसके अलावा, कुछ स्रोत एक वैकल्पिक शब्दावली का उपयोग करते हैं, जिसमें एक वायरस स्व-अनुलिपि करने वाले मैलवेयर का एक रूप होता है।कुछ मेलवेयर, विनाशकारी प्रोग्रामों, संचिकाओं को डिलीट करने, या हार्ड डिस्क की पुनः फ़ॉर्मेटिंग करने के द्वारा कंप्यूटर को क्षति पहुचाने के लिए प्रोग्राम किए जाते हैं। अन्य मैलवेयर प्रोग्राम किसी क्षति के लिए नहीं बनाये जाते हैं, लेकिन साधारण रूप से अपने आप को अनुलिपित कर लेते हैं औए शायद कोई टेक्स्ट, वीडियो, या ऑडियो संदेश के द्वारा अपनी उपस्थिति को दर्शाते हैं। यहाँ तक की ये कम अशुभ मैलवेयर प्रोग्राम भी कंप्यूटर उपयोगकर्ता के लिए समस्याएँ उत्पन्न कर सकते हैं।.वे आमतौर पर वैध कार्यक्रमों के द्वारा प्रयोग की जाने वाली कम्प्यूटर की स्मृति को अपने नियंत्रण में ले लेते हैं। इसके परिणामस्वरूप, वे अक्सर अनियमित व्यवहार का कारण होते हैं और सिस्टम को नुकसान पहुंचाते हैं। इसके अतिरिक्त, बहुत से मैलवेयर बग से ग्रस्त होते हैं, और ये बग सिस्टम को नुक्सान पंहुचा सकते हैं या डाटा क्षति का कारण हो सकते हैं। कई सीआईडी प्रोग्राम ऐसे प्रोग्राम हैं जो उपयोगकर्ता द्वारा डाउनलोड किए गए हैं और हर बार पॉप अप किए जाते हैं। इसके परिणाम स्वरुप कंप्यूटर की गति बहुत कम हो जाती है लेकिन इसे ढूंढ़ना और समस्या को रोकना बहुत ही कठिन होता है।
सबसे पहला वायरस क्रीपर था जो अरपानेट, पर खोजा गया, जो 1970 के दशक की शुरुआत में इंटरनेट से पहले आया था।यह TENEX ऑपरेटिंग सिस्टम के द्वारा फैला और यह कंप्यूटर को नियंत्रित और संक्रमित करने के लिए किसी भी जुड़े मॉडम का उपयोग कर सकता था। यह संदेश प्रदर्शित कर सकता है कि "मैं क्रीपर हूँ; अगर पकड़ सकते हो तो मुझे पकडो". यह अफवाह थी कि रीपर प्रोग्राम, जो इसके कुछ ही समय बाद प्रकट होता है और क्रीपर की प्रतियाँ बनाता है और उन्हें हटा देता है, इसे संभवतया क्रीपर के निर्माता के द्वारा खेद पत्र में लिखा गया है।एक आम धारणा है कि एक प्रोग्राम जो "रोथर J "कहलाता था वह "इन दी वाइल्ड " प्रकट होने वाला पहला कंप्यूटर वायरस था —यह एक कंप्यूटर के बाहर या प्रयोगशाला में बनाया गया, लेकिन यह दावा ग़लत था। अन्य हाल ही के वायरसों के लिए जाने-माने कंप्यूटर वायरसों और कीडों की समय रेखा देखें.लेकिन यह " घर में " कम्प्यूटरों को संक्रमित करने वाला पहला वायरस था। 1982 में रिचर्ड स्क्रेंता, के द्वारा लिखा गया, इसने ख़ुद को एप्पल DOS 3.3 ऑपरेटिंग सिस्टम के साथ जोड़ लिया और फ्लॉपी डिस्क के द्वारा फैला.मूलतः यह वायरस एक हाई स्कूल के छात्र के द्वारा निर्मित एक मजाक था और इसे एक खेल के रूप में फ्लॉपी डिस्क पर डाल दिया गया। इसके 50 वें उपयोग पर Elk Cloner वायरस सक्रिय हो गया, जिसने कंप्यूटर को संक्रमित किया और यह एक छोटी कविता को प्रर्दशित करता था " Elk Cloner:The program with a personality".इन दी वाइल्ड पहला पीसी वायरस एक बूट क्षेत्र का वायरस था जो ब्रेन Brain) कहलाता था, इसे फारूक अल्वी ब्रदर्स के द्वारा 1986 में बनाया गया, तथा लाहौर, पाकिस्तान के बाहर संचालित किया गया। इन्होने इस कथित वायरस को उनके द्वारा बनाये गए सोफ्टवेयर की प्रतियों कि चोरी रोकने के लिए बनाया.यद्यपि, विश्लेषकों ने दावा किया कि Ashar वायरस जो, ब्रेन की एक प्रजाति है, संभवतः वायरस के अन्दर कोड के आधार पर इसे पूर्व दिनांकित करता है। इससे पहले की कंप्यूटर नेटवर्क व्यापक होते अधिकांश वायरस हटाये जाने योग्य मध्यम, विशेष रूप से फ्लॉपी डिस्क पर फैल गए। शुरुआती दिनों में निजी कंप्यूटर, के कई उपयोगकर्ताओं के बीच नियमित रूप से जानकारी और प्रोग्रामों का विनिमय फ्लोपियों के द्वारा होता था। कई वायरस इन डिस्कों पर उपस्थित संक्रमित प्रोग्रामों से फैले, जबकि कुछ ने अपने आप को डिस्क के बूट क्षेत्र में इंस्टाल कर लिया, इससे यह सुनिश्चित हो गया की जब उपयोगकर्ता कंप्यूटर को डिस्क से बूट करेगा तो यह अनजाने में ही चल जाएगा.उस समय के पी सी पहले फ्लोपी से बूट करने का प्रयास करते थे, यदि कोई फ्लोपी ड्राइव में रह गई है। जब तक फ्लोपी का उपयोग कम नहीं हो गया तब तक यह सर्वाधिक सफल संक्रमण रणनीति थी, in the wild बूट क्षेत्र के वायरसों को बनाना सबसे आसान था।पारंपरिक कंप्यूटर वायरस 1980 के दशक में उभरे, ऐसा निजी कंप्यूटर का उपयोग बढ़ने के कारण हुआ और इसके परिणाम स्वरुप BBS और मॉडेम का उपयोग, तथा सॉफ्टवेयर का आदान-प्रदान बढ़ गया।बुलेटिन बोर्ड सॉफ्टवेयर के आदान प्रदान ने प्रत्यक्ष रूप से ट्रोजन होर्स प्रोग्राम्स को फैलाया और वायरस लोकप्रिय व्यावसायिक सॉफ्टवेयर को संक्रमित करने के लिए बनाये जाते थे।शेयरवेयर और बूटलेग BBS के वायरस के लिए आम वाहक थे।होबिस्ट्स के "पाइरेट सीन" में जो खुदरा सॉफ्टवेयर, की अवैध प्रतियों का व्यएक वायरस एक संक्रमित मशीन पर सभी सम्पर्कों को त्वरित संदेश के रूप में एक वेब पता लिंक भेज सकता है। यदि प्राप्तकर्ता, यह सोचता है कि लिंक एक मित्र से है, वह वेब साईट पर लिंक का अनुसरण करता है, साईट पर उपस्थित वायरस इस नए कंप्यूटर को संक्रमित करने में समर्थ हो सकता है और अपना प्रसार करने लगता है।वायरस परिवार की सबसे नई प्रजाति है क्रोस साईट पटकथा वायरस.यह वायरस अनुसंधान से उभरा और 2005 में इसका अकादमिक रूप से प्रदर्शन हुआ।यह वायरस क्रोस साईट पटकथा का उपयोग करके प्रसारित होता है। 2005 के बाद से in the wild, क्रोस साईट पटकथा वायरसों के बहुत से उदहारण रहे हैं, सबसे उल्लेखनीय प्रभावित साईटें हैं माइस्पेस और याहू.
अपने आप की अनुलिपि करने के लिए, एक वायरस को कोड का निष्पादन करने की तथा स्मृति पर लिखने की अनुमति होनी चाहिए इस कारण से, कई वायरस अपने आप को निष्पादन योग्य फाईलों से संलग्न कर लेते हैं जो उचित प्रोग्राम का हिस्सा हो सकता है। यदि एक उपयोग कर्ता एक संक्रमित प्रोग्राम को शुरू करने की कोशिश करता है तो, ऐसा हो सकता है की पहले वायरस का कोड निष्पादित हो. वाइरसों को दो प्रकार में विभाजित किया जा सकता है, उनके व्यवहार के आधार पर और उनके निष्पादन के आधार पर.अनिवासी वायरस तुंरत अन्य पोशियों को खोजते हैं जिन्हें संक्रमित किया जा सकता है, इन लक्ष्यों को संक्रमित करते हैं और अंततः नियंत्रण को अनुप्रयोग प्रोग्राम पर स्थानांतरित कर देते हैं जिसे उन्होंने संक्रमित किया है। निवासी वायरस पोशी की तलाश नहीं करते हैं जब वे शुरू होते हैं। इसके बजाय, एक निवासी वायरस अपने आप को निष्पादन पर स्‍मृति में लोड कर लेता है और नियंत्रण को पोषी प्रोग्राम पर स्थानांतरित कर देता है। वायरस पृष्ठ भूमि में सक्रिय रहता है और नए पोषियों को संक्रमित करता है जब इन फाईलों को अन्य प्रोग्रामों या ख़ुद ऑपरेटिंग सिस्टम के द्वारा एक्सेस किया जाता है।
ऐसा माना जाता है कि अनिवासी वायरस एक खोजक मॉड्यूल और एक प्रतिकृति मॉड्यूल से युक्त होता है। खोजक मॉड्यूल संक्रमण हेतु नई फाईलें खोजने के लिए उत्तरदायी होता है। हर नई निष्पादन योग्य फाईल के लिए खोजक मॉड्यूल आक्रमण कर देता है, यह फाईल को संक्रमित करने के लिए अनुलिपि मॉड्यूल को बुलाता है।
निवासी वायरस में एक अनुलिपि मॉड्यूल होता है जो एक अनिवासी वायरस के द्वारा नियोजित अनुलिपि मॉड्यूल के समान होता है। यद्यपि यह मोड्यूल खोजक मोड्यूल के द्वारा नहीं बुलाया जाता है। इसके बजाय, वायरस अनुलिपि मोड्यूल को स्मृति में लोड करता है जब इसका निष्पादन होता है और यह सुनिश्चित कर लेता है कि हर बार जब ऑपरेटिंग सिस्टम एक निश्चित आपरेशन का प्रदर्शन करता है तो इस मॉड्यूल का निष्पादन होता है। उदाहरण के लिए, हर बार जब ऑपरेटिंग सिस्टम एक संचिका को निष्पादित करता है, अनुलिपि मोड्यूल को बुलाया जा सकता है। इस मामले में, वायरस कंप्यूटर पर निष्पादित होने वाले प्रत्येक उपयुक्त प्रोग्राम को संक्रमित कर देता है।कभी कभी निवासी वायरस को आगे दो श्रेणियों में उपविभाजित किया जाता है एक तीव्र संक्रामक और दूसरे धीमें संक्रामक.तीव्र संक्रामक को इस प्रकार से बनाया गया है कि जितनी अधिक संचिकाओं को हो सके संक्रमित कर सके. उदाहरण के लिए, एक तीव्र संक्रामक अक्सेस हो सकने वाली हर सम्भव पोषी संचिका को संक्रमित करता है। यह एक वायरस रोधी सॉफ्ट वेयर के लिए एक विशेष समस्या है, चूँकि एक वायरस स्केनर हर सम्भव पोषी संचिका को अक्सेस कर लेगा जब यह सिस्टम का व्यापक स्केन करता है। यदि वायरस स्केनर इस बात का ध्यान नहीं रख पाता कि ऐसा एक वायरस स्मृति में उपस्थित है, वायरस स्केनर पर पीछे से वार करता है और इस प्रकार से स्केन हो रही सभी संचिकाओं को संक्रमित कर देता है। तीव्र संक्रामक अपने प्रसार के लिए तीव्र संक्रमण दर पर भरोसा करते हैं। इस विधि का नुकसान यह है कि कई संचिकाओं को संक्रमित करने से पता लगाने की संभावना अधिक हो जाती है, क्यों कि वायरस कम्पूटर को धीमा कर देता है या कई संदिग्ध क्रियाओं को करता है जो वायरस विरोधी सॉफ़्टवेयर के द्वारा देखी जा सकती हैं। दूसरी और धीमे संक्रामक, इस प्रकार से बनाये जाते हैं कि वे पोषी को अन-आवृत रूप से संक्रमित करते हैं। उदाहरण के लिए, कुछ धीमे संक्रामक संचिकाओं को केवल तभी संक्रमित करते हैं जब उनको कॉपी किया जा रहा है। धीमे संक्रामक कि सीमित क्रिया कि वजह से उनका पता लगाना आसान नहीं होता है: वे कंप्यूटर को बहुत अधिक धीमा नहीं करते हैं, पर बार-बार वायरस विरोधी सॉफ्ट वेयर को झटका देते हैं जिसे प्रोग्रामों के संदिग्ध व्यवहार के द्वारा पहचाना जा सकता है। धीमे संक्रामक बहुत अधिक सफल प्रतीत नहीं होते हैं,
वायरसों ने भिन्न प्रकार के प्रसार माध्यमों या पोषियों को लक्ष्य बनाया है। यह सूची ख़त्म नहीं हो सकती है:
PDFs, जैसे HTML, दुर्भावनापूर्ण कोड से सम्बंधित हो सकता है।कुछ वायरस लेखकों ने जो लिखा है उसका कोई महत्त्व नहीं है।EXE विस्तार के अंत परPNG, उम्मीद है कि उपयोगकर्ता विश्वस्त फाईल के प्रकार पर रुक जाएगा, वह इस बात पर ध्यान नहीं देगा की कंप्यूटर अंतिम प्रकार की संचिका के साथ प्रारंभ होगा. ट्रोजन हार्स ) देखें
उपयोगकर्ता के द्वारा पता लगाने से बचने के लिए, कुछ वाईरस विभिन्न प्रकार के छल करते हैं। कुछ पुराने वायरस, विशेष रूप से MS - DOS मंच पर, यह सुनिश्चित कर लेते हैं कि जब संचिका को वायरस के द्वारा संक्रमित किया जाता है तो पोषी संचिका के " अंतिम बार संशोधित " होने की दिनांक बनी रहती है। यद्यपि यह दृष्टिकोण वायरस विरोधी सॉफ़्टवेयर को मुर्ख नहीं बनता है, विशेष रूप से वो जो संचिका परिवर्तन पर चक्रीय अतिरेक की जाँच कि दिनांकों को बनाये रखता है।कुछ वायरस अपने आकार को बढाये बिना और संचिकाओं को क्षति पहुचाये बिना संचिकाओं को संक्रमित कर सकते हैं। वे ऐसा निष्पादन योग्य संचिकाओं के अप्रयुक्त क्षेत्रों में अधिलेखन के द्वारा करते हैं। ये केविटी वायरस कहलाता है। उदाहरण के लिए की CIH वायरस, या चेरनोबिल वायरस, पोर्टेबल निष्पादन योग्य संचिकाओं को संक्रमित करता है। क्योंकि उन संचिकाओं में कई खाली स्थान थे, वायरस जो 1 KB लंबाई का था, संचिका के आकर में नहीं जुड़ा.कुछ वायरस वायरस विरोधी सॉफ्टवेयर के कार्य को ख़त्म करके अपने आप को प्रकट नहीं होने देते हैं, इससे पहले कि वह उसका पता लगा ले.क्योंकि कंप्यूटर और ऑपरेटिंग सिस्टम अधिक विकसित और जटिल हो रहे हैं, छुपाने कि पुरानी तकनीकों को नवीनीकृत करने या प्रतिस्थापित करने कि आवशयकता है। एक कंप्यूटर को वायरस से सुरक्षित रखने कि मांग यह हो सकती है कि संचिका तंत्र हर प्रकार के संचिका एक्सेस के लिए विस्तृत और स्पष्ट अनुमति की और पलायन कर जाए.
एक वायरस के लिए आगे फैलने के लिए पोषियों को संक्रमित करने कि जरुरत होती है। कुछ मामलों में, एक पोषी को संक्रमित करना एक खराब विचार हो सकता है उदाहरण के लिए, कई वायरस विरोधी प्रोग्राम अपने कोड की अखंडता की जांच करते हैं। इसलिए ऐसे प्रोग्रामों का संक्रमण इस सम्भावना को बढ़ाएगा कि इस वायरस का पता चल गया है। इस कारण से, कुछ वायरस उन प्रोग्रामों को संक्रमित नहीं करते हैं जो वायरस विरोधी सॉफ़्टवेयर का हिस्सा है। एक अन्य प्रकार का पोषी जिससे वायरस कभी कभी बचने कि कोशिश करता है वह है बैट संचिकाएँ.बैट संचिकाएँ वे संचिकाएँ हैं जो कि विशेष रूप से वायरस विरोधी सॉफ़्टवेयर या ख़ुद वायरस विरोधी पेशेवरों के द्वारा एक वायरस के द्वारा संक्रमित होने के लिए बनाई गई हैं। इन संचिकाओं को भिन्न कारणों से बनाया जा सकता है, ये सभी वायरस का पता लगाने से सम्बंधित हैं।
चूँकि बैट संचिकाओं का उपयोग वायरस का पता लगाने में या जांच को सम्भव बनने में किया जाता है, वायरस के द्वारा संक्रमण नहीं होने का लाभ उठाया जा सकता है। आम तौर पर वाइरस आम तौर पर ऐसा वाइरस प्रोग्रामों से बच कर ऐसा करते हैं, जैसे छोटी प्रोग्राम संचिकाएँ या प्रोग्राम जिनमें ' कूड़ा निर्देश ' के विशिष्ट प्रतिरूप हों.बैटिंग को मुश्किल बनाने के लिए एक संबंधित रणनीति है विरल संक्रमण.कभी कभी, विरल संक्रामक एक पोषी संचिका को संक्रमित नहीं करते हैं जो अन्य स्थितियों में संक्रमण के लिए उपयुक्त उम्मीदवार हो सकता है। उदाहरण के लिए, एक वायरस यादृच्छिक आधार पर तय कर सकता है कि एक संचिका को संक्रमित करना है या नहीं, या एक वायरस सप्ताह के विशेष दिनों में ही पोषी संचिकाओं को संक्रमित कर सकता है।
कुछ वायरस ऑपरेटिंग सिस्टम से अनुरोध करके वायरस विरोधी सॉफ़्टवेयर को धोखा देने कि कोशिश करते हैं। वायरस विरोधी सॉफ़्टवेयर संचिका को पढने का अनुरोध करता है और यह अनुरोध OS के बजाय वायरस को जाता है, इस प्रकार से एक वायरस अपने आप को छुपा लेता है। अब वायरस विरोधी सॉफ़्टवेयर की संचिका के असंक्रमित संस्करण पर लोट जाता है, जिससे कि ऐसा प्रतीत होता है कि संचिका " स्वच्छ " है। आधुनिक वायरस विरोधी सॉफ़्टवेयर के पास वायरस की चोरी का पता लगाने के लिए कई तकनीकें हैं। चोरी को रोकने की केवल एक विश्वसनीय विधि है एक ऐसे माध्यम से बूट करना जो स्वच्छ हो. 
अधिकांश वायरस विरोधी प्रोग्राम साधारण प्रोग्रामों के भीतर वायरस प्रतिरूप खोजने कि कोशिश करते हैं इसे तथाकथित वायरस के हस्ताक्षर कहा जाता है। हस्ताक्षर एक लाक्षणिक बाईट प्रतिरूप है, जो एक विशेष वायरस या वायरस परिवार का एक भाग है। यदि एक वायरस स्केनर एक संचिका में ऐसा प्रतिरूप खोज लेता है, यह उपयोगकर्ता को सूचित कर देता है कि संचिका संक्रमित है। उपयोगकर्ता फिर इस संचिका को नष्ट कर सकते हैं, या संक्रमित संचिका को " शुद्ध " या " ठीक "कर सकते हैं। कुछ वायरस ऐसी तकनीकों का उपयोग करते हैं कि जो हस्ताक्षर के द्वारा इसका पता लगाने को मुश्किल ही नहीं बल्कि असंभव बना देता है। ये वायरस प्रत्येक संक्रमण पर अपना कोड बदल लेते हैं। अर्थात प्रत्येक संक्रमित संचिका में वायरस की एक अलग प्रजाति होती है।
वायरस के कूटलेखन के लिए एक और अधिक उन्नत विधि है सरल एन्क्रिप्शन का उपयोग.इस मामले में, वायरस एक छोटे से decrypting मॉड्यूल और वायरस के कोड कि एक एन्क्रिप्टेड कॉपी से युक्त होता है। यदि प्रत्येक संक्रमित संचिका के लिए वायरस एक अलग कुंजी से एन्क्रिप्टेड है, तो वायरस का केवल एक भाग स्थिर बना रहता है वह है decrypting मॉड्यूल, जो के अंत से संलग्न होगा.इस मामले में, एक वायरस स्कैनर हस्ताक्षर का उपयोग करके सीधे वायरस का पता नहीं लगा सकता, लेकिन यह फ़िर भी डीक्रिप्टिंग मॉड्यूल का पता लगा सकता है, जो संभव वायरस की अभी भी अप्रत्यक्ष जांच कर सकता है। चूंकि ये संक्रमित पोषी पर संग्रहित कुंजिया होंगी, वास्तव में अन्तिम वायरस को विकोड करना पूरी तरह से सम्भव है, लेकिन इसकी शायद जरुरत नहीं है, चूँकि स्वयं संशोधित कोड इतना दुर्लभ है कि इसके कारण से वायरस स्केनर कम से कम संदिग्ध संचिका को अंकित कर सकता है।एक पुराने लेकिन कम्पैक्ट, एन्क्रिप्शन में एक स्थिर वायरस कि प्रत्येक बाईट XORing शामिल है, ताकि ऑपरेशन का दोहरान केवल डिक्रिप्शन के लिए हो.यह संदिग्ध कोड है जो अपने आप को संशोधित करता है, इसलिए कई वायरस परिभाषाओं में एन्क्रिप्शन / डिक्रिप्शन हस्ताक्षर का एक भाग हो सकता है।
बहुरूपी कोड पहली तकनीक थी जो वायरस स्केनर के लिए एक गंभीर खतरा बनी. नियमित एन्क्रिप्टेड वायरस की तरह, एक बहुरूपी वायरस अपने एन्क्रिप्टेड कोड के साथ संचिकाओं को संक्रमित करता है, जो एक डिक्रिप्शन मॉड्यूल के द्वारा डिकोड कर दिया जाता है। बहुरूपी वायरस के मामले में, यह डिक्रिप्शन मॉड्यूल भी प्रत्येक संक्रमण पर संशोधित होता है। इसलिए ठीक प्रकार से लिखे गए बहुरूपी वायरस में ऐसे कोई भाग नहीं हैं जो संक्रमणों में समान हों, यह हस्ताक्षर का उपयोग करके इसका पता लगाना मुश्किल बनाता है। वायरस विरोधी सॉफ़्टवेयर एक प्रतिद्वंद्वी का उपयोग करके decrypting के द्वारा इसका पता लगा सकता है, या एन्क्रिप्टेड वायरस शरीर के सांख्यिकीय प्रतिरूप विश्लेषण के द्वारा इसका पता लगा सकता है। बहुरूपी कोड को सक्षम करने के लिए, वायरस के पास इसके एन्क्रिप्टेड शरीर में कहीं पर एक बहुरूपी इंजन होना चाहिए .इस तरह के इंजन कैसे काम करते है इस पर तकनीकी विस्तार के लिए बहुरूपी कोड देखें.कुछ वायरस बहुरूपी कोड को इस प्रकार से काम में लेते हैं कि यह मुख्य रूप से वायरस के उत्परिवर्तन की दर को बाध्य करता है। उदाहरण के लिए, एक वायरस केवल कुछ ही समय में उत्परिवर्तित होने के लिए प्रोग्राम किया जाता है, या इसे इस प्रकार से प्रोग्राम किया जा सकता है कि जब ये कंप्यूटर पर ऐसी संचिका को संक्रमित कर रहा हो जिसमें पहले से वायरस की अनुलिपियाँ हो, तो यह उत्परिवर्तन से बच सके. जिसे धीमे बहुरूपी कोड का उपयोग करने का लाभ यह है कि इससे वायरस विरोधी पेशेवर के लिए वायरस का प्रतिनिधि का नमूना प्राप्त करना मुश्किल हो जाता है, क्योंकि बैट संचिकाएँ जो एक बार चलने में संक्रमित हो जाती हैं, उनमें प्रारूपिक रूप से वायरस का समान नमूना होगा. इसे यह सम्भावना बढ़ जायेगी कि वायरस स्केनर के द्वारा कि गई जांच अविश्वसनीय होगी और यह हो सकता है कि वायरस के कुछ उदाहरण जांच का पता लगाने में सक्षम न हों. 
अनुकरण के द्वारा जांच से बचने के लिए कुछ वायरस हर बार जब एक नए निष्पादनयोग्य को संक्रमित करते हैं तब अपने आप को पुनर्लिखित कर लेते हैं। वायरस जो ऐसी तकनीक का उपयोग करते हैं वे रूपांतरित कहलाते हैं।रूपांतरण को संभव बनाने के लिए एक रूपांतरित इंजन की जरूरत होती है। एक रूपांतरित वायरस आमतौर पर बहुत बड़ा और जटिल होता है। उदाहरण के लिए, W32/Simile में समूह भाषा कोड की 14000 से अधिक रेख्यें होती हैं, जिनमें से 90% रूपांतरित इंजन का हिस्सा है।
जैसे एक आबादी में आनुवंशिक विविधता के कम होने पर उसमें एक मात्र रोग की सम्भावना कम हो जाती है, समान रूप से एक नेटवर्क पर सॉफ्टवेयर सिस्टम कि विविधता की भी वायरस की विनाशकारी क्षमता को सीमित करती है।यह 1990 में विशेष विचार का विषय बन गया जब माइक्रोसॉफ्ट ने डेस्कटॉप ऑपरेटिंग सिस्टम और कार्यालय सुइट में बाजार में प्रभुत्व प्राप्त कर लिया। माइक्रोसॉफ्ट सॉफ़्टवेयर के उपयोगकर्ता और इंटरनेट एक्सप्लोरर ) विशेष रूप से वायरस के प्रसार के लिए कमजोर हैं। माइक्रोसॉफ्ट सॉफ़्टवेयर को वायरस के द्वारा लक्ष्य बनाये जाने का कारण है उनका डेस्कटॉप प्रभुत्व होना और अक्सर कई गलतियों और वायरस लेखकों के लिए छिद्रों कि वजह से इसकी आलोचना की जाती है। समन्वित और गैर एकीकृत माइक्रोसॉफ्ट अनुप्रयोग और संचिका प्रणाली के एक्सेस के साथ भाषाओँ कि पटकथाओं के अनुप्रयोग, और नेटवर्किंग लक्षणों के साथ अनुप्रयोग) भी विशेष रूप से जोखिम युक्त हैं।यद्यपि विंडोस वायरस के लेखकों के लिए, सबसे लोकप्रिय ऑपरेटिंग सिस्टम है, कुछ वायरस दूसरे प्लेटफार्म पर भी मौजूद है। कोई भी ऑपरेटिंग सिस्टम जो चलने के लिए तीसरे पक्ष के प्रोग्राम को अनुमति दे सकता है वह सैद्धांतिक रूप से वायरस को चला सकता है। कुछ ऑपरेटिंग सिस्टम दूसरों के मुकाबले कम सुरक्षित हैं .यूनिक्स आधारित OS केवल अपने उपयोग कर्ताओं को ही अपने निर्देशों के अंतर्गत सुरक्षित स्थान के भीतर निष्पादन की अनुमति देते हैं।इंटरनेट आधारित एक शोध से पता चला कि ऐसे मामले भी थे जब लोगों ने जान-बूझ कर एक वायरस को डाऊनलोड करने के लिए एक विशेष बटन को दबाया.एक सुरक्षा फर्म F-Secure ने एक 6 माह का अभियान गूगल ऐडवर्ड्स पर चलाया जिसने कहा "क्या आपका पी सी वायरस मुक्त है?यह यहाँ संक्रमित प्राप्त करें ! " .इसका परिणाम था 409 क्लिक.2006 में अपेक्षाकृत कुछ सुरक्षा के तरीके थेजो मैक OS X को लक्ष्य बना रहे थे के साथ) .पुराने एप्पल ऑपरेटिंग सिस्टम के लिए वायरस कि एक संख्या जो मैक ओएस क्लासिक के नाम से जानी जाती है, वो अलग अलग स्रोतों में बहुत अलग होती है, एप्पल के साथ कहा जाता है कि केवल चार प्रकार के जाने माने वायरस होते हैं और स्वतंत्र सूत्रों के अनुसार 63 वायरस के रूप हैं। यह कहना सुरक्षित है कि बाजार के कम शेयर कि वजह से Macs को लक्ष्य बनाने की सम्भावना कम होती है और इस प्रकार से एक मैक विशेष वायरस केवल कम्प्यूटरों के एक छोटे अनुपात को ही संक्रमित कर सकता है। .मेक्स और विंडोस के बीच वायरस का जोखिम मुख्य बिक्री बिन्दु है, एक यह कि Apple उनके एक मैक प्राप्त करें विज्ञापन में काम लेता है। इस के अनुसार मेक्स में भी माइक्रोसॉफ्ट विन्डोज़ कि तरह सुरक्षा के मुद्दे होते हैं, यद्यपि किसी ने भी in the wild सफलता पूर्वक इसका पूर्ण लाभ नहीं उठाया है। विंडोस और यूनिक्स में समान पटकथा की क्षमता है, लेकिन जब यूनिक्स स्वाभाविक रूप से सामान्य उपयोगकर्ताओं को ऑपरेटिंग सिस्टम वातावरण के लिए परिवर्तन करने के लिए एक्सेस करने से रोकता है, विन्डोज़ की पुरानि प्रतियां जैसे विन्डोज़ 95 और 98 ऐसा नहीं करती.1997 में, जब एक "Bliss " नामक वायरस Linux के लिए जारी किया गया था --प्रमुख वायरस विरोधी विक्रेताओं ने एक चेतावनी जारी की यूनिक्स की तरह के सिस्टम ठीक विडोस की तरह वायरस का शिकार बन सकते हैं।ब्लिस वायरस को वायरसों का लाक्षणिक माना जा सकता है--यूनिक्स प्रणालियों पर --कीडों के विपरीत.ब्लिस की जरुरत है कि उपयोगकर्ता इसे स्पष्ट रूप से चलाता है और यह केवल ऐसे प्रोग्रामों को संक्रमित कर सकता है जो उपयोगकर्ता के द्वारा संशोधित किए जा सकते हैं। विन्डोज़ उपयोगकर्ता के विपरीत, अधिकांश यूनिक्स उपयोगकर्ता किसी सॉफ्टवेयर को इन्सटौल करने के अलावा किसी व्यवस्थापक उपयोगकर्ता के रूप में लॉग इन नहीं करते: यहाँ तक कि यदि एक उपयोगकर्ता वायरस को चलाता है तो भी यह ऑपरेटिंग सिस्टम को नुकसान नहीं कर सकता है। ब्लिस वायरस कभी भी व्यापक नहीं हुआ और मुख्य रूप से अनुसंधान के लिए उत्सुकता का विषय बना रहा.इसके निर्माता ने बाद में यूज़नेट को इसका स्रोत कोड पोस्ट किया, शोधकर्ताओं को यह जानने कि अनुमति दी कि यह कैसे कम करता है।
चूँकि सिस्टम स्रोत का अनाधिकृत उपयोग रोकने के लिए सॉफ्टवेयर को अक्सर सुरक्षा व्यवस्था के साथ डिजाईन किया जाता है, कई वायरस एक सिस्टम या अनुप्रयोग में सॉफ्टवेयर बग को फैलने में मदद करते हैं।सॉफ्टवेयर विकास रणनीतियां जो बड़ी संख्या में बग का उत्पादन करती हैं, सामान्य रूप से सक्षम दोहन भी उत्पन्न करती है। 
कई उपयोग कर्ता वायरस विरोधी सॉफ्टवेयर इंस्टाल करते हैं, जो कंप्यूटर डाउनलोड के बाद या निष्पादन योग्य के चलने के बाद ज्ञात वायरस का पता लगा लेते हैं या उसे नष्ट कर देते हैं। ऐसे दो सामान्य तरीके हैं जिन्हें एक वायरस विरोधी सॉफ्टवेयर अनुप्रयोग वायरस की जांच करने के लिए काम में लेता है। वायरस की जांच की पहली और सबसे सामान्य विधि है वायरस के हस्ताक्षर परिभाषा की सूची का उपयोग.यह कंप्यूटर की स्मृति के अवयवों और बूट क्षेत्र ) और स्थायी या अस्थायी ड्राइवों पर संगृहीत संचिकाओं की जांच के द्वारा, कार्य करता है तथा इन संचिकाओं की तुलना ज्ञात वायरस के "हस्ताक्षर" के डेटाबेस के ख़िलाफ़ की जाती है। जांच की इस विधि का नुक्सान यह है कि उपयोग कर्ता केवल वायरस से सुरक्षित रहता है जो अपनी पिछली परिभाषा का अद्यतन करता रहता है। दूसरी विधि है अनुमानी कलन विधि जिसमें सामान्य व्यवहार पर आधारित वायरसों का पता लगाया जाता है। इस विधि में वायरसों का पता लगाने कि क्षमता होती है जिसके लिए अभी भी वायरस विरोधी कंपनियों को हस्ताक्षर बनाना है।कुछ वायरस विरोधी प्रोग्राम खुली हुई संचिकाओं को स्केन करने में सक्षम होते हैं साथ ही समान तरीके से 'on the fly' भेजे गए और प्राप्त किए गए ई-मेल्स को भी स्केन कर सकते हैं। इसे "on-access scanning"कहते हैं। वायरस विरोधी सोफ्टवेयर पोशी सॉफ्टवेयर कि वायरस को प्रेषित करने की क्षमता को परिवर्तित नहीं करता है। उपयोगकर्ता को पैच सुरक्षा छिद्र के लिए अपने सोफ्टवेयर नियमित रूप से अद्यतन करने चाहिए.एंटी वायरस सॉफ्टवेयर को भी नियमित रूप से अद्यतन किए जाने की आवश्यकता है ताकि आधुनिक खतरों को रोका जा सके.कोई भी व्यक्ति भिन्न मिडिया पर डाटा के नियमित रूप से बैकअप से वायरस के द्वारा की गई क्षति को कम कर सकता है, इन्हें या तो सिस्टम से असंबद्ध, रखा जाता है, या अन्य कारणों जैसे भिन्न संचिका प्रणालियों का उपयोग के लिए इसे नहीं खोला जा सकता या केवल रीड-ओनली रखा जाता है। इस तरह, यदि एक वायरस के माध्यम से डाटा खो दिया है, कोई भी बैकअप का उपयोग करके फिर से शुरू कर सकता है। यदि ऑप्टिकल मीडिया जैसे सीडी और डीवीडी पर एक बैकअप सत्र बंद हो गया है, यह read-only बन जाता है और अब वायरस से संक्रमित नहीं हो सकता है। इसी तरह, बूट योग्य पर एक ऑपरेटिंग सिस्टम का उपयोग कंप्यूटर को शुरू करने के लिए किया जा सकता है, यदि स्थापित आपरेटिंग सिस्टम उपयोग हीन हो गया है। अन्य विधि है भिन्न संचिका तंत्रों पर भिन्न आपरेटिंग सिस्टम का उपयोग.एक वायरस की दोनों को प्रभावित करने की सम्भावना नहीं होती है। डेटा बैकअप भी भिन्न संचिका तंत्रों पर डाला जा सकता है। उदाहरण के लिए, लिनक्स को NTFS विभाजन पर लिखने के लिए विशेष सॉफ़्टवेयर की आवश्यकता होती है, इसलिए यदि कोई सॉफ्टवेयर को इंस्टाल नहीं करता है और एक NTFS विभाजन पर एक बैकअप करने के लिए MS विन्डोज़ के अलग इंस्टालेशन का उपयोग करता है, बैकअप को लाइनक्स के किसी भी वर्जन से सुरक्षित होना चाहिए.इसी तरह, MS विन्डोज़ संचिका सिस्टम जैसे ext3, को नहीं पढ़ सकता है, इसलिए यदि कोई सामान्यतया MS विन्डोज़ का उपयोग करता है, एक लिनक्स इंस्टालेशन का उपयोग करते हुए एक ext3 विभाजन पर बैकअप बनाया जा सकता है।
एक बार एक कंप्यूटर जब वायरस से समझौता कर लेता है, तो सामान्यतया ऑपरेटिंग सिस्टम को फ़िर से पूरी तरह से इंस्टाल किए बिना समान कंप्यूटर का उपयोग जारी रखना असुरक्षित होता है। लेकिन, कई विकल्प हैं जो कंप्यूटर में वायरस के आने के बाद उपस्थित होते हैं। ये क्रियाएँ वायरस के प्रकार की गंभीरता पर निर्भर करती हैं।
Windows Me, Windows XP and Windows Vista पर एक सम्भावना है एक औजार जो सिस्टम रिस्टोर के नाम से जाना जाता है जो कि पिछले चेक बिन्दु के लिए रजिस्ट्री और जटिल तंत्र संचिका को रिस्टोर कर के रखता है। अक्सर एक वायरस एक सिस्टम को हेंग कर देता है और एक इसी के बाद से फ़िर से बूट होने पर सिस्टम के रिस्टोर बिन्दु में उसी दिन से समस्या आएगी.पिछले दिनों से रिस्टोर बिन्दु को दिया गया काम करना होता है, अब वायरस संग्रहीत संचिकाओं को संक्रमित नहीं कर पाता है। फिर भी कुछ वायरस, सिस्टम के रिस्टोर को और अन्य महत्वपूर्ण औजारों जैसे टास्क मेनेजर और कमांड प्रोम्प्ट को निष्क्रिय कर देते हैं। एक वायरस जो ऐसा करता है उसका उदहारण है CiaDoor.प्रशासकोण के पास भिन्न कारणों के लिए सीमित उपयोगकर्ताओं से ऐसे औजारों को निष्क्रिय करने के विकल्प उपलब्ध हैं। वायरस ऐसा करने के लिए रजिस्ट्री में संशोधन करता है, केवल उस समय ऐसा नहीं होता है जब प्रशासक कंप्यूटर को नियंत्रित कर रहा हो, यह सब उपयोगकर्ताओं को औजारों को एक्सेस करने से रोकता है। जब एक संक्रमित औजार सक्रिय होता है तो यह एक संदेश देता है "आपके प्रशासक के द्वारा टास्क मेनेजर को अक्षम कर दिया गया है।"यहाँ तक की यदि उपयोगकर्ता जो प्रोग्राम खोलने की कोशिश कर रहा है वह प्रशासक है।उपयोगकर्ता जो माइक्रोसॉफ्ट ऑपरेटिंग सिस्टम को चला रहा है, एक मुक्त स्केन चलाने के लिए माइक्रोसॉफ्ट की वेबसाइट पर जा सकता है, यदि उनके पास उनका 20 अंकों की पंजीकरण संख्या है।
ऑपरेटिंग सिस्टम को पुनः इंस्टाल करना वायरस हटाने का एक अलग तरीका है। इसमें साधारण रूप से OS विभाजन की पुनः फोर्मेटिंग और इसके मूल माध्यम से OS को इंस्टाल करना शामिल है। या एक साफ़ बेकअप छवि के साथ विभाजन की कल्पना की जा सकती है या Acronis के साथ लिया गया) .इस विधि का लाभ यह है की यह करने में सरल है, कई वायरस विरोधी स्कैन को चलाने की तुलना में यह तेज होता है और किसी भी मैलवेयर को दूर करने की गारंटी देता है।Downsides में अन्य सभी सॉफ्टवेयर और ऑपरेटिंग सिस्टम का पुनः इंस्टाल करना शामिल है। उपयोगकर्ता डेटा को एक लाइव सीडी को बूट करके या हार्ड ड्राइव को किसी दूसरे कंप्यूटर में रखकर और उस कंप्यूटर के ऑपरेटिंग सिस्टम से बूट करके बेक अप किया जा सकता है।व्ब्फ्ज्ग्