text: अपने आप की अनुलिपि करने के लिए, एक वायरस को कोड का निष्पादन करने की तथा स्मृति पर लिखने की अनुमति होनी चाहिए इस कारण से, कई वायरस अपने आप को निष्पादन योग्य फाईलों से संलग्न कर लेते हैं जो उचित प्रोग्राम का हिस्सा हो सकता है। यदि एक उपयोग कर्ता एक संक्रमित प्रोग्राम को शुरू करने की कोशिश करता है तो, ऐसा हो सकता है की पहले वायरस का कोड निष्पादित हो. वाइरसों को दो प्रकार में विभाजित किया जा सकता है, उनके व्यवहार के आधार पर और उनके निष्पादन के आधार पर.अनिवासी वायरस तुंरत अन्य पोशियों को खोजते हैं जिन्हें संक्रमित किया जा सकता है, इन लक्ष्यों को संक्रमित करते हैं और अंततः नियंत्रण को अनुप्रयोग प्रोग्राम () पर स्थानांतरित कर देते हैं जिसे उन्होंने संक्रमित किया है। निवासी वायरस पोशी की तलाश नहीं करते हैं जब वे शुरू होते हैं। इसके बजाय, एक निवासी वायरस अपने आप को निष्पादन पर स्‍मृति में लोड कर लेता है और नियंत्रण को पोषी प्रोग्राम पर स्थानांतरित कर देता है। वायरस पृष्ठ भूमि में सक्रिय रहता है और नए पोषियों को संक्रमित करता है जब इन फाईलों को अन्य प्रोग्रामों या ख़ुद ऑपरेटिंग सिस्टम के द्वारा एक्सेस किया जाता है। ऐसा माना जाता है कि अनिवासी वायरस एक "खोजक मॉड्यूल" और एक "प्रतिकृति मॉड्यूल" से युक्त होता है। खोजक मॉड्यूल संक्रमण हेतु नई फाईलें खोजने के लिए उत्तरदायी होता है। हर नई निष्पादन योग्य फाईल के लिए खोजक मॉड्यूल आक्रमण कर देता है, यह फाईल को संक्रमित करने के लिए अनुलिपि मॉड्यूल को बुलाता है। निवासी वायरस में एक अनुलिपि मॉड्यूल होता है जो एक अनिवासी वायरस के द्वारा नियोजित अनुलिपि मॉड्यूल के समान होता है। यद्यपि यह मोड्यूल खोजक मोड्यूल के द्वारा नहीं बुलाया जाता है। इसके बजाय, वायरस अनुलिपि मोड्यूल को स्मृति में लोड करता है जब इसका निष्पादन होता है और यह सुनिश्चित कर लेता है कि हर बार जब ऑपरेटिंग सिस्टम एक निश्चित आपरेशन का प्रदर्शन करता है तो इस मॉड्यूल का निष्पादन होता है। उदाहरण के लिए, हर बार जब ऑपरेटिंग सिस्टम एक संचिका को निष्पादित करता है, अनुलिपि मोड्यूल को बुलाया जा सकता है। इस मामले में, वायरस कंप्यूटर पर निष्पादित होने वाले प्रत्येक उपयुक्त प्रोग्राम को संक्रमित कर देता है। कभी कभी निवासी वायरस को आगे दो श्रेणियों में उपविभाजित किया जाता है एक "तीव्र संक्रामक" और दूसरे "धीमें संक्रामक".तीव्र संक्रामक को इस प्रकार से बनाया गया है कि जितनी अधिक संचिकाओं को हो सके संक्रमित कर सके. उदाहरण के लिए, एक तीव्र संक्रामक अक्सेस हो सकने वाली हर सम्भव पोषी संचिका को संक्रमित करता है। यह एक वायरस रोधी सॉफ्ट वेयर के लिए एक विशेष समस्या है, चूँकि एक वायरस स्केनर हर सम्भव पोषी संचिका को अक्सेस कर लेगा जब यह सिस्टम का व्यापक स्केन करता है। यदि वायरस स्केनर इस बात का ध्यान नहीं रख पाता कि ऐसा एक वायरस स्मृति में उपस्थित है, वायरस स्केनर पर पीछे से वार करता है और इस प्रकार से स्केन हो रही सभी संचिकाओं को संक्रमित कर देता है। तीव्र संक्रामक अपने प्रसार के लिए तीव्र संक्रमण दर पर भरोसा करते हैं। इस विधि का नुकसान यह है कि कई संचिकाओं को संक्रमित करने से पता लगाने की संभावना अधिक हो जाती है, क्यों कि वायरस कम्पूटर को धीमा कर देता है या कई संदिग्ध क्रियाओं को करता है जो वायरस विरोधी सॉफ़्टवेयर के द्वारा देखी जा सकती हैं। दूसरी और धीमे संक्रामक, इस प्रकार से बनाये जाते हैं कि वे पोषी को अन-आवृत रूप से संक्रमित करते हैं। उदाहरण के लिए, कुछ धीमे संक्रामक संचिकाओं को केवल तभी संक्रमित करते हैं जब उनको कॉपी किया जा रहा है। धीमे संक्रामक कि सीमित क्रिया कि वजह से उनका पता लगाना आसान नहीं होता है: वे कंप्यूटर को बहुत अधिक धीमा नहीं करते हैं, पर बार-बार वायरस विरोधी सॉफ्ट वेयर को झटका देते हैं जिसे प्रोग्रामों के संदिग्ध व्यवहार के द्वारा पहचाना जा सकता है। धीमे संक्रामक बहुत अधिक सफल प्रतीत नहीं होते हैं, वायरसों ने भिन्न प्रकार के प्रसार माध्यमों या पोषियों को लक्ष्य बनाया है। यह सूची ख़त्म नहीं हो सकती है: PDFs, जैसे HTML, दुर्भावनापूर्ण कोड से "सम्बंधित" हो सकता है। कुछ वायरस लेखकों ने जो लिखा है उसका कोई महत्त्व नहीं है।EXE विस्तार के अंत परPNG (उदाहरण के लिए), उम्मीद है कि उपयोगकर्ता विश्वस्त फाईल के प्रकार पर रुक जाएगा, वह इस बात पर ध्यान नहीं देगा की कंप्यूटर अंतिम प्रकार की संचिका के साथ "प्रारंभ" होगा.(कई ऑपरेटिंग सिस्टम ज्ञात संचिका प्रकार के विस्तार को बाई डिफॉल्ट छुपा लेते हैं, इसलिए उदाहरण के लिए एक संचिका का नाम जो ".png.exe" पर ख़त्म होता है,".png" पर ख़त्म होता हुआ प्रर्दशित किया जाएगा.) ट्रोजन हार्स (कम्प्यूटिंग) () देखें उपयोगकर्ता के द्वारा पता लगाने से बचने के लिए, कुछ वाईरस विभिन्न प्रकार के छल करते हैं। कुछ पुराने वायरस, विशेष रूप से MS - DOS मंच पर, यह सुनिश्चित कर लेते हैं कि जब संचिका को वायरस के द्वारा संक्रमित किया जाता है तो पोषी संचिका के " अंतिम बार संशोधित " होने की दिनांक बनी रहती है। यद्यपि यह दृष्टिकोण वायरस विरोधी सॉफ़्टवेयर को मुर्ख नहीं बनता है, विशेष रूप से वो जो संचिका परिवर्तन पर चक्रीय अतिरेक की जाँच () कि दिनांकों को बनाये रखता है। कुछ वायरस अपने आकार को बढाये बिना और संचिकाओं को क्षति पहुचाये बिना संचिकाओं को संक्रमित कर सकते हैं। वे ऐसा निष्पादन योग्य संचिकाओं के अप्रयुक्त क्षेत्रों में अधिलेखन के द्वारा करते हैं। ये "केविटी वायरस" कहलाता है। उदाहरण के लिए की CIH वायरस (), या चेरनोबिल वायरस (), पोर्टेबल निष्पादन योग्य () संचिकाओं को संक्रमित करता है। क्योंकि उन संचिकाओं में कई खाली स्थान थे, वायरस जो १ KB () लंबाई का था, संचिका के आकर में नहीं जुड़ा. कुछ वायरस वायरस विरोधी सॉफ्टवेयर के कार्य को ख़त्म करके अपने आप को प्रकट नहीं होने देते हैं, इससे पहले कि वह उसका पता लगा ले. क्योंकि कंप्यूटर और ऑपरेटिंग सिस्टम अधिक विकसित और जटिल हो रहे हैं, छुपाने कि पुरानी तकनीकों को नवीनीकृत करने या प्रतिस्थापित करने कि आवशयकता है। एक कंप्यूटर को वायरस से सुरक्षित रखने कि मांग यह हो सकती है कि संचिका तंत्र हर प्रकार के संचिका एक्सेस के लिए विस्तृत और स्पष्ट अनुमति की और पलायन कर जाए. एक वायरस के लिए आगे फैलने के लिए पोषियों को संक्रमित करने कि जरुरत होती है। कुछ मामलों में, एक पोषी को संक्रमित करना एक खराब विचार हो सकता है उदाहरण के लिए, कई वायरस विरोधी प्रोग्राम अपने कोड की अखंडता की जांच करते हैं। इसलिए ऐसे प्रोग्रामों का संक्रमण इस सम्भावना को बढ़ाएगा कि इस वायरस का पता चल गया है। इस कारण से, कुछ वायरस उन प्रोग्रामों को संक्रमित नहीं करते हैं जो वायरस विरोधी सॉफ़्टवेयर का हिस्सा है। एक अन्य प्रकार का पोषी जिससे वायरस कभी कभी बचने कि कोशिश करता है वह है "बैट संचिकाएँ".बैट संचिकाएँ (या "गोट संचिकाएँ") वे संचिकाएँ हैं जो कि विशेष रूप से वायरस विरोधी सॉफ़्टवेयर या ख़ुद वायरस विरोधी पेशेवरों के द्वारा एक वायरस के द्वारा संक्रमित होने के लिए बनाई गई हैं। इन संचिकाओं को भिन्न कारणों से बनाया जा सकता है, ये सभी वायरस का पता लगाने से सम्बंधित हैं। चूँकि बैट संचिकाओं का उपयोग वायरस का पता लगाने में या जांच को सम्भव बनने में किया जाता है, वायरस के द्वारा संक्रमण नहीं होने का लाभ उठाया जा सकता है। आम तौर पर वाइरस आम तौर पर ऐसा वाइरस प्रोग्रामों से बच कर ऐसा करते हैं, जैसे छोटी प्रोग्राम संचिकाएँ या प्रोग्राम जिनमें ' कूड़ा निर्देश ' के विशिष्ट प्रतिरूप हों. बैटिंग को मुश्किल बनाने के लिए एक संबंधित रणनीति है "विरल संक्रमण".कभी कभी, विरल संक्रामक एक पोषी संचिका को संक्रमित नहीं करते हैं जो अन्य स्थितियों में संक्रमण के लिए उपयुक्त उम्मीदवार हो सकता है। उदाहरण के लिए, एक वायरस यादृच्छिक आधार पर तय कर सकता है कि एक संचिका को संक्रमित करना है या नहीं, या एक वायरस सप्ताह के विशेष दिनों में ही पोषी संचिकाओं को संक्रमित कर सकता है। कुछ वायरस ऑपरेटिंग सिस्टम से अनुरोध करके वायरस विरोधी सॉफ़्टवेयर को धोखा देने कि कोशिश करते हैं। वायरस विरोधी सॉफ़्टवेयर संचिका को पढने का अनुरोध करता है और यह अनुरोध OS के बजाय वायरस को जाता है, इस प्रकार से एक वायरस अपने आप को छुपा लेता है। अब वायरस विरोधी सॉफ़्टवेयर की संचिका के असंक्रमित संस्करण पर लोट जाता है, जिससे कि ऐसा प्रतीत होता है कि संचिका " स्वच्छ " है। आधुनिक वायरस विरोधी सॉफ़्टवेयर के पास वायरस की चोरी का पता लगाने के लिए कई तकनीकें हैं। चोरी को रोकने की केवल एक विश्वसनीय विधि है एक ऐसे माध्यम से बूट करना जो स्वच्छ हो.  अधिकांश वायरस विरोधी प्रोग्राम साधारण प्रोग्रामों के भीतर वायरस प्रतिरूप खोजने कि कोशिश करते हैं इसे तथाकथित "वायरस के हस्ताक्षर" कहा जाता है। हस्ताक्षर एक लाक्षणिक बाईट प्रतिरूप है, जो एक विशेष वायरस या वायरस परिवार का एक भाग है। यदि एक वायरस स्केनर एक संचिका में ऐसा प्रतिरूप खोज लेता है, यह उपयोगकर्ता को सूचित कर देता है कि संचिका संक्रमित है। उपयोगकर्ता फिर इस संचिका को नष्ट कर सकते हैं, या (कुछ मामलों में) संक्रमित संचिका को " शुद्ध " या " ठीक "कर सकते हैं। कुछ वायरस ऐसी तकनीकों का उपयोग करते हैं कि जो हस्ताक्षर के द्वारा इसका पता लगाने को मुश्किल ही नहीं बल्कि असंभव बना देता है। ये वायरस प्रत्येक संक्रमण पर अपना कोड बदल लेते हैं। अर्थात प्रत्येक संक्रमित संचिका में वायरस की एक अलग प्रजाति होती है। वायरस के कूटलेखन के लिए एक और अधिक उन्नत विधि है सरल एन्क्रिप्शन () का उपयोग.इस मामले में, वायरस एक छोटे से decrypting मॉड्यूल और वायरस के कोड कि एक एन्क्रिप्टेड कॉपी से युक्त होता है। यदि प्रत्येक संक्रमित संचिका के लिए वायरस एक अलग कुंजी से एन्क्रिप्टेड है, तो वायरस का केवल एक भाग स्थिर बना रहता है वह है decrypting मॉड्यूल, जो (उदाहरण के लिए) के अंत से संलग्न होगा.इस मामले में, एक वायरस स्कैनर हस्ताक्षर का उपयोग करके सीधे वायरस का पता नहीं लगा सकता, लेकिन यह फ़िर भी डीक्रिप्टिंग मॉड्यूल का पता लगा सकता है, जो संभव वायरस की अभी भी अप्रत्यक्ष जांच कर सकता है। चूंकि ये संक्रमित पोषी पर संग्रहित कुंजिया होंगी, वास्तव में अन्तिम वायरस को विकोड करना पूरी तरह से सम्भव है, लेकिन इसकी शायद जरुरत नहीं है, चूँकि स्वयं संशोधित कोड इतना दुर्लभ है कि इसके कारण से वायरस स्केनर कम से कम संदिग्ध संचिका को अंकित कर सकता है। एक पुराने लेकिन कम्पैक्ट, एन्क्रिप्शन में एक स्थिर वायरस कि प्रत्येक बाईट XORing () शामिल है, ताकि ऑपरेशन का दोहरान केवल डिक्रिप्शन के लिए हो.यह संदिग्ध कोड है जो अपने आप को संशोधित करता है, इसलिए कई वायरस परिभाषाओं में एन्क्रिप्शन / डिक्रिप्शन हस्ताक्षर का एक भाग हो सकता है। बहुरूपी कोड () पहली तकनीक थी जो वायरस स्केनर के लिए एक गंभीर खतरा बनी. नियमित एन्क्रिप्टेड वायरस की तरह, एक बहुरूपी वायरस अपने एन्क्रिप्टेड कोड के साथ संचिकाओं को संक्रमित करता है, जो एक डिक्रिप्शन मॉड्यूल के द्वारा डिकोड कर दिया जाता है। बहुरूपी वायरस के मामले में, यह डिक्रिप्शन मॉड्यूल भी प्रत्येक संक्रमण पर संशोधित होता है। इसलिए ठीक प्रकार से लिखे गए बहुरूपी वायरस में ऐसे कोई भाग नहीं हैं जो संक्रमणों में समान हों, यह हस्ताक्षर का उपयोग करके इसका पता लगाना मुश्किल बनाता है। वायरस विरोधी सॉफ़्टवेयर एक प्रतिद्वंद्वी का उपयोग करके decrypting के द्वारा इसका पता लगा सकता है, या एन्क्रिप्टेड वायरस शरीर के सांख्यिकीय प्रतिरूप विश्लेषण के द्वारा इसका पता लगा सकता है। बहुरूपी कोड को सक्षम करने के लिए, वायरस के पास इसके एन्क्रिप्टेड शरीर में कहीं पर एक बहुरूपी इंजन (इसे उत्परिवर्तन इंजन भी कहा जाता है) होना चाहिए .इस तरह के इंजन कैसे काम करते है इस पर तकनीकी विस्तार के लिए बहुरूपी कोड () देखें. कुछ वायरस बहुरूपी कोड को इस प्रकार से काम में लेते हैं कि यह मुख्य रूप से वायरस के उत्परिवर्तन की दर को बाध्य करता है। उदाहरण के लिए, एक वायरस केवल कुछ ही समय में उत्परिवर्तित होने के लिए प्रोग्राम किया जाता है, या इसे इस प्रकार से प्रोग्राम किया जा सकता है कि जब ये कंप्यूटर पर ऐसी संचिका को संक्रमित कर रहा हो जिसमें पहले से वायरस की अनुलिपियाँ हो, तो यह उत्परिवर्तन से बच सके. जिसे धीमे बहुरूपी कोड का उपयोग करने का लाभ यह है कि इससे वायरस विरोधी पेशेवर के लिए वायरस का प्रतिनिधि का नमूना प्राप्त करना मुश्किल हो जाता है, क्योंकि बैट संचिकाएँ जो एक बार चलने में संक्रमित हो जाती हैं, उनमें प्रारूपिक रूप से वायरस का समान नमूना होगा. इसे यह सम्भावना बढ़ जायेगी कि वायरस स्केनर के द्वारा कि गई जांच अविश्वसनीय होगी और यह हो सकता है कि वायरस के कुछ उदाहरण जांच का पता लगाने में सक्षम न हों.  अनुकरण के द्वारा जांच से बचने के लिए कुछ वायरस हर बार जब एक नए निष्पादनयोग्य को संक्रमित करते हैं तब अपने आप को पुनर्लिखित कर लेते हैं। वायरस जो ऐसी तकनीक का उपयोग करते हैं वे रूपांतरित () कहलाते हैं।रूपांतरण () को संभव बनाने के लिए एक रूपांतरित इंजन की जरूरत होती है। एक रूपांतरित वायरस आमतौर पर बहुत बड़ा और जटिल होता है। उदाहरण के लिए, W32/Simile () में समूह भाषा कोड की १४००० से अधिक रेख्यें होती हैं, जिनमें से ९०% रूपांतरित इंजन का हिस्सा है।