आईएमएचओ, परीक्षण वायरस का बिंदु ऐसा कुछ है जो हानिरहित होने के लिए जाना जाता है, और एक वायरस के रूप में स्वीकार किया जाता है ताकि अंतिम उपयोगकर्ता सत्यापित कर सकें कि AV सॉफ़्टवेयर चालू है , और वायरस पहचान के प्रभाव को देख सकते हैं। एवी सॉफ्टवेयर के लिए, आग ड्रिल सोचो।
मुझे लगता है कि अधिकांश के लिए इसके लिए हस्ताक्षर है, और इसे सीधे इस तरह पहचानते हैं।
मुझे आश्चर्य नहीं होगा अगर वास्तविक ईआईसीएआर परीक्षण के बिट पैटर्न में बिट पैटर्न शामिल हैं जो संदिग्ध गतिविधि के लिए ऑपकोड की तरह गंध करते हैं, लेकिन मुझे नहीं पता कि यह मामला है या नहीं। यदि ऐसा है, तो यह एक सरल हेरिस्टिक वायरस पहचानकर्ता का वैध परीक्षण हो सकता है। हालांकि, चूंकि ईआईसीएआर परीक्षण लंबे समय के लिए आसपास रहा है, इसलिए मैं यह भी कल्पना करूंगा कि किसी भी ह्यूरिस्टिक जो इसे कैश करता है वह अब जंगली में कुछ भी पकड़ने के लिए पर्याप्त नहीं है।
मुझे उम्मीद नहीं है कि ईआईसीएआर पहचानने की अपेक्षा नहीं है कि "एवी स्थापित है और स्कैन करने की अपेक्षा की गई स्कैनिंग" की तुलना में किसी भी दावे का सबूत है, और यदि एवी सिस्टम विकसित करना है, तो मैं कोई मजबूत बनाने की कोशिश नहीं करता इसके बारे में दावा करें।
अद्यतन:
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
जो ध्यान से (Wikipedia article के अनुसार) से तैयार किया गया था दिलचस्प गुण के एक जोड़े के लिए:
वास्तविक EICAR परीक्षण वायरस निम्न स्ट्रिंग है।
सबसे पहले, इसमें केवल प्रिंट करने योग्य ASCII वर्ण होते हैं। इसमें अक्सर व्हाइटस्पेस और/या अंत में एक नई लाइन शामिल होगी, लेकिन इसका इसकी पहचान या उसके कार्य पर कोई प्रभाव नहीं पड़ता है।
जो दूसरी संपत्ति उठाता है: वास्तव में यह 8086 सीपीयू के लिए एक निष्पादन योग्य प्रोग्राम है। इसे एक्सटेंशन के साथ फ़ाइल में सहेजा जा सकता है (उदाहरण के लिए नोटपैड के माध्यम से) .COM, और इसे एमएसडीओएस, एमएसडीओएस के अधिकांश क्लोन, और यहां तक कि विंडोज कमांड प्रॉम्प्ट के एमएसडीओएस संगतता मोड में भी चलाया जा सकता है (Vista पर, लेकिन किसी भी 64-बिट विंडोज़ पर नहीं, क्योंकि उन्होंने फैसला किया कि 16-बिट वास्तविक मोड के साथ संगतता अब प्राथमिकता नहीं थी।)
रन करते समय, यह "ईआईसीएआर-मानक-एंटीवायरस-टेस्ट-फ़ाइल" स्ट्रिंग आउटपुट के रूप में उत्पादन करता है! " और फिर बाहर निकलता है।
वे इस प्रयास में क्यों गए? स्पष्ट रूप से शोधकर्ता एक ऐसा कार्यक्रम चाहते थे जो भागने के लिए सुरक्षित हो, ताकि वास्तविक स्कैनर को वास्तविक वायरस पर कब्जा करने और वास्तविक संक्रमण का जोखिम उठाने के बिना परीक्षण किया जा सके। वे यह भी चाहते थे कि पारंपरिक और अपरंपरागत दोनों तरीकों से इसे वितरित करना आसान हो।चूंकि यह पता चला है कि x86 रीयल-मोड निर्देश सेट का एक उपयोगी सबसेट है जहां प्रत्येक बाइट प्रतिबंध को पूरा करता है कि यह एक प्रिंट करने योग्य ASCII चरित्र भी है, उन्होंने दोनों लक्ष्यों को हासिल किया है।
विकी आलेख में blow-by-blow explanation का एक लिंक है जो प्रोग्राम वास्तव में काम करता है जो एक दिलचस्प पठन भी है। जटिलता को जोड़ना तथ्य यह है कि कंसोल पर प्रिंट करने या डॉस वास्तविक मोड में किसी प्रोग्राम से बाहर निकलने का एकमात्र तरीका सॉफ़्टवेयर इंटरप्ट निर्देश जारी करना है, जिसका ऑपोड (0xCD) एक प्रिंट करने योग्य 7-बिट ASCII वर्ण नहीं है। इसके अलावा, दो इंटरप्ट्स को प्रत्येक को एक बाइट तत्काल पैरामीटर की आवश्यकता होती है, जिसमें से एक को स्पेस कैरेक्टर होना चाहिए। चूंकि स्वयं लगाए गए नियम रिक्त स्थान की अनुमति नहीं दे रहे थे, इसलिए कार्यक्रम के अंतिम बाइट्स (स्ट्रिंग में "एच + एच *") के सभी चार चारों ओर निर्देशक पॉइंटर उन्हें निष्पादित करने से पहले संशोधित किए जाते हैं।
वियोजन और मेरी XP बॉक्स पर एक कमांड प्रॉम्प्ट पर डीबग कमांड के साथ EICAR.COM डंपिंग, मैं देख रहा हूँ:
0C32:0100 58 POP AX
0C32:0101 354F21 XOR AX,214F
0C32:0104 50 PUSH AX
0C32:0105 254041 AND AX,4140
0C32:0108 50 PUSH AX
0C32:0109 5B POP BX
0C32:010A 345C XOR AL,5C
0C32:010C 50 PUSH AX
0C32:010D 5A POP DX
0C32:010E 58 POP AX
0C32:010F 353428 XOR AX,2834
0C32:0112 50 PUSH AX
0C32:0113 5E POP SI
0C32:0114 2937 SUB [BX],SI
0C32:0116 43 INC BX
0C32:0117 43 INC BX
0C32:0118 2937 SUB [BX],SI
0C32:011A 7D24 JGE 0140
0C32:0110 45 49 43 41 EICA
0C32:0120 52 2D 53 54 41 4E 44 41-52 44 2D 41 4E 54 49 56 R-STANDARD-ANTIV
0C32:0130 49 52 55 53 2D 54 45 53-54 2D 46 49 4C 45 21 24 IRUS-TEST-FILE!$
0C32:0140 48 DEC AX
0C32:0141 2B482A SUB CX,[BX+SI+2A]
JGE 0140
अप करने के लिए निर्देश को क्रियान्वित करने के बाद, पिछले दो निर्देश होने के लिए संशोधित किया गया है:
0C32:0140 CD21 INT 21
0C32:0142 CD20 INT 20
अधिकांश डॉस सिस्टम कॉल AH
या AX
रजिस्टर निष्पादित करने के लिए समारोह को निर्दिष्ट के मूल्य के साथ INT 21
के माध्यम से रवाना किया गया। इस मामले में, AH
0x09 है, जो प्रिंट स्ट्रिंग फ़ंक्शन है, जो 0x011C ऑफसेट पर शुरू होने वाली स्ट्रिंग को प्रिंट करता है, जिसे डॉलर चिह्न से समाप्त किया जाता है। (आपको शुद्ध डॉस में एक अलग चाल के साथ एक डॉलर का चिह्न मुद्रित करना था।) INT 20
कॉल उस बिंदु से पहले किसी भी अतिरिक्त बाइट को निष्पादित करने से पहले प्रक्रिया को समाप्त कर देता है।
स्व-संशोधित कोड प्रारंभिक वायरस चाल था, लेकिन यहां इसका उपयोग बाइट मानों पर प्रतिबंध को संरक्षित करने के लिए किया जाता है जिसे स्ट्रिंग में उपयोग किया जा सकता है। एक आधुनिक प्रणाली में, यह संभव है कि डेटा निष्पादन सुरक्षा सुविधा संशोधित करेगी, अगर इसे COM फ़ाइल चलाने वाले MSDOS संगतता मोड पर लागू किया गया है।
यह थोड़ा प्रोग्रामिंग से संबंधित कैसे है? – user73993
शायद वह एवी सिस्टम लिखने के बारे में सोच रहा है? बेशक, वह इस तरह की एक प्रणाली को कैसे प्राप्त करने के बारे में सोच रहा था .... – RBerteig
मैं सिर्फ वायरस पहचान तंत्र और कार्यक्रमों में उन्हें कार्यान्वित करने के बारे में पढ़ रहा था। चूंकि हेरिस्टिक्स और फोरेंसिक प्रोग्रामिंग से संबंधित हैं, मैंने इसे प्रश्न पूछने के लिए उपयुक्त स्थान के रूप में सोचा था :) –