43 KiB
APK डीकंपाइलर्स
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- क्या आप किसी साइबर सुरक्षा कंपनी में काम करते हैं? क्या आप अपनी कंपनी को HackTricks में विज्ञापित देखना चाहते हैं? या क्या आपको PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग करने की आवश्यकता है? सदस्यता योजनाएं की जांच करें!
- The PEASS Family की खोज करें, हमारा विशेष NFT संग्रह
- आधिकारिक PEASS और HackTricks swag प्राप्त करें
- 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या मुझे Twitter पर फ़ॉलो करें 🐦@carlospolopm.
- हैकिंग ट्रिक्स साझा करें और PR जमा करके hacktricks repo और hacktricks-cloud repo को.
JD-Gui
पहला प्रसिद्ध gui जावा डीकंपाइलर, आप इसे उपयोग करके APK से जावा कोड की जांच कर सकते हैं जब आप इसे प्राप्त कर लेते हैं।
Jadx
यह बिल्डिन जावा (बहु-प्लेटफ़ॉर्म) है और इस समय मुझे लगता है कि यह सिफारिश किया जाता है।
बस नवीनतम संस्करण डाउनलोड करें और इसे बिन फ़ोल्डर से चलाएं:
jadx-gui
यदि आप पाठ खोज, कार्यों की परिभाषाएं पर जाने के लिए (कार्य पर CTRL + बाएं क्लिक) और क्रॉस रेफ (दाएं क्लिक --> उपयोग खोजें) करना चाहते हैं, तो GUI का उपयोग करके आप इसे कर सकते हैं।
यदि आप केवल जावा कोड चाहते हैं, लेकिन GUI का उपयोग नहीं करना चाहते हैं, तो एक बहुत सरल तरीका हैंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंग และ สามารถเข้าถึงได้ง่าย ๆ ผ่านทางเว็บไซต์ของเรา หรือติดต่อเราทางอีเมล์ หรือโทรศัพท์ และเราจะช่วยเหลือคุณในการเลือกสินค้าที่เหมาะสมกับคุณ และให้คำแนะนำที่ดีที่สุดในการใช้งาน และการดูแลรักษาสินค้าของคุณให้ดีที่สุด
@endsection @section('script') @endsection @section('script-bottom') @endsection @section('script-bottom') @endsection @section('script-bottom') @endsection @section('script-bottom') @endsection @section('script-bottom') @endsection @section('script-bottom') @endsection @section('script-bottom') @endsection @section('script-bottom') @endsection @section('script-bottom') @endsection @section('script-bottom') @endsection @section('script-bottom') @endsection @section('script-bottom') @endsection @section('script-bottom') @endsection @section('script-bottom') @endsection @section('script-bottom') @endsection @section('script-bottom') @endsection @section('script-bottom') @endsection @section('script-bottom') ``` jadx app.apk ``` कुछ **दिलचस्प विकल्पों** कोंं (GUI और CLI संस्करण) जोंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंंग และ สถานที่ท่องเที่ยว ในเมืองไทย และต่างประเทศ อาทิเช่น สถานีรถไฟ สถานีขนส่ง สถานีรถบัส สถานีรถไฟฟ้า สถานีรถไฟฟ้าฯ สถานีรถไฟฟ้าสายสีลม สถานีรถไฟฟ้าสายสีส้ม สถานีรถไฟฟ้าสายม่วง สถานีรถไฟฟ้าสายสีเขียว สถานีรถไฟฟ้าสายส้ม สถานีรถไฟฟ้าสายเขียว สถานีรถไฟฟ้าสายแดง สถานีรถไฟฟ้าสายแดง สถานีรถไฟฟ้าสายเหลือง สถานีรถไฟฟ้าสายเหลือง สถานีรถไฟฟ้าสายส้ม สถานีรถไฟฟ้าสายส้ม สถานีรถไฟฟ้าสายสีแดง สถานีรถไฟฟ้าสายสีแดง สถานีรถไฟฟ้าสายสีน้ำเงิน สถานีรถไฟฟ้าสายสีน้ำเงิน สถานีรถไฟฟ้าสายสีเหลือง สถานีรถไฟฟ้าสายสีเหลือง สถานีรถไฟฟ้าสายสีม่วง สถานีรถไฟฟ้าสายสีม่วง สถานีรถไฟฟ้าสายสีแดง สถานีรถไฟฟ้าสายสีแดง สถานีรถไฟฟ้าสายสีน้ำเงิน สถานีรถไฟฟ้าสายสีน้ำเงิน สถานีรถไฟฟ้าสายสีเหลือง สถานีรถไฟฟ้าสายสีเหลือง สถานีรถไฟฟ้าสายสีม่วง สถานีรถไฟฟ้าสายสีม่วง สถานีรถไฟฟ้าสายสีแดง สถานีรถไฟฟ้าสายสีแดง สถานีรถไฟฟ้าสายสีน้ำเงิน สถานีรถไฟฟ้าสายสีน้ำเงิน สถานีรถไฟฟ้าสายสีเหลือง สถานีรถไฟฟ้าสายสีเหลือง สถานีรถไฟฟ้าสายสีม่วง สถานีรถไฟฟ้าสายสีม่วง สถานีรถไฟฟ้าสายสีแดง สถานีรถไฟฟ้าสายสีแดง สถานีรถไฟฟ้าสายสีน้ำเงิน สถานีรถไฟฟ้าสายสีน้ำเงิน สถานีรถไฟฟ้าสายสีเหลือง สถานีรถไฟฟ้าสายสีเหลือง สถานีรถไฟฟ้าสายสีม่วง สถานีรถไฟฟ้าสายสีม่วง สถานีรถไฟฟ้าสายสีแดง สถานีรถไฟฟ้าสายสีแดง สถานีรถไฟฟ้าสายสีน้ำเงิน สถานีรถไฟฟ้าสายสีน้ำเงิน สถานีรถไฟฟ้าสายสีเหลือง สถานีรถไฟฟ้าสายสีเหลือง สถานีรถไฟฟ้าสายสีม่วง สถานีรถไฟฟ้าสายสีม่วง สถานีรถไฟฟ้าสายสีแดง สถานีรถไฟฟ้าสายสีแดง สถานีรถไฟฟ้าสายสีน้ำเงิน สถานีรถไฟฟ้าสายสีน้ำเงิน สถานีรถไฟฟ้าสายสีเหลือง สถานีรถไฟฟ้าสายสีเหลือง สถานีรถไฟฟ้าสายสีม่วง สถานีรถไฟฟ้าสายสีม่วง สถานีรถไฟฟ้าสายสีแดง สถานีรถไฟฟ้าสายสีแดง สถานีรถไฟฟ้าสายสีน้ำเงิน สถานีรถไฟฟ้าสายสีน้ำเงิน สถานีรถไฟฟ้าสายสีเหลือง สถานีรถไฟฟ้าสายสีเหลือง สถานีรถไฟฟ้าสายสีม่วง สถานีรถไฟฟ้าสายสีม่วง สถานีรถไฟฟ้าสายสีแดง สถานีรถไฟฟ้าสายสีแดง สถานีรถไฟฟ้าสายสีน้ำเงิน สถานีรถไฟฟ้าสายสีน้ำเงิน สถานีรถไฟฟ้าสายสีเหลือง สถานีรถไฟฟ้าสายสีเหลือง สถานีรถไฟฟ้าสายสีม่วง สถานีรถไฟฟ้าสายสีม่วง สถานีรถไฟฟ้าสายสีแดง สถานีรถไฟฟ้าสายสีแดง สถานีรถไฟฟ้าสายสีน้ำเงิน สถานีรถไฟฟ้าสายสีน้ำเงิน สถานีรถไฟฟ้าสายสีเหลือง สถานีรถไฟฟ้าสายสีเหลือง สถานีรถไฟฟ้าสายสีม่วง สถานีรถไฟฟ้าสายสีม่วง สถานีรถไฟฟ้าสายสีแดง สถานีรถไฟฟ้าสายสีแดง สถานีรถไฟฟ้าสายสีน้ำเงิน สถานีรถไฟฟ้าสายสีน้ำเงิน สถานีรถไฟฟ้าสายสีเหลือง สถานีรถไฟฟ้าสายสีเหลือง สถานีรถไฟฟ้าสายสีม่วง สถานีรถไฟฟ้าสายสีม่วง สถานีรถไฟฟ้าสายสีแดง สถานีรถไฟฟ้าสายสีแดง สถานีรถไฟฟ้าสายสีน้ำเงิน สถานีรถไฟฟ้าสายสีน้ำเงิน สถานีรถไฟฟ้าสายสีเหลือง สถานีรถไฟฟ้าสายสีเหลือง สถานีรถไฟฟ้าสายสีม่วง สถานีรถไฟฟ้าสายสีม่วง สถานีรถไฟฟ้าสายสีแดง สถานีรถไฟฟ้าสายสีแดง สถานีรถไฟฟ้าสายสีน้ำเงิน สถานีรถไฟฟ้าสายสีน้ำเงิน สถานีรถไฟฟ้าสายสีเหลือง สถานีรถไฟฟ้าสายสีเหลือง สถานีรถไฟฟ้าสายสีม่วง สถานีรถไฟฟ้าสายสีม่วง สถานีรถไฟฟ้าสายสีแดง สถานีรถไฟฟ้าสายสีแดง สถานีรถไฟฟ้าสายสีน้ำเงิน สถานีรถไฟฟ้าสายสีน้ำเงิน สถานีรถไฟฟ้าสายสีเหลือง สถานีรถไฟฟ้าสายสีเหลือง สถานีรถไฟฟ้าสายสีม่วง สถานีรถไฟฟ้าสายสีม่วง สถานีรถไฟฟ้าสายสีแดง สถานีรถไฟฟ้าสายสีแดง สถานีรถไฟฟ้าสายสีน้ำเงิน สถานีรถไฟฟ้าสายสีน้ำเงิน สถานีรถไฟฟ้าสายสีเหลือง สถานีรถไฟฟ้าสายสีเหลือง สถานีรถไฟฟ้าสายสีม่วง สถานีรถไฟฟ้าสายสีม่วง สถานีรถไฟฟ้าสายสีแดง สถานีรถไฟฟ้าสายสีแดง สถานีรถไฟฟ้าสายสีน้ำเงิน สถานีรถไฟฟ้าสายสีน้ำเงิน สถานีรถไฟฟ้าสายสีเหลือง สถานีรถไฟฟ้าสายสีเหลือง สถานีรถไฟฟ้าสายสีม่วง สถานีรถไฟฟ้าสายสีม่วง สถานีรถไฟฟ้าสายสีแดง สถานีรถไฟฟ้าสาย ``` -d --no-res #No resources --no-src #No source code --no-imports #Always write entire package name (very useful to know where is the function that you might want to hook) ``` ## [GDA-android-reversing-Tool](https://github.com/charles2gan/GDA-android-reversing-Tool)GDA एक शक्तिशाली और तेज़ प्रतिलोम विश्लेषण प्लेटफ़ॉर्म है। यह केवल डीकंपाइलिंग के ऑपरेशन का समर्थन ही नहीं करता है, बल्कि इसमें कई उत्कृष्ट फ़ंक्शन भी हैं जैसे कि ख़तरनाक व्यवहार का पता लगाना, गोपनीयता लीक का पता लगाना, सुरक्षा की कमज़ोरी का पता लगाना, पथ का समाधान करना, पैकर पहचान, चरण ट्रैकिंग विश्लेषण, डीओबफ़स्केशन, पायथन और जावा स्क्रिप्ट, डिवाइस मेमोरी निकालना, डेटा डिक्रिप्शन और इन्क्रिप्शन आदि।
केवल विंडोज़ के लिए।
Bytecode-Viewer
एक और दिलचस्प उपकरण जो स्थिर विश्लेषण करने के लिए है: bytecode-viewer। इसकी मदद से आप कई डीकंपाइलर का उपयोग करके APK को डीकंपाइल कर सकते हैं। फिर, आप उदाहरण के लिए, 2 अलग-अलग जावा डीकंपाइलर और एक Smali डीकंपाइलर देख सकते हैं। यह आपको कोड को भी संशोधित करने की अनुमति देता है:
यदि आप कोड को संशोधित करते हैं, तो आप इसे निर्यात कर सकते हैं।
bytecode-viewer की एक बुरी बात यह है कि इसमें संदर्भ या क्रॉस-संदर्भ नहीं होते हैं।
Enjarify
Enjarify एक उपकरण है जो Dalvik bytecode को समरूपी जावा bytecode में अनुवादित करने के लिए है। इससे जावा विश्लेषण उपकरण Android एप्लिकेशन का विश्लेषण कर सकते हैं।
Dex2jar एक पुराना उपकरण है जो Dalvik को जावा bytecode में अनुवादित करने का प्रयास करता है। यह अधिकांश समय में ठीक काम करता है, लेकिन कई अस्पष्ट सुविधाएं या एज केस के कारण इसे असफल कर देगा या फिर चुपचाप गलत परिणाम प्रदान करेगा। इसके विपरीत, Enjarify का उद्देश्य है कि यह जितने भी मामलों में संभव हो सके काम करे, यहां तक कि ऐसे कोड के लिए भी जहां Dex2jar असफल हो जाएगा। इसके अलावा, Enjarify सही ढंग से यूनिकोड क्लास नाम, एक से अधिक प्रकार के रूप में उपयोग होने वाले स्थिरांक, निहित कास्ट, अप्रत्याशित नियमित नियंत्रण में छलांग, बहुत सारे स्थिरांकों का संदर्भ करने वाली कक्षाएँ, बहुत लंबी मेथड, कैचऑल हैंडलर के बाद के अप्रत्याशित हैंडलर, और गलत प्रकार के स्थिरांकों की स्थायी मूल्यों का सही संचालन करता है।
CFR
CFR आधुनिक जावा सुविधाओं को डीकंपाइल करेगा - जैसे कि जावा 9, 12 & 14, लेकिन यह पूरी तरह से जावा 6 में लिखा गया है, इसलिए यह कहीं भी काम करेगा! (FAQ) - यह अन्य JVM भाषाओं से क्लास फ़ाइलों को भी जावा में वापस लाने का अच्छा प्रयास करेगा!
उस JAR फ़ाइल का उपयोग इस प्रकार किया जा सकता है:
java -jar ./cfr.jar "$JARFILE" --outputdir "$OUTDIR"
बड़े JAR फ़ाइलों के लिए मेरे पास मेमोरी की कमी की समस्या थी। यदि आपके साथ भी ऐसा होता है, तो आप आसानी से JVM के मेमोरी आवंटन पूल का आकार बदल सकते हैं।
java -Xmx4G -jar ./cfr.jar "$JARFILE" --outputdir "$OUTDIR"
इस उदाहरण में अधिकतम 4GB का आवंटन किया जा सकेगा।
आउटपुट निर्देशिका में, आप डीकंपाइल किए गए .java
फ़ाइलों के साथ, डीकंपाइलेशन का सारांश भी पाएंगे।
Fernflower
अगला है Fernflower, जो IntelliJ IDEA का हिस्सा है। सभी लोग इसे एक विश्लेषणात्मक डीकंपाइलर के रूप में उल्लेख करते हैं (जैसा कि उनके परियोजना विवरण में उल्लेख किया गया है), लेकिन कोई नहीं बताता कि यह वास्तव में क्या मतलब होता है। मैंने केवल इस Stackoverflow प्रश्न को खोजा है, जो आज तक उत्तरहीन है।
फिर भी, क्योंकि कोई स्वयंसेवी रिलीज़ नहीं है, आपको इसे खुद बनाना होगा। Gradle पर आधारित परियोजना के रूप में, आप इसे क्लोन कर सकते हैं और फिर निम्नलिखित कमांड चला सकते हैं, यहां तक कि आपके मशीन पर Gradle स्थापित है।
cd ./plugins/java-decompiler/engine && gradle jar
यहां, हम पहले फर्नफ्लावर के रूट निर्देशिका में अपनी कार्य निर्देशिका को स्विच करते हैं। फिर, हम ग्रेडल को निर्देशित करते हैं कि फ़ाइल ./build/libs/fernflower.jar
को बनाएं।
फर्नफ्लावर का आह्वान CFR के आह्वान के समान है।
java -jar ./fernflower.jar "$JARFILE" "$OUTDIR"
यहां वर्णित डीकंपाइलरों में, यह एकमात्र ऐसा है जो जेआर फ़ाइल में उत्पन्न .java
फ़ाइलों को आउटपुट करता है। आप unzip
का उपयोग करके आसानी से स्रोत फ़ाइलों को निकाल सकते हैं।
Krakatau
क्या आप ऊपर दिए गए Enjarify को याद करते हैं? वही लेखक एक डीकंपाइलर का विकासक भी हैं, जिसका नाम Krakatau है।
इसके विपरीत, इस परियोजना को पायथन में लिखा गया है। और मुझे लगता है कि इसी कारण से यह दूसरों से थोड़ा अलग है।
मुझे परियोजना के README से उद्धरण देने दें।
अगले, सुनिश्चित करें कि आपके पास उन सभी बाहरी कक्षाओं (अर्थात पुस्तकालयों) के परिभाषाएं वाले जार हैं, जिनका उल्लेख किया जा सकता है जिनके द्वारा आप डीकंपाइल करने का प्रयास कर रहे हैं। इसमें मानक पुस्तकालय कक्षाएं (अर्थात JRT) शामिल हैं।
और विवरण के अनुसार, ये मानक पुस्तकालय कक्षाएं जावा के 8 वर्जन तक के साथ rt.jar
फ़ाइल के रूप में आती हैं। बाद के संस्करणों के लिए, लेखक jrt-extractor प्रदान करता है, जो हमारे लिए इस फ़ाइल को उत्पन्न कर सकता है।
तो हम उस उपकरण को डाउनलोड करते हैं और निम्नलिखित कमांड चलाते हैं।
cd ./jrt-extractor
javac JRTExtractor.java
java -ea JRTExtractor
इसे एक फ़ाइल rt.jar
को निर्देशिका के अंदर लिखा जाना चाहिए।
दिए गए फ़ाइल के आधार पर, हम Krakatau को निम्नलिखित तरीके से चला सकते हैं।
./Krakatau/decompile.py -out "$OUTDIR" -skip -nauto -path ./jrt-extractor/rt.jar "$JARFILE"
मुझे प्रोजेक्ट के GitHub परमीटरों की व्याख्या के लिए संदर्भित करने दें। बस ध्यान दें कि आपके JAR फ़ाइल द्वारा उपयोग की जाने वाली किसी भी पुस्तकालय के लिए, Krakatau आपसे -path
ध्वज के रूप में इसे जोड़ने की आवश्यकता होगी।
procyon
स्थापित होने के बाद, उपयोग सरल है।
procyon -jar "$JARFILE" -o "$OUTDIR"
संदर्भ
{% embed url="https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr" %}
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- क्या आप किसी साइबर सुरक्षा कंपनी में काम करते हैं? क्या आप अपनी कंपनी को HackTricks में विज्ञापित देखना चाहते हैं? या क्या आपको PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग करने की आवश्यकता है? सदस्यता योजनाएं की जांच करें!
- The PEASS Family की खोज करें, हमारा एकल NFT संग्रह
- आधिकारिक PEASS & HackTricks swag प्राप्त करें
- 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या मुझे Twitter 🐦@carlospolopm** का पालन करें**.
- अपने हैकिंग ट्रिक्स को hacktricks रेपो और hacktricks-cloud रेपो में पीआर जमा करके अपनी ट्रिक्स साझा करें।