2013-01-24 16 views
7

मान्य करना मैं अभी हमारे german VB.NET forums से गुजर चुका हूं और कुछ दिलचस्प था जो मुझे किसी प्रकार का सिरदर्द देता है।.NET Framework Assemblies

यह वास्तव में को रिफ्लेक्सिल या किसी अन्य आईएल संपादक का उपयोग कर .NET Framework असेंबली संपादित करना संभव है। केवल एक चीज जिसे आप बाईपास करना चाहते हैं वह असेंबली का मजबूत नाम हस्ताक्षर है। असेंबली आईएल बदलने के बाद, आपको मजबूत नाम सत्यापन को छोड़ने के लिए sn.exe -Vr [assemblyname] चलाएं। उसके बाद आपको कैश किए गए देशी चित्रों को साफ़ करना होगा। बस C:\Windows\assembly निर्देशिका से गुज़रें और अपनी असेंबली से संबंधित प्रत्येक छवि को हटाएं। फिर रीबूट करें। जब आप लॉग इन होते हैं, तो ngen install [assemblyname] चलाएं। अब नया मूल छवियां उत्पन्न की गई हैं।

यह काम करता है। मैंने इस वर्चुअल वातावरण (विंडोज एक्सपी x86) में इस प्रक्रिया को सत्यापित किया। अब जो चीज मुझे सबसे ज्यादा चिंता करती है वह यह है कि आप आसानी से RSACryptoServiceProvider के .NET VerifyHash या VerifyData विधियों को बाईपास कर सकते हैं। यह वास्तव में भी काम करता है। मेरा और मेरा परीक्षण करने वाला एक दोस्त इस समस्या को सत्यापित कर सकता है (see screenshots)। वह काफी आसान था।

उदाहरण के लिए, अगर मैं एक लाइसेंस प्रणाली .नेट फ्रेमवर्क क्रिप्टोग्राफी वर्गों पर बनाया गया बनाएंगे, यह सिस्टम-वाइडके लिए नजरअंदाज किया जा सकता है ढांचे का उपयोग कर सिस्टम पर हर .NET अनुप्रयोग। इसके अलावा, सभी लॉग और परिवर्तनों के इनपुट को बदल सकते हैं जिन्हें मैं केवल विधियों में जोड़कर कॉल करता हूं।

अब मेरा प्रश्न है: चूंकि यह एक बड़ी समस्या हो सकती है, मैं इसके बारे में कुछ कैसे कर सकता हूं? बेशक एक दुर्भावनापूर्ण उपयोगकर्ता मेरे एप्लिकेशन को संपादित कर सकता है, लेकिन यह इस प्रणाली-व्यापी के रूप में उतना बुरा नहीं होगा। मैं कुछ ढांचे चेकसम सत्यापन के बारे में सोच रहा था, लेकिन चूंकि .NET Framework के लिए कई अलग-अलग अपडेट हैं, यह असंभव प्रतीत होता है।

कोई समाधान या सुझाव? क्या माइक्रोसॉफ्ट इस समस्या का ख्याल रखता है?

+5

आपको पूरे अभ्यास को फिर से करने की आवश्यकता होगी, लेकिन इस बार व्यवस्थापक उपयोगकर्ता नाम और पासवर्ड के बिना। खतरे के विश्लेषण में यह एक आम झूठ है, घुसपैठ करने वाले के पास दरवाजा बंद करने में कोई बात नहीं है। –

+0

इसके अलावा, लाइसेंसिंग सिस्टम आम तौर पर व्यर्थता में व्यायाम करते हैं। –

उत्तर

7

यदि किसी हमलावर के पास आपके कंप्यूटर पर व्यवस्थापक पहुंच है (जो आपके द्वारा वर्णित हमले के लिए आवश्यक है), तो आप बहुत अधिक खो गए हैं। आप जो कुछ भी कर सकते हैं वह हमलावर द्वारा बाधित किया जा सकता है।

इसके कारण, मुझे लगता है कि यह इस तरह के हमले के खिलाफ बचाव करने की पूरी कोशिश कर रहा है। यदि आपको अविश्वसनीय, संभावित रूप से समझौता किए गए कंप्यूटरों से निपटना है, तो आप उन्हें कुछ भी संवेदनशील करने के लिए भरोसा नहीं कर सकते हैं और आपको इसे अपने सर्वर पर या ऐसा कुछ करना है।

+0

मुझे पता है कि इसके बारे में कुछ करने के लिए व्यर्थ है। मुझे बस दिलचस्पी थी कि माइक्रोसॉफ्ट इसे इतना आसान क्यों बनाता है। वह जवाब नहीं था जिसे मैं ढूंढ रहा था, लेकिन ठीक है। – nikeee

+2

मुझे तर्क की आपकी रेखा समझ में नहीं आ रही है। आप कहते हैं कि इस तरह के हमलों को रोकने के लिए यह समझ में नहीं आता है, लेकिन आपको अभी भी लगता है कि माइक्रोसॉफ्ट को वैसे भी संसाधन खर्च करना चाहिए? – svick

+0

चूंकि एमएस के कर्नेल को .NET Framework और CLR तक पहुंच है, इसलिए कम से कम वे इसे थोड़ा कठिन बना सकते हैं। – nikeee