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 기기가 있습니다.
- ~ / Downloads에 tcpdump 다운로드
adb push ~/Downloads/tcpdump /sdcard/
adb shell
su root
mv /sdcard/tcpdump /data/local/
cd /data/local/
chmod +x tcpdump
./tcpdump -vv -i any -s 0 -w /sdcard/dump.pcap
exit
exit
adb pull /sdcard/dump.pcap ~/Downloads/
이제 Wireshark를 사용하여 pcap 파일을 열 수 있습니다.
특정 프로세스 모니터링에 대한 질문은 앱의 번들 ID를 찾아서 com.android.myapp
ps | grep com.android.myapp
- 출력에서 보이는 첫 번째 숫자를 복사합니다. 1234라고 부르겠습니다. 출력이 표시되지 않으면 앱을 시작해야합니다.
- 다운로드 strace를 로 ~ / 다운로드 및 넣어
/data/local
당신이했던 것과 같은 방식으로 사용하여tcpdump
위. cd /data/local
./strace -p 1234 -f -e trace=network -o /sdcard/strace.txt
이제 strace.txt에서 ip 주소를 확인하고 해당 IP에 대한 wireshark 로그를 필터링 할 수 있습니다.
일반적인 접근 방식은 다음과 같이 "cat / proc / net / netstat"를 호출하는 것입니다.
참고 URL : https://stackoverflow.com/questions/5121732/monitor-network-activity-in-android-phones
'programing' 카테고리의 다른 글
HTTP URL의 경로 부분에있는 인코딩 된 슬래시 ( "% 2F")에 해당하는 슬래시 ( "/")입니다. (0) | 2020.12.09 |
---|---|
PhantomJS 및 node.js로 웹 페이지 저장 및 렌더링 (0) | 2020.12.09 |
IntelliJ가 내 소스 코드에만 들어가도록 강제하는 방법은 무엇입니까? (0) | 2020.12.09 |
Webpack : 플러그인 순서가 중요합니까? (0) | 2020.12.09 |
dotnet publish가 올바른 앱 설정을 게시하지 않습니다. {env.EnvironmentName} .json (0) | 2020.12.08 |