콘텐츠로 이동

Android 캡처

Android에서 프록시로 HTTPS를 캡처하면 흔히 “인증서를 설치했는데도 앱이 받아주지 않는” 지점에서 막힙니다. 최신 시스템에서는 앱이 기본적으로 사용자 인증서를 신뢰하지 않고, 인증서 피닝이 걸린 앱은 아예 캡처할 수 없습니다. Android 캡처는 다른 접근을 택합니다. 기기 전체를 자동 복호화하며 캡처하고, 어느 단계에서도 폰에 인증서를 설치하지 않습니다. 실기기와 에뮬레이터 모두 지원하며, 인증서 피닝이나 커스텀 암호화가 걸린 앱마저 내부에서 평문을 읽어냅니다.


  • 기기 연결: 데이터 케이블로 컴퓨터에 연결하고 USB 디버깅을 활성화합니다. 에뮬레이터는 보통 자동으로 감지됩니다.
  • 루트 필요: 세 방법 모두 루팅된 기기가 필요합니다.
  • 인증서 설치 불필요: 어느 것도 중간자 프록시 방식이 아니므로 폰에 설치할 인증서가 없으며, 바로 이 점이 Android에서 프록시 캡처보다 번거로움이 덜한 이유입니다. 인증서가 필요할 때도 루팅된 기기라면 신뢰 인증서를 자동으로 설치하여 수동 단계를 덜어줍니다.
  • 바로 사용 가능: 캡처에 필요한 보조 구성 요소는 기기 아키텍처에 따라 자동으로 다운로드되고 캐시되므로, 직접 환경을 설정할 필요가 없습니다.

컴퓨터의 Android 에뮬레이터 내부 트래픽을 캡처하는 것은 실기기 캡처와 거의 같고, 오히려 더 간단한 경우가 많습니다.

  • 자동 감지: 흔한 브랜드의 에뮬레이터는 데이터 케이블이나 수동 연결 없이 자동으로 발견됩니다(USB가 필요한 것은 실기기뿐).
  • 대체로 이미 루팅됨: 에뮬레이터는 일반적으로 루팅된 채로 제공되거나 원클릭으로 루팅할 수 있어 캡처 요건을 손쉽게 충족합니다.
  • “NIC 키”를 우선: 에뮬레이터의 시스템 커널은 오래된 경우가 많아 “NIC 캡처”를 지원하지 않을 수 있으므로, 에뮬레이터와 호환성이 가장 좋은 NIC 키를 그냥 선택하세요.

그 밖의 모든 것은 실기기와 같습니다. 에뮬레이터 기기를 선택하고 아래 방법으로 캡처하세요.


상황 무엇을 쓸 것인가 비고
오래된 기기 / 에뮬레이터 / 얼마나 최신인지 모름 NIC 키(권장 기본값) 호환성 최고, 거의 모든 루팅 기기에서 동작
최신 루팅 실기기 NIC 캡처 가장 쉽고 자체 완결적
앱 하나만 신경 쓰거나, NIC 모드에서 복호화되지 않음 애플리케이션 레벨 캡처 앱 내부에서 평문을 읽어 인증서 피닝 / 커스텀 암호화를 해결

앞의 둘은 기기 전체를 자동 복호화하며 인증서 설치 없이 캡처하고, 세 번째는 단일 앱을 대상으로 하여 가장 견고하게 방어된 앱마저 처리할 수 있습니다.


기기 NIC(기본은 Wi-Fi)의 모든 트래픽을 캡처하고 자동으로 복호화하며, 특정 앱을 고를 필요도, 설치할 인증서도 없습니다.

  • 호환성 최고: 커널을 가리지 않아 오래된 기기와 각종 에뮬레이터가 모두 동작하며, 이것이 NIC 캡처 대비 가장 큰 장점입니다. 기기가 얼마나 최신인지 확신이 서지 않을 때 가장 안전한 선택입니다.
  • 일부 앱은 암호문만 보일 수 있음: 비표준 암호화 구성 요소를 번들한 개별 앱은 트래픽이 복호화되지 않을 수 있습니다. 그럴 때는 아래의 애플리케이션 레벨 캡처로 전환해 정밀하게 처리하세요.

사용 방법: 기기 선택 → NIC 선택(기본은 Wi-Fi) → 캡처 시작.


이 역시 기기 NIC의 모든 트래픽을 캡처하고 자동으로 복호화합니다. 차별점은 자체 완결적이고 사용이 가장 쉽다는 것입니다(데이터와 그것을 복호화하는 데 필요한 정보가 함께 패키징됨).

  • 전제 조건: 최신 기기(최신 커널)가 필요합니다. 기기가 너무 오래되어 요건을 충족하지 못하면 캡처 시작 시 “NIC 캡처 미지원” 메시지가 명확히 표시되며, 그때는 NIC 키로 전환하면 됩니다.

사용 방법: 기기 선택 → NIC 선택(기본은 Wi-Fi) → 캡처 시작.


단일 앱을 대상으로 그 내부에서 평문을 직접 읽어내며, 인증서 피닝도 커스텀 암호화도 막을 수 없습니다.

  • NIC 모드의 한계에 얽매이지 않음: NIC 모드에서 복호화되지 않는 앱(인증서 피닝, 커스텀 암호화)도 여기서는 평문을 읽어냅니다. 앱 내부에서 읽으므로 중간자 역할을 하지 않고 NIC 복호화에 의존하지 않기 때문입니다.
  • 디코딩할 수 없을 때의 대비책으로 “소켓 트래픽” 켜기: 정적 링크 / 커스텀 라이브러리를 사용해 일반적인 방법으로 평문을 얻을 수 없는 앱의 경우, 이 스위치를 켜서 더 하위 경로로 데이터를 가져옵니다.
  • 대상 프로그램 재시작: 앱을 먼저 종료했다가 다시 실행하여 실행 초기 트래픽을 캡처할 수 있습니다.
  • 선택한 앱만 대상으로 합니다(기기 전체 트래픽이 아님).

사용 방법: 대상 앱 선택(설치된 앱 목록에서 고르거나, 패키지명 / 프로세스명 입력. 비워 두면 포그라운드 앱 캡처) → 실행 트래픽을 캡처해야 하면 “대상 프로그램 재시작” 체크 → 캡처 시작.


7. 프록시 캡처도 사용할 수 있습니다

섹션 제목: “7. 프록시 캡처도 사용할 수 있습니다”

위 세 방법 외에도 Android 기기는 프록시 캡처를 사용할 수 있습니다. 기기의 Wi-Fi 프록시를 이 기기로 향하게 하고 루트 인증서를 설치하면, 컴퓨터에서와 마찬가지로 HTTPS 평문을 캡처하고 재작성과 재전송 기능 전체를 사용할 수 있습니다. 시스템 프록시를 거치는 앱을 디버깅하거나, 모바일 요청을 규칙 기반으로 재작성 / 재전송해야 하는 상황에 적합합니다.


  • 폰 앱의 네트워크 요청을 분석하고 엔드포인트 문제를 조사할 때, 기기 전체를 자동 복호화하며 인증서와 씨름하지 않습니다.
  • 기기나 앱이 실제로 어떤 엔드포인트에 연결했고 무엇을 보냈는지 기기 전체 관점에서 봅니다.
  • 앱이 인증서 피닝을 사용해 NIC 모드로 복호화할 수 없을 때, 애플리케이션 레벨 캡처로 평문을 정밀하게 얻습니다.
  • 보기와 편집을 동시에 하려면(재작성 / 재전송) 프록시 캡처를 사용하세요.

프록시 캡처로 돌아가기 · 관련: 데이터 보기 및 디코딩 · 인증서 관리 및 설치