2013-08-09 19 views
9

में संग्रहीत संपत्तियों को सुरक्षित करने के लिए कैसे मेरा मानना ​​है कि यह प्रश्न पहले से ही पूछा गया है लेकिन मैं उनके उत्तरों से संतुष्ट नहीं हूं और इसे फिर से पोस्ट कर रहा हूं।एंड्रॉइड एपीके

क्या कोई मुझे बता सकता है कि मेरी एंड्रॉइड ऐप संपत्तियों को प्रतिलिपि बिल्लियों से कैसे सुरक्षित किया जाए जो समान ऐप बनाना चाहते हैं?

उत्तर

9

हमेशा सुविधा और सुरक्षा के बीच एक व्यापार बंद है। जितना अधिक सुरक्षित आप अपने ऐप को कम सुविधाजनक बनाना चाहते हैं, यह आपके लिए विकसित होगा।

स्रोत कोड स्वाभाविक रूप से असुरक्षित है क्योंकि विशेष रूप से जड़ वाले फोन के साथ डिकंपलिंग की आसानी होती है। अपने स्रोत कोड की सुरक्षा के लिए आप अपने कोड को खराब कर सकते हैं और/या एन्क्रिप्ट कर सकते हैं जो अपघटन को रोक देगा। बिल्कुल यकीन नहीं है कि एंड्रॉइड के लिए कौन से टूल्स उपलब्ध हैं, लेकिन मुझे यकीन है कि यह आपकी बिल्ड प्रक्रिया को जटिल करेगा। यदि आप अभी भी खराब हो जाते हैं, तो डिकंपलिंग अभी भी संभव हो सकता है, लेकिन यह अधिक कठिन होगा और संभवतः उस व्यक्ति को बाइटकोड को जानने और समझने के लिए आपके कोड को विघटित करने की आवश्यकता होगी यदि obfuscation का एक मजबूत स्तर उपयोग किया जाता है।

अपनी संपत्तियों की सुरक्षा के लिए, मेरा मानना ​​है कि आपका एकमात्र विकल्प एन्क्रिप्शन का उपयोग करना है। फिर से यह लागू करने के आधार पर ऐप और/या निर्माण प्रक्रिया को जटिल करेगा।

भले ही आप अपनी संपत्तियों की सुरक्षा के लिए एन्क्रिप्शन का उपयोग करते हैं, आपको अपने स्रोत कोड में एन्क्रिप्शन कुंजी की रक्षा करनी होगी। जाहिर है, इससे कोई फ़र्क नहीं पड़ता कि आप किस एन्क्रिप्शन योजना का उपयोग करते हैं यदि आपकी एन्क्रिप्शन कुंजी स्रोत कोड में सादे टेक्स्ट में है तो कोई भी कुंजी और आपकी संपत्ति और डिक्रिप्ट कर सकता है। यह सब कूदने के लिए एक और छोटी बाड़ जोड़ता है।

हालांकि, अगर आप सही ढंग से एन्क्रिप्शन कुंजी की रक्षा करते हैं और एक अच्छा एन्क्रिप्शन एल्गोरिदम का उपयोग करते हैं तो आपको चिंता करने के लिए कम होना चाहिए। हालांकि यह एक जटिल जटिल प्रक्रिया है, लेकिन आपके कोड में एन्क्रिप्शन के लिए कुंजी का उपयोग करना मुश्किल है और इसे सादे टेक्स्ट में नहीं रखना है। यहां तक ​​कि यदि आप इसे कोड के भीतर सादे टेक्स्ट में नहीं रखते हैं, तो कुछ बिंदु पर यह डिक्रिप्शन करने के लिए स्मृति में होना चाहिए। तो अगर कोई सही समय पर डीबगर या डंप मेमोरी संलग्न कर सकता है, तो यह कुंजी समझौता करेगा। बेशक, इसके लिए एक और अधिक कुशल विरोधी की आवश्यकता है।

कुल मिलाकर, आपको यह तय करने की ज़रूरत है कि आप अपनी संपत्ति चोरी करने के बारे में चिंतित हैं। यदि आप औसत जो कॉपी करने के बारे में चिंतित हैं, तो आपको ठीक होना चाहिए। यदि आप एक पेशेवर हैकर, स्क्रिप्ट किड्डी, आदि के बारे में चिंतित हैं, तो उन तक पहुंच प्राप्त करने के बाद आप शायद भाग्य से बाहर हैं।

7

क्या कोई मुझे बता सकता है कि मेरी एंड्रॉइड ऐप संपत्तियों को प्रतिलिपि बिल्लियों से कैसे सुरक्षित करना है जो समान ऐप बनाना चाहते हैं?

आम तौर पर, आप नहीं कर सकते। यदि यह ऐप में है, तो कोई भी जो उन्हें प्राप्त करना चाहता है।

आप अपनी खुद की एन्क्रिप्शन योजना रोल करने के लिए स्वागत करते हैं, या DexGuard जैसे टूल का उपयोग करते हैं। हालांकि, चूंकि डिक्रिप्शन इंजन और कुंजी ऐप में ही होनी चाहिए, इसलिए ये सभी आपकी संपत्तियों को प्राप्त करने के लिए आवश्यक प्रयासों का स्तर बढ़ाते हैं। इसे और अधिक कठिन बनाना इस बात को कम करेगा कि कोई व्यक्ति आपके एपीके से परिसंपत्तियों को पकड़ लेता है, लेकिन यह संभावना को रोकता नहीं है। और, ज़ाहिर है, इस सामान में से अधिकतर पाने के अन्य तरीके हैं (उदाहरण के लिए, स्क्रीनशॉट और छवि संपादक, ऐप द्वारा वापस चलाए गए ऑडियो रिकॉर्डिंग)।

+0

मैंने एन्क्रिप्टिंग और डिक्रिप्टिंग की अपनी विधि की कोशिश की लेकिन यह ऐप को काफी धीमा कर देता है। इसलिए मैं संपत्तियों को सीधे रखना पसंद करता हूं।किसी भी तरह से आपके उत्तर के लिए धन्यवाद – Yogamurthy

0

आप मजबूत एन्क्रिप्शन एल्गोरिदम का उपयोग करके इसे एन्क्रिप्ट करके संपत्ति फ़ोल्डर सामग्री सुरक्षित कर सकते हैं और उन्हें रनटाइम पर डिक्रिप्ट कर सकते हैं। कॉपीकैट आसानी से डिक्रिप्ट नहीं कर सकते हैं और ज़िप उपकरण का उपयोग करके एपीके निकालने से संपत्ति फ़ोल्डर सामग्री प्राप्त कर सकते हैं।

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