2011-08-22 15 views
9

मेरे पास एक एंड्रॉइड प्रोजेक्ट है जिसे मैंने हाल ही में ProGuard के साथ obfuscation के माध्यम से चलाने के बाद बाजार में प्रकाशित किया है।ProGuard के साथ एंड्रॉइड कोड obfuscation ... कैसे पता है कि यह obfuscated किया गया है?

परियोजना बिना किसी जटिलताओं के निर्यात की गई है, लेकिन मुझे कैसे पता चलेगा कि यह खराब हो गया है? क्या ऐसा कुछ भी है जो मैं यह सत्यापित करने के लिए कर सकता हूं कि obfuscation सफल था?

उत्तर

3

इंजीनियर को अपने स्वयं के एप्लिकेशन को रिवर्स करने का प्रयास करें। देखें कि आप कोड में क्या पढ़ सकते हैं।

निम्न सवालों का उपयोग करें:

decompiling DEX into Java sourcecode

http://www.taranfx.com/decompile-reverse-engineer-android-apk

+1

इसके लिए धन्यवाद। मैंने दो अलग-अलग ऐप्स को संकलित किया, एक जिसे मैंने obfuscated और एक और है कि मैं obfuscate नहीं किया था। दोनों ऐप्स (गैर-obfuscated और obfuscated) से कोड एक ही दिखते हैं। परिवर्तनीय नाम बदल दिए गए हैं, लेकिन कक्षा के नाम और क्या नहीं रहते हैं। क्या यह obfuscation काम करता है? जिस परियोजना को मैंने अपवित्र नहीं किया है, वह परिवर्तनीय नामों में परिवर्तन कैसे करता है? – dell116

+0

यह इस बात पर निर्भर करता है कि आप काम करने के लिए प्रोजेगा कैसे सेट करते हैं ... लेकिन मुझे इसके साथ ज्यादा अनुभव नहीं है! –

11

dump.txt, mapping.txt, seeds.txt और usage.txt के लिए देखो। वे शायद आपकी परियोजना निर्देशिका में proguard फ़ोल्डर में होंगे। ये तब बनाए जाते हैं जब आपके कोड पर ProGuard चलाया जाता है।

ये obfuscation के बारे में जानकारी से भरे हुए हैं, विशेष रूप से उपयोगी mapping.txt है जो दिखाता है कि प्रोगार्ड ने आपके विभिन्न सदस्य नामों को किस प्रकार बदल दिया है।

+1

मेरे पास प्रोजेक्ट निर्देशिका में एक प्रोगार्ड फ़ोल्डर है, लेकिन इसमें इसके अंदर ज़िलच है .... कुछ भी नहीं .... क्या मुझे लगता है कि ProGuard ने मेरे कोड को ठीक से खराब नहीं किया है? क्या ये फ़ाइलें किसी अन्य निर्देशिका में हो सकती हैं? – dell116

+0

क्या आपकी परियोजना के तहत कहीं भी 'proguard' फ़ोल्डर है? यदि नहीं, तो मैं कहूंगा कि यह शायद सही ढंग से नहीं चला था। –

+0

हां..प्रोगुआर्ड फ़ोल्डर वहां है ... लेकिन इसमें कोई सामग्री नहीं है .... मुझे आपकी हार्ड ड्राइव पर कहीं भी बताई गई फ़ाइलों में से कोई भी नहीं मिला ... इसलिए जब मैंने प्रोजेगार्ड के माध्यम से इसे चलाया तो कुछ तोड़ना चाहिए .... ओह ओह .... – dell116

0

discalimer: मैं decompileandroid.com के मालिक नहीं कर रहा हूँ और मैं इसे बढ़ावा देने के लिए भुगतान नहीं कर रहा हूँ। मैं एक साहसी हूं, जो इस सेवा से संतुष्ट है।

कई अलग-अलग औजारों को प्राप्त करने और उनमें से एक के आउटपुट को पार करने से वास्तव में एक आसान तरीका है (यह निश्चित रूप से आपको क्या हो रहा है इसका बेहतर नियंत्रण देता है)। आप सेवा

decompileandroid.com

मूल रूप से आप को अपलोड करने और .apk फ़ाइल का उपयोग कर सकते हैं और यह आप के लिए इन सभी चरणों को करता है। फिर आप एक .zip फ़ाइल डाउनलोड कर सकते हैं, जिसमें डिकंपील्ड स्रोत शामिल हैं।

आप पहले डीबग मोड में निर्मित अपने .apk को अपलोड कर सकते हैं, फिर रिलीज़ मोड में निर्मित एक। एपीपी अपलोड कर सकते हैं। बस सुनिश्चित करें कि रिलीज निर्माण के लिए build.gradle फ़ाइल में ध्वज minifyEnabledtrue पर सेट है।

अंतर मेरे मामले में काफी स्पष्ट था - मेरे अधिकांश वर्गों को न्यूनतम निर्माण में ए, बी, सी, आदि नाम दिया गया था।

+0

यिक्स! मेरा मतलब है, मुझे यकीन है कि आप पहले से ही एक वेब सर्वर पर एक डिबगबल और गैर-obfuscated निर्माण अपलोड करने के प्रभावों को जानते हैं। हम, आखिरकार, obfuscation के बारे में बात कर रहे हैं तो एक तीसरी पार्टी अपना कोड नहीं पढ़ सकता है। हालांकि यह साइट सतह पर अच्छी लगती है, मुझे यकीन नहीं है कि मैं इसे भरोसा करता हूं। – dell116

+0

हां, ज़ाहिर है कि ज्यादातर स्थितियों में आप अपने एपीके को रिमोट सर्वर पर अपलोड नहीं करना चाहते हैं। विशेष रूप से वाणिज्यिक परियोजनाओं के साथ। मैंने इसे एक आसान विकल्प के रूप में दिया। मेरे मामले में यह एक परीक्षण परियोजना थी, इसलिए मेरे पास चिंतित होने के लिए कुछ भी नहीं था। बेशक कोई हमेशा केवल obfuscated संस्करण अपलोड कर सकता है, अगर यह कोई समस्या नहीं होगी। उस स्थिति में कोई यह देखेगा कि obfuscation कितनी अच्छी तरह से काम किया है। –

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