एंड्रॉइड एमुलेटर: नेटवर्क ट्रैफिक की निगरानी कैसे करें?


127

मैं अपने एंड्रॉइड एमुलेटर से भेजे गए और प्राप्त किए गए नेटवर्क ट्रैफ़िक की निगरानी कैसे करूं?

जवाबों:


104

एंड्रॉइड एमुलेटर से सीधे नेटवर्क ट्रैफ़िक कैप्चर करने के दो तरीके हैं :

  1. एमआर पर एआरएम-संगत tcpdump बाइनरी कॉपी और चलाएं , एसडी कार्ड में आउटपुट लिख रहा है, शायद (जैसे tcpdump -s0 -w /sdcard/emulator.cap)।

  2. emulator -tcpdump emulator.cap -avd my_avdअपने पीसी पर एक स्थानीय फ़ाइल के लिए सभी एमुलेटर के ट्रैफ़िक को लिखने के लिए चलाएँ

दोनों स्थितियों में आप सामान्य रूप से tcpdump या Wireshark के साथ pcap फ़ाइल का विश्लेषण कर सकते हैं।


तो यह वास्तविक समय / ऑनलाइन नहीं है? मेरा मतलब है, पैकेट का केवल अंत में विश्लेषण किया जा सकता है?
fikr4n

पहले मामले में, आप फ़ाइल पर लिखने के बजाय डिवाइस पर stdout के माध्यम से विश्लेषण कर सकते हैं। दूसरे मामले में, आप फ़ाइल को स्ट्रीम / टेल करने में सक्षम हो सकते हैं क्योंकि यह लिखा है। या आप एमुलेटर पर बजाय मेजबान मशीन पर नेटवर्क ट्रैफ़िक को कैप्चर कर सकते हैं।
क्रिस्टोफर ओर

मैंने पाया है कि मेरे द्वारा उपयोग किए गए एमुलेटर में अब tcpdump स्थापित है, और कमांड # 1 बिना इंस्टॉल किए काम करता है। आप इसे "adb -e shell tcpdump -s0 -w /sdcard/emulator.cap" के साथ भी चला सकते हैं।
Les

2
यदि आप 2nd सॉल्यूशन का उपयोग कर रहे हैं और आपको The -tcpdump flag is not supported in QEMU2 yet and will be ignored.चेतावनी मिल रही है , तो इस तरह से अपने कमांड में क्लासिक जोड़ें emulator -tcpdump emulator.cap -avd my_avd -engine classic। यह पदावनत एमुलेटर इंजन को बाध्य करेगा, लेकिन जब तक वे समस्या को ठीक नहीं करते तब तक काम करना चाहिए।
लैगोमैन

कहा avdस्थित है
user3806649

20

एमुलेटर से http अनुरोधों की निगरानी के लिए http प्रॉक्सी का उपयोग करना भी संभव है। एंड्रॉइड ट्रैफ़िक की निगरानी के लिए -http-proxyप्रॉक्सी (उदाहरण burp ) सेट करने के लिए एक नया एमुलेटर शुरू करते समय आप झंडा पास कर सकते हैं । उदाहरण उपयोग ./emulator -http-proxy localhost:8080 -avd android2.2। ध्यान दें कि मेरे उदाहरण में मैं Burp का उपयोग कर रहा हूं, और यह 8080 पोर्ट सुन रहा है। अधिक जानकारी यहां पाई जा सकती है


2
Https ट्रैफ़िक के बारे में क्या है
pee2pee

10

ओएस एक्स के लिए आप चार्ल्स का उपयोग कर सकते हैं , यह सरल और उपयोग करने में आसान है।

अधिक जानकारी के लिए, कृपया Android एमुलेटर और चार्ल्स प्रॉक्सी ब्लॉग पोस्ट को देखें।


1
मैं Charlesपहले नहीं जानता । लेकिन जहाँ तक मैं देख सकता हूँ, यह HTTP- विशिष्ट है। लेकिन ओपी का सवाल यह नहीं है।
सियु चिंग पोंग -आसुका केंजी-

लिनक्स के लिए चार्ल्स भी मौजूद है, मैंने इसे अपने उबंटू 18.04
मारेकी

6

एंड्रॉइड स्टूडियो की एक वर्तमान रिलीज़ ने -tcpdumpतर्क को सही ढंग से लागू नहीं किया । मैं अभी भी संबंधित पैरामीटर qemu को पास करके एक डंप को पकड़ने में सक्षम था:

tools/emulator -engine classic -tcpdump dump.cap -avd myAvd

5

हां, वायरशर्क काम करेगा।

मुझे नहीं लगता कि पूरी तरह से एमुलेटर ट्रैफ़िक को फ़िल्टर करने का कोई आसान तरीका है, क्योंकि यह उसी src आईपी से आ रहा है।

शायद सबसे अच्छा तरीका बहुत नंगे वीएमवेयर वातावरण स्थापित करना होगा और केवल एमुलेटर को वहां चलाना होगा, कम से कम उस तरह से बहुत अधिक पृष्ठभूमि यातायात नहीं होगा।


अच्छा सुझाव है, लेकिन एक वीएम के ऊपर एक एमुलेटर चलाना मुश्किल है। क्या आपने काम करने के लिए इसे प्राप्त किया है?
माइकशेम

आप किन मुद्दों में भागे हैं? मैंने इसे स्वयं नहीं किया है, लेकिन मैं सोच भी नहीं सकता कि कोई समस्या होगी।
Bitdivision

मेरे मामले में, भेजे जा रहे अनुरोध हरे रंग में थे, मैंने जो भी किया वह अन्य ब्राउज़र बंद कर दिया था और मैं मीठी हरी पंक्तियों को देख पा रहा था। एक बार जब आप अनुरोध को प्राप्त कर लेते हैं, तो गंतव्य पते की प्रतिलिपि बनाएँ और यू तब इसे फ़िल्टर में ip.dst == "आईपी पते कि यू कॉपी किया" और केवल प्रासंगिक अनुरोधों को देखकर उपयोग कर सकते हैं।
रित्विक

4

Http ट्रैफ़िक की निगरानी के लिए आप फ़िडलर का उपयोग कर सकते हैं :

http://aurir.wordpress.com/2010/03/22/tutorial-getting-android-emulator-working-with-fiddler-http-proxy-tool/

आप यहां Fiddler2 का उपयोग भी कर सकते हैं


2
एक और लिंक यहाँ । मैं जोड़ूंगा कि प्रॉक्सी सर्वर होना चाहिए 10.0.2.2जो एंड्रॉइड एमुलेटर में होस्ट मशीन का आईपी पता है, यह पता लगाने की कोई आवश्यकता नहीं है कि यह क्या है।
मेंढक

4

एंड्रॉइड एमुलेटर ट्रैफिक को कैप्चर करने के लिए अब सीधे Wireshark का उपयोग करना संभव है। वहाँ एक है extcap प्लगइन बुलाया androiddump जो संभव बनाता है। आपको tcpdumpएमुलेटर पर चलने वाली सिस्टम छवि में एक निष्पादन योग्य होना चाहिए (अधिकांश वर्तमान छवियों में यह है, एपीआई 24 और एपीआई 27 छवियों के साथ परीक्षण किया गया है) और adbdमेजबान पर रूट के रूप में चल रहा है (बस रन adb root)। Wireshark (Qt संस्करण में केवल उपलब्ध इंटरफेस की सूची में, पदावनत GTK + के पास नहीं है) या tshark -Dब्लूटूथ, Logcat, या वाईफ़ाई ट्रैफ़िक को सूँघने की अनुमति देने के लिए कई Android इंटरफेस होने चाहिए, जैसे उदाहरण:

android-wifi-tcpdump-emulator-5554 (Android WiFi Android_SDK_built_for_x86 emulator-5554)


2

आप कमांड के साथ एमुलेटर शुरू कर सकते हैं -avd Adfmf -http-proxy http://SYSTEM_IP:PORT। मैंने HTTP विश्लेषक का उपयोग किया है, लेकिन इसे किसी और चीज़ के लिए काम करना चाहिए। अधिक विवरण यहां देखे जा सकते हैं: http://stick2code.blogspot.in/2014/04/intercept-http-requests-sent-from-app.html


2

आप http://docs.mitmproxy.org/en/stable/install.html का उपयोग कर सकते हैं

इसका सेटअप आसान है और इसके लिए किसी भी अतिरिक्त ट्विक्स की आवश्यकता नहीं होगी।

मैं विभिन्न टूल से गुजरता हूं लेकिन यह वास्तव में अच्छा और आसान है।


मैं mitmproxyपहले नहीं जानता । लेकिन जहाँ तक मैं देख सकता हूँ, यह HTTP- विशिष्ट है। लेकिन ओपी का सवाल यह नहीं है।
सियु चिंग पोंग -आसुका केंजी-

1
नया एंड्रॉइड स्टूडियो 3.0 प्रोफाइलर प्रदान करता है, आप इसका उपयोग कर सकते हैं। और मिटम के लिए यह सभी प्रकार के प्रोटोकॉल, http, https आदि प्रदान करता है। आपको बस प्रॉक्सी को सही ढंग से कॉन्फ़िगर करने की आवश्यकता है।
धीरज हिमानी

क्या यह मेरे द्वारा विकसित किए गए ऐप्स के पैकेट पर कब्जा करने के लिए उपलब्ध है? और Nox App Player जैसे किसी 3 पार्टी एमुलेटर पर? धन्यवाद!
सियु चिंग पोंग -आसुका केंजी-

1
हां, आपके पास अपने एमुलेटर / डिवाइस पर मिटम प्रमाणपत्र स्थापित होना चाहिए, जो कि स्वयं माइट द्वारा प्रदान किया जाता है, और आप इसका उपयोग चल रहे अनुरोध और संबंधित प्रतिक्रियाओं को देखने के लिए कर सकते हैं।
धीरज हिमानी

2

आप एंड्रॉइड स्टूडियो से नेटवर्क ट्रैफिक की निगरानी कर सकते हैं। Android मॉनिटर पर जाएं और नेटवर्क टैब खोलें।

http://developer.android.com/tools/debugging/ddms.html

अद्यतन: Monitor एंड्रॉइड स्टूडियो 3.1 में एंड्रॉइड डिवाइस मॉनिटर को हटा दिया गया था। Https://developer.android.com/studio/profile/monitor में और देखें


5
क्या आप बता सकते हैं कि एंड्रॉइड स्टूडियो 1.5 (विंडोज़) में डिटेल नेटवर्क उपयोग टैब को कहां से खोला जाए जैसा कि लिंक में इमेज में दिखाया गया है, मुझे केवल एक ग्राफ मिल रहा है लेकिन विवरण नहीं?
श्रेयांस

विदित हो कि यह विकल्प सीमित अंतर्दृष्टि देता है। मैं अपनी समस्याओं को हल नहीं कर सका जहां मैं यह जानना चाहता हूं कि अनुरोध को अस्वीकार क्यों किया गया, क्योंकि एंड्रॉइड ने मुझे इस अनुरोध के बारे में कुछ भी नहीं बताया। फ़िडलर यहां अधिक उपयुक्त है।
हाइपरसियर

2

मेरा सुझाव है कि आप Wireshark का उपयोग करें ।

कदम:

  1. तारों को स्थापित करें।
  2. उस नेटवर्क कनेक्शन का चयन करें जिसे आप कॉल के लिए उपयोग कर रहे हैं (उदाहरण के लिए, यदि आप इसका उपयोग कर रहे हैं तो वाईफाई का चयन करें)
  3. कई अनुरोध और प्रतिक्रियाएं होंगी, अतिरिक्त एप्लिकेशन बंद होंगे।
  4. आमतौर पर अनुरोध हरे रंग में होते हैं, एक बार जब आप अपना अनुरोध प्राप्त करते हैं, तो गंतव्य पते की प्रतिलिपि बनाएँ और गंतव्य पते ip.dst==52.187.182.185को डालकर शीर्ष पर फ़िल्टर का उपयोग करें ।

आप विशिष्ट ट्रैफ़िक प्राप्त करने के लिए यहां उल्लेखित अन्य फ़िल्टरिंग तकनीकों का उपयोग कर सकते हैं ।

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