# डीबग करने योग्य एप्लिकेशन का शोधन
htARTE (HackTricks AWS Red Team Expert) के साथ जीरो से हीरो तक AWS हैकिंग सीखें! HackTricks का समर्थन करने के अन्य तरीके: * अगर आप अपनी कंपनी का विज्ञापन HackTricks में देखना चाहते हैं या HackTricks को PDF में डाउनलोड करना चाहते हैं तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें! * [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें * हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें * **जुड़ें** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) से या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live) पर **फॉलो** करें। * **अपने हैकिंग ट्रिक्स साझा करें, PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
# **रूट और डीबग की जांच को छलकरना** इस पोस्ट का यह खंड [**https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0**](https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0) से एक सारांश है। ## एंड्रॉइड एप्लिकेशन को डीबग करने और जांच को छलकरने के चरण ### **ऐप को डीबग करना** https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0 पर आधारित सामग्री 1. **APK को डिकॉम्पाइल करें:** - APK को डिकॉम्पाइल करने के लिए APK-GUI टूल का उपयोग करें। - _android-manifest_ फ़ाइल में, `android:debuggable=true` डालें ताकि डीबगिंग मोड सक्षम हो। - संशोधित एप्लिकेशन को पुनः कॉम्पाइल, साइन करें, और zipalign करें। 2. **संशोधित एप्लिकेशन को इंस्टॉल करें:** - निम्नलिखित कमांड का उपयोग करें: `adb install `। 3. **पैकेज नाम प्राप्त करें:** - तीसरे पक्षीय एप्लिकेशनों की सूची और पैकेज नाम खोजने के लिए `adb shell pm list packages –3` का निष्पादन करें। 4. **ऐप को डीबगर कनेक्शन के लिए इंतजार करने के लिए सेट करें:** - कमांड: `adb shell am setup-debug-app –w `। - **नोट:** इस कमांड को प्रत्येक बार चलाया जाना चाहिए पहले एप्लिकेशन को शुरू करने से पहले ताकि यह डीबगर का इंतजार करे। - स्थायित्व के लिए, `adb shell am setup-debug-app –w -–persistent ` का उपयोग करें। - सभी झंडे हटाने के लिए, `adb shell am clear-debug-app ` का उपयोग करें। 5. **Android Studio में डीबगिंग के लिए तैयारी करें:** - Android Studio में जाएं _File -> Open Profile or APK_ में। - पुनः कॉम्पाइल किया गया APK खोलें। 6. **मुख्य जावा फ़ाइलों में ब्रेकपॉइंट सेट करें:** - `MainActivity.java` (विशेष रूप से `onCreate` विधि में), `b.java`, और `ContextWrapper.java` में ब्रेकपॉइंट रखें। ### **जांच को छलकरना** एप्लिकेशन, कुछ समयों पर, यह सत्यापित करेगा कि यह डीबग करने योग्य है और रूटेड डिवाइस की निर्देशक भी जांचेगा। डीबगर का उपयोग करके ऐप जानकारी को संशोधित करने, डीबग करने योग्य बिट को असेट करने, और खोजी गई बाइनरी के नामों को बदलने के लिए उपयोग किया जा सकता है ताकि इन जांचों को छलकर सकें। डीबग की जांच के लिए: 1. **झंडे की सेटिंग संशोधित करें:** - डीबगर कंसोल के वेरिएबल सेक्शन में जाएं: `this mLoadedAPK -> mApplicationInfo -> flags = 814267974`। - **नोट:** `flags = 814267974` का बाइनरी प्रतिनिधित्व `11000011100111011110` है, जिससे पता चलता है कि "Flag_debuggable" सक्रिय है। ![https://miro.medium.com/v2/resize:fit:1400/1*-ckiSbWGSoc1beuxxpKbow.png](https://miro.medium.com/v2/resize:fit:1400/1*-ckiSbWGSoc1beuxxpKbow.png) ये कदम समूह में एकत्रित करते हैं कि ऐप्लिकेशन को डीबग किया जा सकता है और डीबगर का उपयोग करके कुछ सुरक्षा जांचों को छलकर सकते हैं, जो ऐप्लिकेशन के व्यवहार का अधिक विश्लेषण या संशोधन सुनिश्चित करता है। कदम 2 में एक झंडे की मान को 814267972 में बदलने की आवश्यकता है, जो बाइनरी रूप में 110000101101000000100010100 के रूप में प्रतिनिधित्व किया जाता है। # **एक सुरक्षा दोष का शोधन** एक विकल्प प्रदान किया गया था जिसमें एक वंशी एप्लिकेशन का उपयोग किया गया जिसमें एक बटन और एक टेक्स्टव्यू था। प्रारंभ में, एप्लिकेशन "Crack Me" प्रदर्शित करता है। लक्ष्य है कि स्रोत कोड को संशोधित किए बिना "Try Again" संदेश को "Hacked" में रनटाइम में बदलें। ## **दोष की जांच करना** - एप्लिकेशन को `apktool` का उपयोग करके डिकॉम्पाइल किया गया था ताकि `AndroidManifest.xml` फ़ाइल तक पहुंचा जा सके। - `AndroidManifest.xml` में `android_debuggable="true"` की उपस्थिति यह सूचित करती है कि एप्लिकेशन डीबग करने योग्य है और छलांग के लिए संवेदनशील है। - यह ध्यान देने योग्य है कि `apktool` का उपयोग केवल कोड को संशोधित किए बिना डीबग करने योग्य स्थिति की जांच के लिए किया गया था। ## **सेटअप की तैयारी** - इस प्रक्रिया में एम्युलेटर प्रारंभ करना, वंशी एप्लिकेशन को इंस्टॉल करना, और `adb jdwp` का उपयोग करके डलविक वीएम पोर्ट्स की पहचान करना शामिल था। - JDWP (जावा डीबग वायर प्रोटोकॉल) एक अद्वितीय पोर्ट को उजागर करके वीएम में चल रहे एप्लिकेशन की डीबगिंग की अनुमति देता है। - दूरस्थ डीबगिंग के लिए पोर्ट फॉरवार्डिंग आवश्यक था, जिसके बाद लक्षित एप्लिकेशन को जेडीबी से जोड़ने की आवश्यकता थी। ## **रनटाइम पर कोड इंजेक्शन** - छलांग को सेट करके और एप्लिकेशन के फ्लो को नियंत्रित करके छलांग किया गया था। - `classes` और `methods ` जैसे कमांड्स का उपयोग किया गया था ताकि एप्लिकेशन की संरचना का पता चल सके। - `onClick` विधि पर एक ब्रेकपॉइंट सेट किया गया था, और इसका नियंत्रण किया गया था। - `locals`, `next`, और `set` कमांड्स का उपयोग किया गया था ताकि स्थानीय चरों की जांच और संशोधन किया जा सके, विशेष रूप से "Try Again" संदेश को "Hacked" में बदलने के लिए। - संशो