티스토리 뷰
패킷 캡쳐하는 전통적인 방법은
root권한이 있는 상태에서 크로스컴파일한 tcpdump를 adb를 이용해서 device로 옮기고 이를 이용해서 패킷캡쳐를 sdcard에 파일로 뜬다음에 파일을 pc로 가져와서 wireshark로 보는 방법이 있다.
http://jwandroid.tistory.com/137
http://webteca.altervista.org/tcpdump-on-android-quick-and-dirty-how-to/
http://mobilesociety.typepad.com/mobile_life/2014/08/cross-compiling-tcpdump-for-android.html
http://mobilesociety.typepad.com/mobile_life/2014/08/-tcpdump-netcat-and-wireshark-for-remote-logging.html
이전에는 파일에 저장해놨다가 봤는데, 바로 라이브로 보는 방법들이 있다.
https://blog.wirelessmoves.com/2017/02/adb-and-tcpdump-on-android-for-live-wireshark-tracing.html
adb에서 tcpdump를 실행시키고 파이프로 결과물을 보낸후 파이프끝에 wireshark가 듣는 방법
네트웍 설정으로 패킷 포워딩하는 다른 다양한 방법들이 나와있다.
https://wladimir-tm4pda.github.io/porting/tcpdump.html
여기까지는 tcpdump를 수행하기 위해서는 어쨌든 root권한이 필요했다.
루트권한이 필요없는 방법들이 나왔다.
https://forum.xda-developers.com/galaxy-s8/help/tcpdump-s8-t3719600
play.google.com/store/apps/details?id=jp.co.taosoftware.android.packetcapture
play.google.com/store/apps/details?id=app.greyshirts.sslcapture
위의 앱을 설치하면 해당 앱들이 vpn설정을 해서 vpn을 통과하는 패킷을 볼 수 있게끔 해준다.
wireshark 2.x대에 extcap이 들어갔다.
https://www.wireshark.org/docs/man-pages/extcap.html
컨셉은 외부리소스들을 wireshark가 볼 수 있는 interface로 만들어주는 역할을 하며
extcap 안에 구현된것들을 보면 androiddump, ciscodump, randpktdump, sshdump, udpdump들이 있어서 이것들에서 오는 정보들을 wireshark를 통해서 볼 수 있다.
예를 들면 androiddump는 안드로이드 로그캣들을 extcap interface로 볼 수 있게 지원해주는 툴이다. device에 tcpdump가 있으면 안드로이드폰 wifi 패킷정보도 extcap을 통해서 볼 수 있다.
https://www.wireshark.org/docs/man-pages/extcap.html
https://www.wireshark.org/docs/man-pages/androiddump
https://wiki.wireshark.org/Development/Extcap
https://blog.flameeyes.eu/2017/01/sniffing-on-an-android-phone-with-wireshark/
extcap -> androiddump -> adb -> tcpdump 이 순으로interface가 접근하게 된다.