# APK decompilers {{#include ../../banners/hacktricks-training.md}} **प्रत्येक उपकरण पर अधिक जानकारी के लिए मूल पोस्ट देखें** [**https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr**](https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr) ### [JD-Gui](https://github.com/java-decompiler/jd-gui) पायनियरिंग GUI Java decompiler के रूप में, **JD-Gui** आपको APK फ़ाइलों के भीतर Java कोड की जांच करने की अनुमति देता है। इसका उपयोग करना सीधा है; APK प्राप्त करने के बाद, बस इसे JD-Gui के साथ खोलें और कोड की जांच करें। ### [Jadx](https://github.com/skylot/jadx) **Jadx** Android अनुप्रयोगों से Java कोड को डिकंपाइल करने के लिए एक उपयोगकर्ता-अनुकूल इंटरफ़ेस प्रदान करता है। यह विभिन्न प्लेटफार्मों पर उपयोग में आसानी के लिए अनुशंसित है। - GUI लॉन्च करने के लिए, बिन निर्देशिका में जाएं और निष्पादित करें: `jadx-gui` - कमांड-लाइन उपयोग के लिए, एक APK को डिकंपाइल करें: `jadx app.apk` - आउटपुट निर्देशिका निर्दिष्ट करने या डिकंपाइल विकल्पों को समायोजित करने के लिए: `jadx app.apk -d --no-res --no-src --no-imports` ### [GDA-android-reversing-Tool](https://github.com/charles2gan/GDA-android-reversing-Tool) **GDA**, एक Windows-केवल उपकरण, Android ऐप्स के लिए रिवर्स इंजीनियरिंग के लिए व्यापक सुविधाएँ प्रदान करता है। अपने Windows सिस्टम पर GDA स्थापित करें और चलाएँ, फिर विश्लेषण के लिए APK फ़ाइल लोड करें। ### [Bytecode-Viewer](https://github.com/Konloch/bytecode-viewer/releases) **Bytecode-Viewer** के साथ, आप कई डिकंपाइलरों का उपयोग करके APK फ़ाइलों का विश्लेषण कर सकते हैं। डाउनलोड करने के बाद, Bytecode-Viewer चलाएँ, अपनी APK लोड करें, और एक साथ विश्लेषण के लिए आप जिन डिकंपाइलरों का उपयोग करना चाहते हैं, उन्हें चुनें। ### [Enjarify](https://github.com/Storyyeller/enjarify) **Enjarify** डलविक बाइटकोड को Java बाइटकोड में अनुवाद करता है, जिससे Java विश्लेषण उपकरण Android अनुप्रयोगों का अधिक प्रभावी ढंग से विश्लेषण कर सकते हैं। - Enjarify का उपयोग करने के लिए, चलाएँ: `enjarify app.apk` यह प्रदान की गई APK का Java बाइटकोड समकक्ष उत्पन्न करता है। ### [CFR](https://github.com/leibnitz27/cfr) **CFR** आधुनिक Java सुविधाओं को डिकंपाइल करने में सक्षम है। इसका उपयोग इस प्रकार करें: - मानक डिकंपाइल के लिए: `java -jar ./cfr.jar "app.jar" --outputdir "output_directory"` - बड़े JAR फ़ाइलों के लिए, JVM मेमोरी आवंटन को समायोजित करें: `java -Xmx4G -jar ./cfr.jar "app.jar" --outputdir "output_directory"` ### [Fernflower](https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler/engine) **Fernflower**, एक विश्लेषणात्मक डिकंपाइलर, स्रोत से बनाने की आवश्यकता होती है। बनाने के बाद: - एक JAR फ़ाइल को डिकंपाइल करें: `java -jar ./fernflower.jar "app.jar" "output_directory"` फिर, उत्पन्न JAR से `.java` फ़ाइलों को निकालने के लिए `unzip` का उपयोग करें। ### [Krakatau](https://github.com/Storyyeller/Krakatau) **Krakatau** डिकंपाइलिंग पर विस्तृत नियंत्रण प्रदान करता है, विशेष रूप से बाहरी पुस्तकालयों को संभालने के लिए। - Krakatau का उपयोग करने के लिए मानक पुस्तकालय पथ और डिकंपाइल करने के लिए JAR फ़ाइल निर्दिष्ट करें: `./Krakatau/decompile.py -out "output_directory" -skip -nauto -path "./jrt-extractor/rt.jar" "app.jar"` ### [procyon](https://github.com/mstrobel/procyon) सरल डिकंपाइलिंग के लिए **procyon** के साथ: - एक निर्दिष्ट निर्देशिका में JAR फ़ाइल को डिकंपाइल करें: `procyon -jar "app.jar" -o "output_directory"` ### [frida-DEXdump](https://github.com/hluwa/frida-dexdump) यह उपकरण मेमोरी में चल रहे APK का DEX डंप करने के लिए उपयोग किया जा सकता है। यह स्थिर ऑबफस्केशन को हराने में मदद करता है जो एप्लिकेशन को मेमोरी में निष्पादित करते समय हटा दिया जाता है। {{#include ../../banners/hacktricks-training.md}}