Android 에뮬레이터 : 네트워크 트래픽을 모니터링하는 방법
내 안드로이드 에뮬레이터에서 보내고받는 네트워크 트래픽을 어떻게 모니터링합니까?
Android 에뮬레이터에서 직접 네트워크 트래픽을 캡처하는 방법에는 두 가지가 있습니다 .
에뮬레이터에서 ARM 호환 tcpdump 바이너리 를 복사하고 실행 하여 SD 카드에 출력을 기록합니다 (예 :)
tcpdump -s0 -w /sdcard/emulator.cap
.emulator -tcpdump emulator.cap -avd my_avd
에뮬레이터의 모든 트래픽을 PC의 로컬 파일에 쓰려면 실행하십시오.
두 경우 모두 정상적으로 tcpdump 또는 Wireshark를 사용하여 pcap 파일을 분석 할 수 있습니다.
http 프록시를 사용하여 에뮬레이터의 http 요청을 모니터링 할 수도 있습니다. -http-proxy
새 에뮬레이터를 시작할 때 플래그 를 전달 하여 프록시 (예 : burp )를 설정 하여 Android 트래픽을 모니터링 할 수 있습니다. 사용법 예 ./emulator -http-proxy localhost:8080 -avd android2.2
. 내 예제에서는 Burp를 사용하고 있으며 포트 8080을 듣고 있습니다. 자세한 내용은 여기를 참조하십시오 .
OS X의 경우 Charles 를 사용할 수 있으며 간단하고 사용하기 쉽습니다.
자세한 내용은 Android Emulator 및 Charles Proxy 블로그 게시물을 참조하십시오.
현재 Android Studio 릴리스에서는 -tcpdump
인수가 올바르게 적용되지 않았습니다 . 다음과 같이 관련 매개 변수를 qemu에 전달하여 덤프를 캡처 할 수있었습니다.
tools/emulator -engine classic -tcpdump dump.cap -avd myAvd
예, wireshark가 작동합니다.
동일한 src IP에서 나오는 에뮬레이터 트래픽 만 필터링하는 쉬운 방법은 없다고 생각합니다.
아마도 가장 좋은 방법은 매우 빈번한 VMware 환경을 설정하고 거기에서 에뮬레이터 만 실행하는 것입니다. 적어도 백그라운드 트래픽이 너무 많지 않을 것입니다.
Fiddler 를 사용 하여 http 트래픽을 모니터링 할 수 있습니다 .
여기서 Fiddler2를 사용할 수도 있습니다 .
이제 Wireshark를 직접 사용하여 Android 에뮬레이터 트래픽을 캡처 할 수 있습니다. 있습니다 extcap 라는 플러그인 androiddump 가능하게한다. 당신은 가질 필요가 tcpdump
시스템 이미지 에뮬레이터에서 실행에서 실행 파일 (가장 최근의 이미지 API (24)와 API (27 개) 이미지 테스트, 그것을 가지고)와 adbd
호스트에서 루트로 실행을 (바로 실행 adb root
). Wireshark에서 사용 가능한 인터페이스 목록 (Qt 버전 만 해당, 더 이상 사용되지 않는 GTK +에는없는 tshark -D
인터페이스 ) 또는 표시된 목록 에는 Bluetooth, Logcat 또는 Wifi 트래픽을 스니핑 할 수있는 여러 Android 인터페이스가 있어야합니다.
android-wifi-tcpdump-emulator-5554 (Android WiFi Android_SDK_built_for_x86 에뮬레이터 -5554)
명령으로 에뮬레이터를 시작할 수 있습니다 -avd Adfmf -http-proxy http://SYSTEM_IP:PORT
. HTTP 분석기를 사용했지만 다른 용도로는 작동합니다. 자세한 내용은 여기를 참조 하십시오 : http://stick2code.blogspot.in/2014/04/intercept-http-requests-sent-from-app.html
http://docs.mitmproxy.org/en/stable/install.html 을 사용할 수 있습니다
설정이 쉽고 추가 조정이 필요하지 않습니다.
나는 다양한 도구를 겪었지만 정말 좋고 쉽다는 것을 알았습니다.
Android Studio에서 네트워크 트래픽을 모니터링 할 수 있습니다. Android 모니터로 이동하여 네트워크 탭을 엽니 다.
http://developer.android.com/tools/debugging/ddms.html
업데이트 : ⚠️ Android Device 3.1은 Android Studio 3.1에서 더 이상 사용되지 않습니다. https://developer.android.com/studio/profile/monitor 에서 더 많은 것을보십시오
참고 URL : https://stackoverflow.com/questions/2453949/android-emulator-how-to-monitor-network-traffic
'programing tip' 카테고리의 다른 글
Connect.js methodOverride의 기능은 무엇입니까? (0) | 2020.07.20 |
---|---|
두 개의 문자열 리터럴 연결 (0) | 2020.07.20 |
왜 파이썬 3.5에서 파이썬 3.4에 비해 str.translate가 훨씬 빠릅니까? (0) | 2020.07.20 |
여러 INSERT 문 대 여러 VALUES를 가진 단일 INSERT (0) | 2020.07.20 |
R에서 객체로 함수에 보낸 후 객체의 이름을 얻는 방법은 무엇입니까? (0) | 2020.07.20 |