Android ऐप का ट्रैफ़िक कैप्चर करें
Android के लिए Busymate DevTools ऐप फ़ोन पर ही VPN-आधारित कैप्चर इंजन चलाता है। न डेस्कटॉप प्रॉक्सी, न साझा Wi-Fi, न प्रॉक्सी सेटिंग — और इसका ईमानदार ब्योरा कि बिना रूट वाले फ़ोन पर असल में कौन-से ऐप डिक्रिप्ट होंगे।
Android पर किसी ऐप का HTTPS पढ़ने का पारंपरिक रास्ता है लैपटॉप पर प्रॉक्सी और फ़ोन की Wi-Fi सेटिंग्स में हाथ से डाली गई प्रॉक्सी एंट्री। यह तब तक चलता है जब तक आप उस नेटवर्क में हैं। Busymate DevTools प्रॉक्सी को तस्वीर से हटा देता है: ऐप खुद को फ़ोन के VPN के रूप में रजिस्टर करता है, फ़ोन का हर कनेक्शन देखता है, आपके चुने होस्ट को डिवाइस पर बने सर्टिफ़िकेट से डिक्रिप्ट करता है, और नतीजा उसी डैशबोर्ड पर स्ट्रीम करता है जिसे iOS ऐप और डेस्कटॉप प्रॉक्सी इस्तेमाल करते हैं।
प्लेटफ़ॉर्म का एक तथ्य है जिसे यह गाइड नहीं छिपाएगी। Android 7.0 से, कोई ऐप यूज़र के इंस्टॉल किए सर्टिफ़िकेट को तब तक नज़रअंदाज़ करता है जब तक वह खुद उन्हें स्वीकार न करे। यानी फ़ोन हर ऐप का ट्रैफ़िक कैप्चर तो कर सकता है, पर सिर्फ़ उन्हीं ऐप्स को डिक्रिप्ट कर सकता है जो यूज़र सर्टिफ़िकेट स्टोर पर भरोसा करते हैं — व्यवहार में आपके अपने डिबग बिल्ड, साथ में सिस्टम ब्राउज़र और वैसे ही क्लाइंट। पाँचवाँ चरण एक-फ़ाइल का वह बदलाव दिखाता है जो आपके ऐप को इनमें शामिल कर देता है, और बाकी पिनिंग गाइड में है।
आपको क्या
एक फ़ोन, एक खाता, और — अगर अपने ऐप की डिक्रिप्ट की हुई बॉडी चाहिए — एक डिबग बिल्ड जिसे आप दोबारा बना सकें।
Android 7.0 या बाद वाला Android फ़ोन। कैप्चर के लिए न रूट चाहिए न कंप्यूटर।
एक Busymate खाता। Google से या ईमेल और पासवर्ड से साइन इन करें; साइन इन करना फ़ोन को आपके डैशबोर्ड से पेयर करता है।
SSL प्रॉक्सी सूची के लिए उस API के होस्टनेम जिन्हें आप पढ़ना चाहते हैं। सिर्फ़ सूचीबद्ध होस्ट डिक्रिप्ट होते हैं।
अपने ऐप के लिए: उसके डिबग बिल्ड को एक-फ़ाइल वाली नेटवर्क सुरक्षा कॉन्फ़िग के साथ दोबारा बनाने की क्षमता, ताकि वह फ़ोन के बनाए सर्टिफ़िकेट पर भरोसा करे।
इसे क्रम
छह चरण। ऐप का गाइडेड सेटअप प्लेटफ़ॉर्म के प्रॉम्प्ट एक-एक स्क्रीन करके संभालता है; ऐप के बाहर का इकलौता काम पाँचवें चरण का डिबग-बिल्ड बदलाव है।
- 01
ऐप इंस्टॉल करें और कैप्चर की सहमति स्वीकार करें
Google Play से Busymate DevTools इंस्टॉल करें, या अगर आपके क्षेत्र में लिस्टिंग अभी नहीं दिखती तो Android लैंडिंग पेज से साइन किया हुआ रिलीज़ APK साइडलोड करें। पहली बार खोलने पर ऐप नेटवर्क ट्रैफ़िक कैप्चर करने के लिए आपकी स्पष्ट सहमति माँगता है। कैप्चर ऑप्ट-इन है और जब तक आप चालू न करें बंद रहता है — आपके कहने से पहले बैकग्राउंड में कुछ नहीं चलता।


- 02
साइन इन करें — फ़ोन खुद पेयर हो जाता है
Google से या अपने ईमेल और पासवर्ड से साइन इन करें। iOS की तरह, साइन इन करना ही पेयरिंग है: ऐप सेशन के बदले एक लंबी अवधि का डिवाइस क्रेडेंशियल लेता है जो एन्क्रिप्टेड ऐप स्टोरेज में रखा जाता है, और फ़ोन कुछ ही पल में डैशबोर्ड के Devices टैब में Online दिखता है। होम स्क्रीन पर डिवाइस का नाम, खाते की पिल, कैप्चर टॉगल कार्ड और सेटिंग्स के गियर वाला रेडीनेस कार्ड दिखता है।


- 03
जिन डोमेन को डिक्रिप्ट करना है उन्हें जोड़ें
गियर से सेटिंग्स खोलें और SSL Proxying में जाएँ। उन होस्ट की सूची बनाएँ जिनकी HTTPS बॉडी आप पढ़ना चाहते हैं; बाकी सब एंड-टू-एंड एन्क्रिप्टेड रहता है और सिर्फ़ होस्टनेम और रिक्वेस्ट की गिनती के रूप में दिखता है। शुरू में तारांकन और बिंदु किसी डोमेन और उसके सभी सबडोमेन को कवर करते हैं। इसी सेक्शन में डिक्रिप्ट कंट्रोल और एक Ignore Hosts सूची है, उस बैकग्राउंड शोर के लिए जो आप फ़ीड में कभी नहीं चाहते।
यह फ़ोन पर करना ज़रूरी नहीं। डैशबोर्ड वही प्रति-डिवाइस सूची संपादित करता है, और वहाँ का बदलाव फ़ोन पर तुरंत पहुँचता है, ताकि आप टेस्ट करते रहें और साथी होस्ट जोड़ सके।
- 04
गाइडेड सेटअप चलाएँ
रेडीनेस कार्ड पर टैप करें। गाइडेड सेटअप तीन प्लेटफ़ॉर्म प्रॉम्प्ट एक-एक स्क्रीन करके पूरा कराता है: कैप्चर नोटिफ़िकेशन की अनुमति दें, ऐप का सिर्फ़ आपके लिए बनाया सर्टिफ़िकेट फ़ोन के यूज़र सर्टिफ़िकेट स्टोर में इंस्टॉल करें, और Android के अपने VPN कनेक्शन अनुरोध को मंज़ूरी दें। हर चरण पूरा करते ही डन हो जाता है, और तीनों पास होने पर कार्ड रेडी हो जाता है।
वह सर्टिफ़िकेट आपके डिवाइस का निजी है — फ़ोन पर बनता है, किसी साझा सर्वर से कभी डाउनलोड नहीं होता — और यही ऐप को हर उस होस्ट के लिए भरोसेमंद सर्टिफ़िकेट पेश करने देता है जिसे आपने डिक्रिप्ट करना चुना।


- 05
अपने ऐप को यूज़र सर्टिफ़िकेट स्टोर पर भरोसा कराएँ
यह वह चरण है जिसे कोई भी Android कैप्चर टूल छोड़ नहीं सकता। Android 7.0 से, उस स्तर या उससे ऊपर को टारगेट करने वाला ऐप डिफ़ॉल्ट रूप से सिर्फ़ सिस्टम सर्टिफ़िकेट स्टोर पर भरोसा करता है, इसलिए जैसे ही फ़ोन अपना बनाया सर्टिफ़िकेट पेश करेगा, आपका ऐप कनेक्शन बंद कर देगा। इसका हल है एक छोटी नेटवर्क सुरक्षा कॉन्फ़िग, सिर्फ़ डिबग बिल्ड तक सीमित, जो सिस्टम स्टोर के साथ यूज़र स्टोर जोड़ती है। Android रिलीज़ बिल्ड से डिबग-ओवरराइड ब्लॉक पूरी तरह हटा देता है, इसलिए यह प्रोडक्शन में लीक नहीं हो सकता।
नीचे दी फ़ाइल अपने ऐप में बनाएँ, यूज़र एंकर के साथ सिस्टम एंकर भी रखें ताकि सामान्य HTTPS चलता रहे, अपने मैनिफ़ेस्ट के application टैग से इसका संदर्भ दें, फिर डिबग बिल्ड दोबारा बनाकर इंस्टॉल करें। पुरानी बाइनरी दोबारा इंस्टॉल करने से कुछ नहीं होता — भरोसा नए बने ऐप में रहता है।
सिर्फ़ डिबग के लिए नेटवर्क सुरक्षा कॉन्फ़िग, फिर मैनिफ़ेस्ट संदर्भ xml<!-- app/src/main/res/xml/network_security_config.xml --> <network-security-config> <debug-overrides> <trust-anchors> <certificates src="user" /> <certificates src="system" /> </trust-anchors> </debug-overrides> </network-security-config> <!-- AndroidManifest.xml --> <application android:networkSecurityConfig="@xml/network_security_config" ... > - 06
कैप्चर चालू करें और जाँचें
कैप्चर टॉगल चालू करें। Android स्टेटस बार में VPN कुंजी आइकन दिखाता है, और फ़ोन की हर रिक्वेस्ट डैशबोर्ड फ़ीड और ऐप की अपनी Network स्क्रीन में आने लगती है — स्टेटस पंक्ति, आँकड़ों की पिल, श्रेणी चिप और नीचे सर्च वाली होस्ट-समूहित सूची। पूरी जानकारी के लिए किसी होस्ट पर, फिर रिक्वेस्ट पर टैप करें: रिक्वेस्ट और रिस्पॉन्स दोनों के लिए General, Header, Summary, Timing और Body टैब।
अपना ऐप खोलें और कोई कॉल ट्रिगर करें। इसकी HTTPS एंट्री अब अपारदर्शी टनल की जगह पढ़ने लायक हेडर और डिक्रिप्ट की हुई बॉडी दिखाती हैं। काम पूरा होने पर कैप्चर बंद करें — VPN हट जाता है, और सर्टिफ़िकेट व ऐप किसी और की तरह हटाए जा सकते हैं।


क्या गड़बड़
Android की ज़्यादातर समस्याएँ प्लेटफ़ॉर्म की सर्टिफ़िकेट को लेकर सख़्ती हैं, और फ़ीड बताती है कि आप किससे टकराए।
आपके अपने ऐप का ट्रैफ़िक अब भी एन्क्रिप्टेड दिखता है
नेटवर्क सुरक्षा कॉन्फ़िग लागू नहीं हुई। पक्का करें कि इसे जोड़ने के बाद आपने डिबग बिल्ड दोबारा बनाकर इंस्टॉल किया, मैनिफ़ेस्ट उस फ़ाइल की ओर इशारा करता है, और सर्टिफ़िकेट यूज़र स्टोर में है। अगर कॉन्फ़िग सिर्फ़ डिबग वाले सोर्स सेट में है, तो मैनिफ़ेस्ट एट्रिब्यूट भी डिबग मैनिफ़ेस्ट में होना चाहिए।
स्टोर का कोई ऐप जो आपने नहीं बनाया, अपारदर्शी बना रहता है
बिना रूट वाले फ़ोन पर यह अपेक्षित है: उस ऐप ने कभी यूज़र सर्टिफ़िकेट स्वीकार नहीं किए, इसलिए फ़ोन कनेक्शन को सिर्फ़ मेटाडेटा के रूप में दर्ज करता है। इसे डिक्रिप्ट करने के लिए रूट किया डिवाइस चाहिए जहाँ सर्टिफ़िकेट सिस्टम स्टोर में जा सके — वही स्तर जो फ़ोन फ़ार्म इस्तेमाल करता है — और वह भी अपना सर्टिफ़िकेट पिन करने वाले ऐप को नहीं खोल सकता।
Android का VPN प्रॉम्प्ट बार-बार लौटता है
कोई और VPN ऐप सक्रिय है, या पिछली मंज़ूरी सिस्टम VPN सेटिंग्स में रद्द कर दी गई। एक समय में सिर्फ़ एक VPN चल सकता है; दूसरे को डिस्कनेक्ट करें और गाइडेड सेटअप से प्रॉम्प्ट को फिर मंज़ूरी दें।
कैप्चर नोटिफ़िकेशन कभी नहीं दिखा
पहले प्रॉम्प्ट पर नोटिफ़िकेशन की अनुमति नामंज़ूर हो गई थी। सिस्टम ऐप सेटिंग्स में Busymate DevTools के लिए इसे फिर चालू करें; गाइडेड सेटअप इसे दोबारा जाँचकर चरण को डन कर देता है।
होस्ट सूची में है पर पाथ-स्तर का नियम नहीं चलता
पाथ पर मेल खाने वाले नियमों के लिए होस्ट का डिक्रिप्ट होना ज़रूरी है; एन्क्रिप्टेड गुज़रने वाले होस्ट पर सिर्फ़ होस्टनेम दिखता है। पहले होस्ट को SSL प्रॉक्सी सूची में जोड़ें, फिर नियम दोबारा जाँचें।
लोग जो
क्या मुझे रूट चाहिए?
कैप्चर के लिए नहीं, और अपने डिबग बिल्ड या यूज़र स्टोर पर भरोसा करने वाले क्लाइंट को डिक्रिप्ट करने के लिए भी नहीं। रूट सिर्फ़ सर्टिफ़िकेट को सिस्टम स्टोर में ले जाने के लिए चाहिए ताकि जो ऐप आपने नहीं बनाए वे भी उस पर भरोसा करें।
क्या यह अंदर से प्रॉक्सी है?
नहीं। ऐप फ़ोन के VPN के रूप में रजिस्टर्ड है, इसलिए किसी प्रॉक्सी सेटिंग को छुए बिना Wi-Fi और मोबाइल डेटा पर हर ऐप का ट्रैफ़िक देखता है। ब्राउज़र और बैकएंड के लिए अलग डेस्कटॉप प्रॉक्सी है, पर यह गाइड उसका इस्तेमाल कभी नहीं करती।
जो ऐप मेरी सूची में नहीं हैं उनका क्या होता है?
वे पहले की तरह ही चलते रहते हैं। उनके कनेक्शन सिर्फ़ होस्ट और समय के रूप में दर्ज होते हैं और कभी डिक्रिप्ट नहीं होते, और Ignore Hosts सबसे शोर वाले ऐप्स को फ़ीड से पूरी तरह हटा सकता है।
आपके ऐप का ट्रैफ़िक,
ऐप इंस्टॉल करें, गाइडेड सेटअप चलाएँ, एक-फ़ाइल वाली डिबग कॉन्फ़िग जोड़ें, और अपने ऐप की रिक्वेस्ट को डिक्रिप्ट होकर आते देखें।