2010-02-23 13 views
9

क्या जावा में एंटीवायरस प्रोग्राम लिखना संभव है जैसे कि यह किसी प्रोग्राम को निष्पादित करने से रोक सकता है? क्या जावा में ओएस का इतना गहरा नियंत्रण हो सकता है?जावा एंटीवायरस ... क्या यह संभव है? कैसे?

अद्यतन: किस बारे में ग #? एक ही प्रतिबंध लागू होते हैं या यह एक बेहतर तरीका है?

+1

कृपया नहीं। तकनीकी रूप से, यह PHP के साथ भी संभव है। – pestilence669

+0

यह शायद सी # के साथ समान होगा। शायद थोड़ा आसान, लेकिन आपको अभी भी सी # की तुलना में अधिक निम्न-स्तर कोड लिखना होगा। –

उत्तर

12

ओएस पर ऐसा प्रभाव होने के संभव है। केवल समस्या है, कि आप मंच स्वतंत्रता खो देंगे या कम से कम प्रत्येक दिए गए प्लेटफ़ॉर्म के लिए कोड लिखना होगा क्योंकि इस तरह के कार्यों को सिस्टम की गहरी पहुंच की आवश्यकता होती है जिसे JNI से प्राप्त किया जा सकता है, जो कि टाई करेगा विधि जिसे आप ओएस में उपयोग करते हैं।

+2

हाँ। इसके लिए जेएनआई की आवश्यकता होगी, और उस समय आप शुद्ध जावा नहीं लिख रहे हैं। –

+2

यह जेएनआई के साथ * हैक * हो सकता है, जिससे आप सी ++ लिख सकते हैं जो जावा के रूप में मास्करेड ... –

1

रूप HalloDu ने कहा, यह JNI के उपयोग के साथ तकनीकी रूप से संभव है। हालांकि, आईआईआरसी, अधिकांश एंटीवायरस प्रोग्राम खुले फाइलों को रोकने के लिए किसी प्रकार के ड्राइवर का उपयोग करते हैं और ओएस को फ़ाइल का उपयोग जारी रखने की अनुमति देने से पहले स्कैन करते हैं। यह मामला है, मूल कोड की मात्रा जिसे आपको लिखना होगा (सी या संभवतः सी ++ में) पर्याप्त होगा और आपके जावा कोड को आकार में बाहर निकालने की संभावना है।

कम-आश स्तर वाले ऐप्स लिखते समय, मैं सी से चिपके रहूंगा। हालांकि, यह उच्च स्तर की भाषा में जीयूआई जैसी चीजों को कोड करने के लिए समझ में आ सकता है, हालांकि जावा मेरी पसंद नहीं होगी, क्योंकि यह व्यक्तिगत रूप से सी के साथ इंटरफ़ेस करने के लिए दर्द का दर्द, मैं सी में पूरी तरह से डरावनी चीज करता हूं क्योंकि मिश्रण भाषाएं दर्द होती हैं। यदि में भाषाएं मिश्रण करने के लिए थे, तो मेरे विकल्प सी और पायथन द्वारा होंगे, क्योंकि ctypes सी के साथ इंटरफेसिंग को वास्तव में आसान बनाता है।

+0

मुझे नहीं लगता कि यह प्रासंगिक है, ओपी लगता है जैसे लक्ष्य जावा में संपूर्ण समाधान लिखना है। – hmcclungiii

+0

शायद मेरा उल्लेखनीय पायथन पूरी तरह से प्रासंगिक नहीं है, लेकिन मैं इसे जेएनआई की तुलना में काफी हद तक उपयोग करता हूं, जिसे आपको स्वीकार करना होगा, काम करने के लिए दर्द का एक प्रकार है। –

+0

जेएनए (जावा नेटिव एक्सेस) जावा के साथ सी कोड इंटरफ़ेस करने की आवश्यकता होने पर बहुत अच्छा काम करता है। –

5

मुझे नहीं लगता कि नियंत्रण की इस प्रकार की, जावा के साथ संभव है इसका मुख्य कारण यह एक वी एम का उपयोग करता है और ओएस से बचा रहता है है। या इसके बजाय ओएस जावा वीएम से बचाया गया है। यह डिजाइन द्वारा है।

स्पष्टता के लिए जोड़ने के लिए संपादित: मैं यह सोचते हैं कि आप जावा में पूरी समाधान लिखने के लिए, और भाषाओं को शामिल नहीं करना चाहते हैं।

0

यह JNI साथ संभव है। हालांकि आप ज्यादातर किसी भी प्रकार के एंटीवायरस काम के लिए जीयूआई और सी/सी ++ के लिए जावा का उपयोग करेंगे।

2

मुझे विश्वास नहीं है कि यह जेएनआई के साथ भी काम करेगा।

ओएस "अवरोध" के मामले में जब ओएस एक नई प्रक्रिया शुरू करता है (या फ़ाइल या जो कुछ भी लिखता है), तो आपको किसी प्रकार का ड्राइवर या कर्नेल मॉड्यूल लिखना होगा जो ओएस में हुक हो। उस ड्राइवर/मॉड्यूल को निश्चित रूप से मूल संकलित कोड में लिखा जाता है। तो ओएस यहां प्रभारी है, और अंततः आपके मूल मॉड्यूल को कॉल करेगा।

तो, के रूप में मैं इसे देख, जावा भी यहाँ शामिल नहीं है।

वैसे भी मूल दृष्टिकोण है। यह लिनक्स में pam की तरह कुछ है जो लगभग सुरक्षा और फ़ाइल/प्रक्रिया अनुमतियों से संबंधित कुछ भी करने को विन्यास योग्य है और उसकी बोली-प्रक्रिया करने के लिए अन्य प्रक्रियाओं कॉल कर सकते हैं का उपयोग कर संभव हो सकता है। ऐसा लगता है कि ओएस प्रत्येक नई प्रक्रिया के लिए एक जेवीएम उदाहरण चलाने के लिए हालांकि ओएस शुरू करने का प्रयास करता है।

0

अपना खुद का एंटीवायरस बनाने में क्या बात है? यह बहुत काम है, लेकिन मुझे लगता है कि अगर आप इसे एक पोर्टेबल एक है कि ब्लॉक और सभी को और अधिक बुरा को हटाता बनाया इसे ठंडा किया जाएगा। आप बने रहना चाहिए, तो ClamAV, यह एक खुला स्रोत और बहुत अच्छी ए वी (कोई वास्तविक समय संरक्षण), लेकिन सी ++ में प्रोग्राम है।

+0

मैं एक नए प्रकार के एंटीवायरस के बारे में सोच रहा हूं इसलिए मुझे परंपरागत लोगों की एक ही पहुंच की आवश्यकता होगी –

+0

जहां तक ​​मुझे पता है, यह एकमात्र खुला स्रोत है, या कम से कम, केवल एक ही है सक्रिय रूप से बनाए रखा। लेकिन अगर आप इसे स्रोत कोड के तहत खड़े कर सकते हैं, तो मुझे यकीन है कि रीयलटाइम स्कैनर बनाना एक चुनौतीपूर्ण नहीं होगा? –

0

आपका सबसे अच्छा शर्त जीयूआई और जावा में तर्क की ज्यादा लिखने के लिए हो सकता है, तो एक सी है या सी ++ बैक-एंड कि स्कैन करता है।

फिर आप प्लेटफॉर्म पर फ्रंट-एंड का पुनः उपयोग कर सकते हैं और मंच के विशिष्ट सामान को निम्न स्तर पर रख सकते हैं।

इस तरह आप जावा भाषाओं की स्वतंत्रता और उपयोग में आसानी और सी/सी ++ की अंतर्निहित प्लेटफॉर्म तक पहुंचने की क्षमता दोनों भाषाओं की ताकत का उपयोग कर सकते हैं।

संबंधित मुद्दे