2012-11-06 18 views
17

मैं कैसे काम करता है DexGuard जाँच करना चाहते हैं लेकिन ऐसा लगता है कि यह एक नि: शुल्क परीक्षण संस्करण नहीं है कि।DexGuard कक्षाओं को एन्क्रिप्ट कैसे करता है?

DexGuard कर सकते हैं एक Android आवेदन एन्क्रिप्ट? या यह बस कोड को खराब कर देता है? DexGuard एन्क्रिप्शन कैसे काम करता है? यदि आप विघटन से पहले और बाद में डेक्सगार्ड के साथ चलने वाले नमूना अनुप्रयोग से कोड प्रदान कर सकते हैं, तो यह बहुत अच्छा होगा।

उत्तर

50

ProGuard नाम कहानियो को प्रदान करता है: यह छोटा है, व्यर्थ नामों से कक्षाएं, विधियों, और क्षेत्रों के मूल नाम बदल सकते हैं। DexGuard अतिरिक्त रूप से स्ट्रिंग एन्क्रिप्शन और कक्षा एन्क्रिप्शन प्रदान करता है। एन्क्रिप्शन शब्द इस संदर्भ में भ्रमित हो सकता है, क्योंकि ये मूल रूप से अधिक आक्रामक प्रकार के obfuscation हैं। नामित तारों और कक्षाओं को कुछ जानबूझकर जटिल एन्क्रिप्टेड रूप में संग्रहीत किया जाता है, और रनटाइम पर चाबियाँ और एल्गोरिदम के साथ डिक्रिप्ट किया जाता है जो आवश्यक रूप से एप्लिकेशन के लिए उपलब्ध होते हैं। इसी तरह, Google Play बाजार एंड्रॉइड 4.1 के लिए पूरे एप्लिकेशन को एन्क्रिप्ट कर सकता है। रनटाइम पर्यावरण एक नियंत्रित फैशन में, इसे निष्पादित करने से पहले एप्लिकेशन को डिक्रिप्ट करता है।

(मैं ProGuard और DexGuard डेवलपर हूं - अगर आप रुचि रखते हैं संपर्क करने के लिए स्वतंत्र लग रहा है)

+0

हाय! आपके जवाब का धन्यवाद! हां, मैं DexGuard में एन्क्रिप्शन की परिभाषा के साथ भ्रमित हो गया। असल में, मेरी समझ यह है कि एन्क्रिप्शन एक गुप्त कुंजी के उपयोग के साथ डेटा बदलता है। हालांकि, यदि एक एंड्रॉइड एप्लिकेशन एन्क्रिप्ट किया गया है, तो Dalvik एन्क्रिप्टेड एप्लिकेशन को समझने में सक्षम नहीं होगा क्योंकि Dalvik में एप्लिकेशन के लिए डिक्रिप्टर नहीं है। निश्चित रूप से कुंजी के साथ एप्लिकेशन के अंदर एक डिक्रिप्टर संलग्न नहीं है। इस तरह, कक्षा को दलविक द्वारा संचालित होने से पहले ही आवेदन द्वारा डिक्रिप्ट किया जाएगा। क्या यह डेक्सगार्ड कैसे काम करता है? – Arci

+0

क्या मैं एंड्रॉइड 4.1 के लिए Google Play की एन्क्रिप्शन के साथ डेक्सगार्ड का उपयोग कर सकता हूं? साथ ही, क्या प्रोजेवार्ड के साथ डेक्सगार्ड का उपयोग करने की सिफारिश की जाती है? मैं प्रोगुआर्ड के पेज पर ध्यान देता हूं कि डेक्सगार्ड कक्षाओं को प्राथमिकता नहीं देता है। यदि मैं डेक्सगार्ड का उपयोग करने जा रहा हूं तो मैं कक्षाओं को कैसे प्रभावित कर सकता हूं? धन्यवाद! : डी – Arci

+2

सही। हां, बाहर से, एक संसाधित एप्लिकेशन अभी भी किसी अन्य एप्लिकेशन की तरह दिखता है; Google Play अभी भी इसे एन्क्रिप्ट कर सकता है। नहीं, आपको ProGuard और DexGuard को गठबंधन करने की आवश्यकता नहीं है, क्योंकि DexGuard पहले ही ProGuard की कार्यक्षमता प्रदान करता है। प्रीविरिफिकेशन केवल जावा माइक्रो संस्करण और जावा 6 के लिए आवश्यक है, एंड्रॉइड के लिए नहीं। –

1

हालांकि वे अवधि एन्क्रिप्शन का उपयोग, ऐसा लगता है कि यह वास्तव में कहानियो है। मैं यह बस इसलिए कहता हूं क्योंकि यद्यपि वे कुछ स्ट्रिंग्स/मानों को एन्क्रिप्ट कर सकते हैं ... तथ्य यह है कि ऐप में एन्क्रिप्शन कुंजी भी संग्रहीत की जानी चाहिए, इसका मतलब है कि वे कोड के लिए "लॉक" प्रदान कर रहे हैं जबकि एक ही समय में "कुंजी" " इसके साथ। पुराने संस्करण में

+3

एरिक वास्तव में बताता है कि उपरोक्त उत्तर में ... – Dori

2

DexGuard "डेस" Alg का उपयोग करके निर्दिष्ट वर्ग प्रयोग करता है। बाद में यह "एईएस" alg बदल गया। एन्क्रिप्ट निर्दिष्ट कक्षा के बाद, यह डिक्रिप्शन विधि के साथ डेटा सरणी प्रारूप के माध्यम से दूसरे वर्ग में encrypte डाटा स्टोर। डिक्रिप्शन विधि जो डेक्स में स्थिर ब्लॉक है, वह क्लिनिट प्रारूप विधि है जो नियंत्रण प्रवाह obfuscation और एपीआई छिपाने का उपयोग कर obfuscated है। तो यह डिक्रिप्शन विधि deobfuscate करने के लिए थोड़ा सा है। अन्य वर्गों में, प्रतिबिंबित ओपोड में निर्दिष्ट वर्ग परिवर्तन का संदर्भ लें। हर बार जब एपीके चलता है, तो एन्क्रिप्टेड कक्षा पहले स्थैतिक विधि में डिक्रिप्ट की जाएगी। और डिक्रिप्ट कक्षाएं प्रतिबिंब एपीआई का उपयोग कर डीवीएम मेमोरी में लोड हो जाएंगी। इसलिए अन्य वर्ग निर्दिष्ट वर्ग को सही तरीके से संदर्भित कर सकता है। बस। मेरी राय में, डेक्सगार्ड बहुत शक्तिशाली obfuscation उपकरण है। यदि प्रत्येक फीचर obfuscations एपीके पर लागू होता है, तो यह आपको पूरे वास्तविक कार्यक्रम को उलटने के लिए बहुत समय लगेगा।