.Apk फ़ाइल से स्रोत कोड प्राप्त करें? [बन्द है]


21

एक .apk फ़ाइल होने से, क्या मुझे कोई स्रोत कोड मिल सकता है?


7
इससे पहले, क्या आपने जाँच की है कि क्या पैकेज खुला स्रोत है?
ott--

.Apk केवल एक .zip फ़ाइल है। लेकिन दुर्भाग्य से 'रिलीज़' के लिए किसी भी ऐप का निर्माण संभवतः ProGuard द्वारा संरक्षित किया जाएगा ।
डैनियल लोपेज

@MatthewRead The Op पूछता है कि क्या वह एक एपीआई से कोड प्राप्त कर सकता है, और मैंने जवाब दिया कि इस घटना को क्या कहा जाता है और कम से कम एक समान ऐप बनाने से रोकने के तरीके। वह यह नहीं कहता है कि कोड प्राप्त करने से कैसे रोका जाए तो हाँ यह प्रश्न का उत्तर देता है।
मानव

जवाबों:


15

यहां तक ​​कि अगर ProGuard का उपयोग किया गया था, तब भी आप कुछ दिलचस्प अंतर्दृष्टि प्राप्त कर सकते हैं। यहां एक विस्तृत विवरण के साथ एक StackOverflow प्रश्न है: Android: एपीके फ़ाइल से स्रोत कोड प्राप्त करना । एक विस्तृत गाइड के साथ YouTube वीडियो । और उसके बारे में एक ब्लॉग प्रविष्टि: एंड्रॉइड एपीके फ़ाइल से स्रोत कोड कैसे पुनर्प्राप्त करें


11

यदि आप भाग्यशाली हैं और आपकी .apkफ़ाइल को Proguard या एनालॉग द्वारा संरक्षित नहीं किया गया है , तो आप एपीके टूल का उपयोग कर सकते हैं । यह रिवर्स इंजीनियरिंग 3rd पार्टी, बंद, बाइनरी एंड्रॉइड ऐप के लिए एक उपकरण है।


Apktool केवल स्माली-कोड उत्पन्न करता है, जावा कोड नहीं - यह एक बड़ा अंतर है।
रॉबर्ट

2

एसओ में परकुल गर्ग द्वारा कॉम्युनिटी विकी से एक :


डिकोडिंग .apk फ़ाइलों के लिए प्रक्रिया, चरण-दर-चरण विधि:

चरण 1:

  1. एक नया फ़ोल्डर बनाएं और उस .apk फ़ाइल को कॉपी करें जिसे आप डीकोड करना चाहते हैं।

  2. अब इस .apk फ़ाइल के एक्सटेंशन का नाम बदलकर .zip (जैसे filename.apk से filename.zip) का नाम बदलें और इसे सहेजें। अब आप classes.dex फ़ाइलों आदि का उपयोग कर सकते हैं। इस स्तर पर आप ड्रॉबल देख सकते हैं, लेकिन xml और java फाइलें नहीं, इसलिए जारी रखें।

चरण 2:

  1. अब इसी .zip फाइल को उसी फोल्डर (या न्यू फोल्डर) में निकाले।

  2. Dex2jar डाउनलोड करें और इसे उसी फ़ोल्डर (या न्यू फोल्डर) में निकालें।

  3. Classes.dex फ़ाइल को dex2jar फ़ोल्डर में ले जाएं।

  4. अब कमांड प्रॉम्प्ट खोलें और डायरेक्टरी को उस फोल्डर (या न्यू फोल्डर) में बदलें। फिर लिखें d2j-dex2jar classes.dexऔर एंटर दबाएं। अब आपके पास एक ही फ़ोल्डर में classes.dex.dex2jar फ़ाइल है।

  5. Java decompiler डाउनलोड करें, jd-gui पर डबल क्लिक करें, खुली फ़ाइल पर क्लिक करें, और उस फ़ोल्डर से classes.dex.dex2jar फ़ाइल खोलें: अब आपको क्लास फाइलें मिलती हैं।

  6. इन सभी वर्ग फ़ाइलों को सहेजें (jd-gui में, src नाम से फ़ाइल -> सभी स्रोतों को सहेजें) पर क्लिक करें। इस स्तर पर आपको जावा स्रोत मिलता है लेकिन .xml फ़ाइलें अभी भी अपठनीय हैं, इसलिए जारी रखें।

चरण 3:

अब एक और नया फ़ोल्डर खोलें

  1. .Apk फ़ाइल में रखें जिसे आप डीकोड करना चाहते हैं

  2. Apktool और apktool इंस्टॉल विंडो का नवीनतम संस्करण डाउनलोड करें (दोनों एक ही लिंक से डाउनलोड किए जा सकते हैं) और उन्हें एक ही फ़ोल्डर में रखें

  3. फ्रेमवर्क- res.apk डाउनलोड करें और इसे एक ही फ़ोल्डर में रखें (सभी एपीके फ़ाइल को इस फ़ाइल की आवश्यकता नहीं है, लेकिन यह चोट नहीं पहुंचाती है)

  4. एक कमांड विंडो खोलें

  5. एपीके की मूल निर्देशिका पर नेविगेट करें और निम्न कमांड टाइप करें: apktool if framework-res.apk

  6. apktool d myApp.apk (जहाँ myApp.apk उस फ़ाइलनाम को दर्शाता है जिसे आप डिकोड करना चाहते हैं)

अब आपको उस फोल्डर में एक फाइल फोल्डर मिलता है और आप एपीके की xml फाइल्स को आसानी से पढ़ सकते हैं।

चरण 4:

यह केवल एक के लिए दोनों फ़ोल्डर (इस मामले में दोनों नए फ़ोल्डर) की सामग्री की नकल करने के लिए कोई कदम नहीं है

और स्रोत कोड का आनंद लें ...

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