पॉलीमॉर्फिक कोड: Difference between revisions
No edit summary |
No edit summary |
||
Line 2: | Line 2: | ||
कंप्यूटिंग में, पॉलीमॉर्फिक कोड वह कोड होता है जो मूल [[एल्गोरिथ्म]] को अक्षुण्ण रखते हुए उत्परिवर्तित करने के लिए एक बहुरूपी इंजन का उपयोग करता है। अर्थात यही है कि, कोड हर बार चलाए जाने पर स्वयं को संशोधित करता है, लेकिन कोड का कार्य (''फ़ंक्शन'') बिल्कुल नहीं बदलता। | कंप्यूटिंग में, पॉलीमॉर्फिक कोड वह कोड होता है जो मूल [[एल्गोरिथ्म]] को अक्षुण्ण रखते हुए उत्परिवर्तित करने के लिए एक बहुरूपी इंजन का उपयोग करता है। अर्थात यही है कि, कोड हर बार चलाए जाने पर स्वयं को संशोधित करता है, लेकिन कोड का कार्य (''फ़ंक्शन'') बिल्कुल नहीं बदलता। | ||
उदाहरण के लिए, सरल गणित अभिव्यक्ति 3+1 और 6-2 दोनों एक ही परिणाम प्राप्त करते हैं, फिर भी [[ | उदाहरण के लिए, सरल गणित अभिव्यक्ति 3+1 और 6-2 दोनों एक ही परिणाम प्राप्त करते हैं, फिर भी [[सीपीयू सॉकेट|सीपीयू]] में अलग-अलग मशीन कोड के साथ चलते हैं। इस तकनीक का उपयोग कभी-कभी [[कंप्यूटर वायरस]], [[शेलकोड]] और [[कंप्यूटर वर्म]] द्वारा अपनी उपस्थिति को छिपाने के लिए किया जाता है। <ref name="rugha2">{{Cite thesis|last=Raghunathan|first=Srinivasan|date=2007|title=Protecting anti-virus software under viral attacks|type=M.Sc.|publisher=Arizona State University}}</ref> | ||
कोड छिपाने के लिए [[ | कोड छिपाने के लिए [[एन्क्रिप्शन सॉफ्टवेयर|एन्क्रिप्शन]] सबसे आम तरीका है। एन्क्रिप्शन के साथ, कोड का मुख्य भाग (जिसे इसका पेलोड भी कहा जाता है) एन्क्रिप्ट किया गया है और अर्थहीन दिखाई देगा। कोड के पहले की तरह कार्य करने के लिए, कोड में एक डिक्रिप्शन फ़ंक्शन जोड़ा जाता है। जब कोड ''निष्पादित किया'' जाता है, तो यह फ़ंक्शन पेलोड को पढ़ता है और बदले में इसे निष्पादित करने से पहले इसे डिक्रिप्ट करता है। | ||
अकेले एन्क्रिप्शन बहुरूपता नहीं है। बहुरूपी व्यवहार प्राप्त करने के लिए, एन्क्रिप्टर/डिक्रिप्टर जोड़ी को कोड की प्रत्येक प्रति के साथ उत्परिवर्तित किया जाता है। यह कुछ कोड के विभिन्न संस्करणों की अनुमति देता | अकेले एन्क्रिप्शन बहुरूपता का गठन नहीं करता है। बहुरूपी व्यवहार प्राप्त करने के लिए, एन्क्रिप्टर/डिक्रिप्टर जोड़ी को कोड की प्रत्येक प्रति के साथ उत्परिवर्तित किया जाता है। यह कुछ कोड के विभिन्न संस्करणों को सभी समान कार्य करने की अनुमति देता है।<ref name="wongstamp">{{cite journal |last1=Wong |first1=Wing |last2=Stamp |first2=M. |title=मेटामॉर्फिक इंजन के लिए शिकार|journal=Journal in Computer Virology |volume=2 |issue= 3|pages=211–229 |date=2006 |doi=10.1007/s11416-006-0028-7 |citeseerx=10.1.1.108.3878|s2cid=8116065 }}</ref> | ||
== द्वेषपूर्ण (मालिसियस) कोड == | |||
अधिकांश [[एंटीवायरस सॉफ्टवेयर]] और इंट्रूज़न डिटेक्शन सिस्टम (IDS) कंप्यूटर फ़ाइलों और [[कंप्यूटर नेटवर्क]] पर भेजे गए डेटा पैकेट के माध्यम से द्वेषपूर्ण कोड का पता लगाने का प्रयास करते हैं। | |||
यदि सुरक्षा सॉफ़्टवेयर को ऐसे पैटर्न मिलते हैं जो ज्ञात कंप्यूटर वायरस या वर्म्स के अनुरूप होते हैं, तो यह खतरे को बेअसर करने के लिए उचित कदम उठाता है। पॉलिमॉर्फिक एल्गोरिदम ऐसे सॉफ़्टवेयर के लिए आपत्तिजनक कोड को पहचानना मुश्किल बना देता है क्योंकि यह लगातार उत्परिवर्तित होता है। | |||
दुर्भावनापूर्ण [[प्रोग्रामर]]्स ने हर बार वायरस या वर्म के फैलने पर अनएन्क्रिप्टेड डिक्रिप्शन इंजन (और परिणामी एन्क्रिप्टेड पेलोड) को फिर से लिखकर इस वायरस-स्कैनिंग रणनीति से अपने एन्क्रिप्टेड कोड को बचाने की मांग की है। एंटी-वायरस सॉफ़्टवेयर डिक्रिप्शन इंजन के विभिन्न म्यूटेशनों के भीतर अंतर्निहित पैटर्न खोजने के लिए परिष्कृत पैटर्न विश्लेषण का उपयोग करता है, इस तरह के [[मैलवेयर]] का मज़बूती से पता लगाने की उम्मीद में। | दुर्भावनापूर्ण [[प्रोग्रामर]]्स ने हर बार वायरस या वर्म के फैलने पर अनएन्क्रिप्टेड डिक्रिप्शन इंजन (और परिणामी एन्क्रिप्टेड पेलोड) को फिर से लिखकर इस वायरस-स्कैनिंग रणनीति से अपने एन्क्रिप्टेड कोड को बचाने की मांग की है। एंटी-वायरस सॉफ़्टवेयर डिक्रिप्शन इंजन के विभिन्न म्यूटेशनों के भीतर अंतर्निहित पैटर्न खोजने के लिए परिष्कृत पैटर्न विश्लेषण का उपयोग करता है, इस तरह के [[मैलवेयर]] का मज़बूती से पता लगाने की उम्मीद में। |
Revision as of 22:23, 24 December 2022
कंप्यूटिंग में, पॉलीमॉर्फिक कोड वह कोड होता है जो मूल एल्गोरिथ्म को अक्षुण्ण रखते हुए उत्परिवर्तित करने के लिए एक बहुरूपी इंजन का उपयोग करता है। अर्थात यही है कि, कोड हर बार चलाए जाने पर स्वयं को संशोधित करता है, लेकिन कोड का कार्य (फ़ंक्शन) बिल्कुल नहीं बदलता।
उदाहरण के लिए, सरल गणित अभिव्यक्ति 3+1 और 6-2 दोनों एक ही परिणाम प्राप्त करते हैं, फिर भी सीपीयू में अलग-अलग मशीन कोड के साथ चलते हैं। इस तकनीक का उपयोग कभी-कभी कंप्यूटर वायरस, शेलकोड और कंप्यूटर वर्म द्वारा अपनी उपस्थिति को छिपाने के लिए किया जाता है। [1]
कोड छिपाने के लिए एन्क्रिप्शन सबसे आम तरीका है। एन्क्रिप्शन के साथ, कोड का मुख्य भाग (जिसे इसका पेलोड भी कहा जाता है) एन्क्रिप्ट किया गया है और अर्थहीन दिखाई देगा। कोड के पहले की तरह कार्य करने के लिए, कोड में एक डिक्रिप्शन फ़ंक्शन जोड़ा जाता है। जब कोड निष्पादित किया जाता है, तो यह फ़ंक्शन पेलोड को पढ़ता है और बदले में इसे निष्पादित करने से पहले इसे डिक्रिप्ट करता है।
अकेले एन्क्रिप्शन बहुरूपता का गठन नहीं करता है। बहुरूपी व्यवहार प्राप्त करने के लिए, एन्क्रिप्टर/डिक्रिप्टर जोड़ी को कोड की प्रत्येक प्रति के साथ उत्परिवर्तित किया जाता है। यह कुछ कोड के विभिन्न संस्करणों को सभी समान कार्य करने की अनुमति देता है।[2]
द्वेषपूर्ण (मालिसियस) कोड
अधिकांश एंटीवायरस सॉफ्टवेयर और इंट्रूज़न डिटेक्शन सिस्टम (IDS) कंप्यूटर फ़ाइलों और कंप्यूटर नेटवर्क पर भेजे गए डेटा पैकेट के माध्यम से द्वेषपूर्ण कोड का पता लगाने का प्रयास करते हैं।
यदि सुरक्षा सॉफ़्टवेयर को ऐसे पैटर्न मिलते हैं जो ज्ञात कंप्यूटर वायरस या वर्म्स के अनुरूप होते हैं, तो यह खतरे को बेअसर करने के लिए उचित कदम उठाता है। पॉलिमॉर्फिक एल्गोरिदम ऐसे सॉफ़्टवेयर के लिए आपत्तिजनक कोड को पहचानना मुश्किल बना देता है क्योंकि यह लगातार उत्परिवर्तित होता है।
दुर्भावनापूर्ण प्रोग्रामर्स ने हर बार वायरस या वर्म के फैलने पर अनएन्क्रिप्टेड डिक्रिप्शन इंजन (और परिणामी एन्क्रिप्टेड पेलोड) को फिर से लिखकर इस वायरस-स्कैनिंग रणनीति से अपने एन्क्रिप्टेड कोड को बचाने की मांग की है। एंटी-वायरस सॉफ़्टवेयर डिक्रिप्शन इंजन के विभिन्न म्यूटेशनों के भीतर अंतर्निहित पैटर्न खोजने के लिए परिष्कृत पैटर्न विश्लेषण का उपयोग करता है, इस तरह के मैलवेयर का मज़बूती से पता लगाने की उम्मीद में।
पारंपरिक सिग्नेचर स्कैनिंग जैसे अन्य तरीकों का उपयोग करने से पहले मैलवेयर को वर्चुअल वातावरण में खुद को अलग करने की अनुमति देकर बहुरूपी अस्पष्टता को हराने के लिए इम्यूलेशन का उपयोग किया जा सकता है। ऐसे आभासी वातावरण को कभी-कभी सैंडबॉक्स (कंप्यूटर सुरक्षा) कहा जाता है। बहुरूपता इस तरह के अनुकरण के खिलाफ वायरस की रक्षा नहीं करता है यदि डिक्रिप्टेड पेलोड डिक्रिप्शन एल्गोरिदम में भिन्नता के बावजूद समान रहता है। मेटामॉर्फिक कोड तकनीकों का उपयोग पहचान को और जटिल बनाने के लिए किया जा सकता है, क्योंकि वायरस स्मृति में पहचान योग्य कोड ब्लॉक के बिना निष्पादित हो सकता है जो संक्रमण से संक्रमण तक स्थिर रहता है।
पहला ज्ञात बहुरूपी विषाणु मार्क वाशबर्न द्वारा लिखा गया था। वायरस, जिसे 1260 (कंप्यूटर वायरस) कहा जाता है, 1990 में लिखा गया था। एक बेहतर ज्ञात पॉलीमॉर्फिक वायरस 1992 में हैकर डार्क अवेंजर द्वारा एंटीवायरस सॉफ़्टवेयर से पैटर्न की पहचान से बचने के साधन के रूप में बनाया गया था। एक सामान्य और बहुत विषैला बहुरूपी विषाणु फ़ाइल संक्रमक विषाणु है।
उदाहरण
यह उदाहरण वास्तव में एक बहुरूपी कोड नहीं है, लेकिन xor ऑपरेटर के माध्यम से एन्क्रिप्शन की दुनिया के लिए एक परिचय के रूप में काम करेगा। उदाहरण के लिए, एक एल्गोरिथ्म में वेरिएबल्स A और B का उपयोग करते हुए, लेकिन वेरिएबल C का नहीं, बड़ी मात्रा में कोड हो सकता है जो C को बदलता है, और इसका एल्गोरिथम पर कोई प्रभाव नहीं पड़ेगा, जिससे इसे अंतहीन रूप से और बिना ध्यान दिए बदला जा सके। अंतिम उत्पाद क्या होगा।
शुरू: गोटो डिक्रिप्शन_कोड कूट रूप दिया गया: ...बहुत सारे एन्क्रिप्टेड कोड... डिक्रिप्शन_कोड: सी = सी + 1 ए = एन्क्रिप्टेड फंदा: बी = * ए सी = 3214 * ए बी = बी एक्सओआर क्रिप्टोकी * ए = बी सी = 1 सी = ए + बी ए = ए + 1 गोटो लूप अगर ए = डिक्रिप्शन_कोड नहीं है सी = सी^2 गोटो एन्क्रिप्टेड क्रिप्टोकी: कुछ_यादृच्छिक_संख्या
एन्क्रिप्टेड कोड पेलोड है। कोड के विभिन्न संस्करणों को बनाने के लिए, प्रत्येक प्रतिलिपि में सी में हेरफेर करने वाली कचरा लाइनें बदल जाएंगी। एन्क्रिप्टेड के अंदर कोड (बहुत सारे एन्क्रिप्टेड कोड) डिक्रिप्शन_कोड और क्रिप्टोकी और प्रत्येक एल्गोरिदम के बीच कोड को नए कोड के लिए खोज सकते हैं जो वही काम करता है। आमतौर पर, कोडर वायरस की पहली पीढ़ी के लिए एक शून्य कुंजी (उदाहरण के लिए; A xor 0 = A) का उपयोग करता है, जिससे कोडर के लिए यह आसान हो जाता है क्योंकि इस कुंजी के साथ कोड एन्क्रिप्ट नहीं किया जाता है। सांकेतिक शब्दों में बदलनेवाला तो एक वृद्धिशील कुंजी एल्गोरिथ्म या एक यादृच्छिक एक लागू करता है।
यह भी देखें
- उल्लेखनीय कंप्यूटर वायरस और वर्म्स की समयरेखा
- मेटामॉर्फिक कोड
- स्व-संशोधित कोड
- अल्फ़ान्यूमेरिक शेलकोड
- शेलकोड
- सॉफ्टवेयर क्रैकिंग
- सुरक्षा दरार
- भ्रमित कोड
- ओलिगोमॉर्फिक कोड
इस पेज में लापता आंतरिक लिंक की सूची
- अर्थ विज्ञान
- वाइरस
- अतिक्रमण संसूचन प्रणाली
- उलझा हुआ कोड
संदर्भ
- ↑ Raghunathan, Srinivasan (2007). Protecting anti-virus software under viral attacks (M.Sc.). Arizona State University.
- ↑ Wong, Wing; Stamp, M. (2006). "मेटामॉर्फिक इंजन के लिए शिकार". Journal in Computer Virology. 2 (3): 211–229. CiteSeerX 10.1.1.108.3878. doi:10.1007/s11416-006-0028-7. S2CID 8116065.
- Spinellis, Diomidis (January 2003). "Reliable identification of bounded-length viruses is NP-complete". IEEE Transactions on Information Theory. 49 (1): 280–4. doi:10.1109/TIT.2002.806137.