programing

Android 휴대폰에서 네트워크 활동 모니터링

nasanasas 2020. 12. 9. 08:17
반응형

Android 휴대폰에서 네트워크 활동 모니터링


내 Android 휴대폰의 네트워크 트래픽을 모니터링하고 싶습니다. Android 용 tcpdump를 사용하려고 생각했지만 전화 용으로 크로스 컴파일해야하는지 잘 모르겠습니다.

또 다른 질문은 다음과 같습니다. 특정 응용 프로그램에 대한 트래픽 데이터를 모니터링하려면이를 수행하는 명령이 있습니까?


TCPDUMP는 네트워크 분석을 위해 제가 가장 좋아하는 도구 중 하나이지만, 안드로이드 용 tcpdump를 크로스 컴파일하기 어렵다면 시장의 일부 애플리케이션을 사용하는 것이 좋습니다.

다음은 내가 이야기 한 응용 프로그램입니다.

  • Shark : Android 휴대폰 용 wireshark의 작은 버전입니다.) 이 프로그램은 * .pcap을 생성하고 wireshark로 PC에서 파일을 읽을 수 있습니다.
  • Shark Reader :이 프로그램을 사용하면 안드로이드 폰에서 직접 * .pcap을 읽을 수 있습니다.

Shark 앱은 루팅 된 기기에서 작동하므로 설치하려면 기기가 이미 루팅되어 있는지 확인하세요.

행운을 빕니다 ;)


에뮬레이터에서 수행하는 경우 다음과 같이 할 수 있습니다.

실행 emulator -tcpdump emulator.cap -avd my_avd하여 모든 에뮬레이터의 트래픽을 PC의 로컬 파일에 쓴 다음 wireshark에서 엽니 다.

여기에 도움이 될 유사한 게시물이 있습니다.


참고 : tcpdump에는 루트 권한이 필요하므로 아직 수행하지 않은 경우 전화기를 루팅해야합니다. 다음 은 tcpdump 의 ARM 바이너리 입니다 (삼성 Captivate에서 작동 함). 자체 바이너리 빌드를 선호하는 경우 지침이 여기에 있습니다 (예, 크로스 컴파일이 필요할 수 있음).

또한 Shark For Root (tcpdump를 기반으로하는 Android 패킷 캡처 도구)를 확인하십시오.

tcpdump가 특정 프로세스 ID로 트래픽을 모니터링 할 수 있다고 생각하지 않습니다. Chris Stratton이 언급하는 strace 방법 은 그 가치보다 더 많은 노력으로 보입니다. 대상 프로세스에서 사용하는 특정 IP 및 포트를 모니터링하는 것이 더 간단합니다. 해당 정보를 알 수없는 경우 프로세스 활동 기간 동안 모든 트래픽을 캡처 한 다음 Wireshark를 사용하여 결과 pcap을 검색합니다.


Android SDK에 포함 된 DDMS 도구에는 네트워크 트래픽 모니터링 도구가 포함되어 있습니다. tcpdump 및 유사한 저수준 도구에서 얻은 세부 정보는 제공하지 않지만 여전히 매우 유용합니다.

실제 문서 : http://developer.android.com/tools/debugging/ddms.html#network


전화를 루팅하고 tcpdump를 크로스 컴파일하거나 다른 사람의 이미 컴파일 된 버전을 사용해야합니다.

에뮬레이터로 이러한 실험을 수행하는 것이 더 쉬울 수 있으며,이 경우 호스팅 PC에서 모니터링을 수행 할 수 있습니다. 실제 장치를 사용해야하는 경우 또 다른 옵션은 tcpdump를 실행하는 Linux 상자의 보조 인터페이스에 연결된 wifi 네트워크에 장치를 배치하는 것입니다.

특정 프로세스를 기준으로 필터링하는 방법을 잘 모르겠습니다. 빠른 인터넷 검색에서 찾은 한 가지 제안은 시스템에서 tcpdump 대신 주제 프로세스에서 strace를 사용하는 것입니다.


안드로이드 폰의 경우 (루트없이) :-이 응용 프로그램 tPacketCapture를 사용할 수 있습니다 . 캡처를 활성화 할 때 장치의 네트워크 트래픽을 캡처합니다. 참조 이 URL 장치를 응원하지 않고 네트워크 스니핑에 대한 자세한 내용을.

.pcap형식 의 파일이 있으면 이 파일을 사용하고 Wireshark와 같은 트래픽 분석기를 사용하여 트래픽을 분석 할 수 있습니다.

또한 wireshark에서 휴대폰 트래픽 캡처 에 대한 추가 아이디어는이 게시물을 참조하십시오.


루트가 없으면 Charlesproxy & Co 와 같은 디버그 프록시를 사용할 수 있습니다 .


패킷 캡처는 안드로이드에서 네트워크 데이터를 추적하는 가장 좋은 도구입니다. 루트 액세스가 필요하지 않으며 응용 프로그램을 기반으로 호출을 읽고 저장하기 쉽습니다. 확인 아웃


이 응용 프로그램을 사용해보십시오 https://play.google.com/store/apps/details?id=app.greyshirts.sslcapture

모든 네트워킹 통신을 볼 수 있습니다. SSL 암호화 통신까지도 볼 수 있습니다.


전제 조건 : adb 및 wireshark가 컴퓨터에 설치되어 있고 루팅 된 Android 기기가 있습니다.

  1. ~ / Downloads에 tcpdump 다운로드
  2. adb push ~/Downloads/tcpdump /sdcard/
  3. adb shell
  4. su root
  5. mv /sdcard/tcpdump /data/local/
  6. cd /data/local/
  7. chmod +x tcpdump
  8. ./tcpdump -vv -i any -s 0 -w /sdcard/dump.pcap
  9. exit
  10. exit
  11. adb pull /sdcard/dump.pcap ~/Downloads/

이제 Wireshark를 사용하여 pcap 파일을 열 수 있습니다.

특정 프로세스 모니터링에 대한 질문은 앱의 번들 ID를 찾아서 com.android.myapp

  1. ps | grep com.android.myapp
  2. 출력에서 보이는 첫 번째 숫자를 복사합니다. 1234라고 부르겠습니다. 출력이 표시되지 않으면 앱을 시작해야합니다.
  3. 다운로드 strace를 로 ~ / 다운로드 및 넣어 /data/local당신이했던 것과 같은 방식으로 사용하여 tcpdump위.
  4. cd /data/local
  5. ./strace -p 1234 -f -e trace=network -o /sdcard/strace.txt

이제 strace.txt에서 ip 주소를 확인하고 해당 IP에 대한 wireshark 로그를 필터링 할 수 있습니다.


일반적인 접근 방식은 다음과 같이 "cat / proc / net / netstat"를 호출하는 것입니다.

Android 네트워크 통계

참고 URL : https://stackoverflow.com/questions/5121732/monitor-network-activity-in-android-phones

반응형