क्या एंड्रॉइड .apk फ़ाइल को विघटित करना संभव है?


86

क्या उपयोगकर्ता मेरे एप्लिकेशन की apk फ़ाइल को वास्तविक कोड में वापस बदल सकते हैं? यदि वे करते हैं - क्या इससे बचाव का कोई तरीका है?


1
एपीके विघटित करने की कई विधियाँ हैं । मैं सिर्फ अधिक बार APKTool, इसका सबसे अच्छा और सबसे शक्तिशाली। इसके साथ APK फ़ाइलों को संशोधित करने के लिए बहुत आसान है ।
टारनफैक्स

मैंने यहाँ एक ब्लॉग पोस्ट लिखी है: codexplo.wordpress.com/2012/03/15/… लेकिन फिर से, मोटे तौर पर कोड के लिए यह मुश्किल होगा ...
rokonoid

1
yeblon.com/how-to-decompile-android-apk-app-files - यह बेल हो सकता है
हरि

जवाबों:


80

सबसे पहले, एक apk फ़ाइल एक संशोधित जार फ़ाइल है। तो असली सवाल यह है कि क्या वे डेक्स फाइलों को अंदर समेट सकते हैं। उत्तर की तरह है। डिसेक्सलर और स्माली जैसे डिसेबल्लर पहले से ही हैं । आप उम्मीद कर सकते हैं कि ये केवल बेहतर हो सकते हैं, और सैद्धांतिक रूप से वास्तविक जावा स्रोत (कम से कम कभी-कभी) के लिए विघटित होना संभव है। पिछले सोर्स को डीईएक्सआईएल जावा सोर्सकोड में डीकोडिंग करके देखें ।

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


45
नेवर से नेवर। स्थगन एक निर्धारित चोर को नहीं रोकेगा लेकिन यह कई अन्य लोगों को धीमा या रोक देगा। प्रोगार्ड के साथ प्रसंस्करण एक आसान और विश्वसनीय तरीका है जो आपके कोड को बाधित करता है और एक बोनस के रूप में यह इसे भी अनुकूलित करेगा। और यह एंड्रॉइड एसडीके में शामिल है, इसलिए यह Google द्वारा समर्थित है।
बैरी फ्रूटमैन

3
Obfuscation निश्चित रूप से काम करता है, लेकिन आपको अधिक स्पष्ट रूप से परिभाषित करना होगा कि आपका लक्ष्य क्या है। जाहिर है एकमात्र तरीका है कि आप कभी भी अपने स्रोत कोड को सही मायने में सुरक्षित रख सकते हैं, वह यह है कि सर्वर, क्लाइंट या क्लाइंट को कभी भी कोई एक्सेस न दे। ध्यान दें कि XML फ़ाइलों में संदर्भ वाले वर्गों पर Proguard अच्छी तरह से काम नहीं करता है। आपको उस आस-पास जाने के लिए मैनुअल ऑब्सफेकशन का उपयोग करने की आवश्यकता है।
मैट जेएन

35

एपीके फ़ाइल का विघटन संभव है। लेकिन अगर इसे गलत माना जाए तो कोड को समझना मुश्किल हो सकता है।

एपीके फ़ाइल के अंदर संसाधनों को देखने के लिए ApkTool

  • AndroidManifest.xml और res फ़ोल्डर में सब कुछ (लेआउट xml फाइलें, चित्र, HTML आदि वेबव्यू आदि पर उपयोग किया जाता है)
  • आदेश: apktool.bat d sampleApp.apk
  • नोट: आप 7-ज़िप की तरह ज़िप उपयोगिता का उपयोग करके इसे प्राप्त कर सकते हैं। लेकिन, यह .class फ़ाइलों की .smali फ़ाइल भी निकालता है।

Dex2jar का उपयोग करना

  • .Apk फ़ाइल से .jar फ़ाइल उत्पन्न करता है। हमें इस कोड से स्रोत कोड देखने के लिए JD-GUI की आवश्यकता होती है।
  • आदेश: dex2jar sampleApp.apk

Decompiling। JD-GUI का उपयोग करके .jar

  • । यानी, हम आवेदन से वापस .java प्राप्त करते हैं।

apktool जावा स्रोत फ़ाइलों को बाहर थूक नहीं करता है! केवल स्मली
इगोरगानपोलस्की

1
जैसा कि मैंने पहले ही उत्तर में कहा था, apktool .apk से .jar बनाता है और हमें .java स्रोत फ़ाइलों को प्राप्त करने के लिए JD-GUI का उपयोग टूल।
1916 में gtiwari333

1
तुम freakin 'मेरी जान बचाई! क्या कमाल की पोस्ट है! मैं SSD के असफल होने के कारण पिछले दो दिनों का कोड खो चुका था (दुख की बात है कि मैंने इसे करने के लिए प्रतिबद्ध नहीं था)। हालाँकि, मेरे पास एपीके था और अब मेरे पास मेरा स्रोत है, माइंड यू, थोड़ा अलग, लेकिन स्रोत!
farcrats

3

मैं यह भी जोड़ सकता हूं, कि आजकल एंड्रॉइड एप्लिकेशन को ऑनलाइन विघटित करना संभव है, किसी सॉफ़्टवेयर की आवश्यकता नहीं है!

यहां आपके लिए 2 विकल्प दिए गए हैं:


decompileandroid.com ऑफ़लाइन है (जब आप एपीके अपलोड करते हैं तो आपको इसे फिर से डाउनलोड करने में समस्या होगी) और javadecompilers.com/apk ने लंबे समय तक मेरी एपीके को एक कतार में रखा है। मैं ऑफ़लाइन हुआ, फिर ऑनलाइन, यह अभी भी एक कतार में था। मैंने सभी ब्राउज़िंग इतिहास को साफ़ कर दिया है और अब दूसरी बार जो एपीके मैंने अपलोड किया है वह एक कतार में है।
iOSAndroidWindowsMobileAppsDev

1

इस jadx टूल को डाउनलोड करें https://sourceforge.net/projects/jadx/files/

इसे अनज़िप करें और lib फ़ोल्डर में jadx-gui-0.6.1.jar फ़ाइल चलाएं अब अपनी एपीके फ़ाइल ब्राउज़ करें। हॊ गया। सेव बटन को दबाकर ऑटोमेटिकली एपीके डिकंपाइल हो जाएगा और उसे सेव कर देगा। आशा है कि यह आपके लिए काम करेगा। धन्यवाद


0

कभी-कभी आप टूटे हुए कोड प्राप्त करते हैं, जब उपयोग करते हैं dex2jar/ apktool, सबसे विशेष रूप से छोरों में। इससे बचने के लिए, jadx का उपयोग करें , जो कि davvik bytecode को java source कोड में डिक्रिप्ट करता है , बिना पहली फाइल बनाए .jar/ .classजैसा dex2jarकि (APKtool dex2jar का उपयोग करता है, मुझे लगता है)। यह ओपन-सोर्स और सक्रिय विकास में भी है। यहां तक ​​कि यह GUI- कट्टरपंथियों के लिए एक GUI है। कोशिश करो!


0

क्या उपयोगकर्ता मेरे एप्लिकेशन की apk फ़ाइल को वास्तविक कोड में वापस बदल सकते हैं?

हाँ।

लोग विभिन्न उपकरणों का उपयोग कर सकते हैं:

  • विश्लेषण: आपका एपीके
  • डिकोड / अपने APK हैक
    • फ़ाइल FDex2डंप करने के लिए उपयोग करनाdex
      • तब dex2jarमें बदलने के लिए उपयोग कर रहा हैjar
        • फिर स्रोत कोड में jadxपरिवर्तित करने के लिए उपयोग करनाjava

यदि वे करते हैं - क्या इससे बचाव का कोई तरीका है?

हाँ। इसे रोकने के लिए कई (संयुक्त) तरीके (कुछ डिग्री):

  • निम्न स्तर: कोड ऑब्सफैक्शन
    • Android का उपयोग कर ProGuard
  • उच्च स्तर: Android कठोर परिदृश्य का उपयोग करें

अधिक विवरण मेरे चीनी ट्यूटोरियल का उल्लेख कर सकते हैं : Chinese can 安全Chinese Chinese Chinese


0

हाँ, एक .apk फ़ाइल को विघटित करने के लिए कई टन सॉफ्टवेयर उपलब्ध हैं।

हाल ही में, मैंने अपनी वेबसाइट पर 47 बेस्ट एपीके डिकंपाइलरों की एक अंतिम सूची तैयार की थी । मैंने उन्हें 4 अलग-अलग वर्गों में व्यवस्थित किया।

  1. ओपन सोर्स APK Decompilers
  2. ऑनलाइन APK Decompilers
  3. विंडोज, मैक या लिनक्स के लिए APK Decompiler
  4. APK Decompiler Apps

मुझे उम्मीद है कि यह संग्रह आपके लिए उपयोगी होगा।

लिंक: https://www.edopedia.com/blog/best-apk-decompilers/

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.