일상&개발 로그

mitmproxy를 이용한 Android 네트워크 디버깅 본문

개발/안드로이드 개발

mitmproxy를 이용한 Android 네트워크 디버깅

dskim98 2018. 8. 24. 15:15

네트워크 디버깅(http/https)을 위해 솔루션을 찾아보다 mitmproxy를 찾았습니다.


stetho 같은 라이브러리도 확인해봤는데, 소스를 삽입하고 interceptor를 끼워넣어야 해서 패스.


사용이 간편하고,

proxy를 사용해서 따로 코드를 삽입하거나 로딩할 필요 없고,

라이브러리에서 쏘는 패킷도 확인 가능한 장점이 있습니다.


Proxy에 사용할 PC(Proxy서버)와 같은 WiFi 망에 물려있어야 하며,

프로세스/스레드/앱 별로 분류가 안되는 단점이 있겠습니다.


Mac환경에서 homebrew를 이용해서 간단히 설치가 가능합니다.


1. 설치

brew install mitmproxy

 

2. 단말 WiFi Proxy 설정

- 프록시: 수동

- 프록시 호스트 이름: PC(Proxy서버) IP주소

- 프록시 포트: 포트번호(8080)

 

 

 

3. Proxy 서버 실행

mitmproxy --listen-host [IP Address] -p [Port]

 

4. Https를 위한 Certificate 설정

- 단말 브라우저로 mitm.it 접속

- Certificate 다운로드 및 적용

 

 

5. 패킷 모니터링

- 요청/응답 받은 전체 패킷 리스트가 아래와 같이 표시된다.

  방향키로 위아래 이동 및 엔터키로 해당 패킷 정보 조회가 가능함.

 

 

- Request항목은 해당 패킷의 Request정보를 표시한다.

 

- Response항목은 해당 패킷의 Response정보를 표시한다.

    

- Detail항목은 해당 패킷의 디테일정보를 표시한다.

 

패킷 목록 화면으로 이동하고 싶으면 q를 누르면 되고, 종료는 패킷 목록 화면에서 q를 누르면 됩니다.

 

 

참조 (References)

- https://mitmproxy.org/#mitmweb (홈페이지)

- https://medium.com/@rotxed/how-to-debug-http-s-traffic-on-android-7fbe5d2a34 (설치)

- https://docs.mitmproxy.org/stable/concepts-certificates/ (Certificate)

Comments