Android 캡처
Android에서 프록시로 HTTPS를 캡처하면 흔히 “인증서를 설치했는데도 앱이 받아주지 않는” 지점에서 막힙니다. 최신 시스템에서는 앱이 기본적으로 사용자 인증서를 신뢰하지 않고, 인증서 피닝이 걸린 앱은 아예 캡처할 수 없습니다. Android 캡처는 다른 접근을 택합니다. 기기 전체를 자동 복호화하며 캡처하고, 어느 단계에서도 폰에 인증서를 설치하지 않습니다. 실기기와 에뮬레이터 모두 지원하며, 인증서 피닝이나 커스텀 암호화가 걸린 앱마저 내부에서 평문을 읽어냅니다.
1. 공통 준비
섹션 제목: “1. 공통 준비”- 기기 연결: 데이터 케이블로 컴퓨터에 연결하고 USB 디버깅을 활성화합니다. 에뮬레이터는 보통 자동으로 감지됩니다.
- 루트 필요: 세 방법 모두 루팅된 기기가 필요합니다.
- 인증서 설치 불필요: 어느 것도 중간자 프록시 방식이 아니므로 폰에 설치할 인증서가 없으며, 바로 이 점이 Android에서 프록시 캡처보다 번거로움이 덜한 이유입니다. 인증서가 필요할 때도 루팅된 기기라면 신뢰 인증서를 자동으로 설치하여 수동 단계를 덜어줍니다.
- 바로 사용 가능: 캡처에 필요한 보조 구성 요소는 기기 아키텍처에 따라 자동으로 다운로드되고 캐시되므로, 직접 환경을 설정할 필요가 없습니다.
2. 에뮬레이터 캡처
섹션 제목: “2. 에뮬레이터 캡처”컴퓨터의 Android 에뮬레이터 내부 트래픽을 캡처하는 것은 실기기 캡처와 거의 같고, 오히려 더 간단한 경우가 많습니다.
- 자동 감지: 흔한 브랜드의 에뮬레이터는 데이터 케이블이나 수동 연결 없이 자동으로 발견됩니다(USB가 필요한 것은 실기기뿐).
- 대체로 이미 루팅됨: 에뮬레이터는 일반적으로 루팅된 채로 제공되거나 원클릭으로 루팅할 수 있어 캡처 요건을 손쉽게 충족합니다.
- “NIC 키”를 우선: 에뮬레이터의 시스템 커널은 오래된 경우가 많아 “NIC 캡처”를 지원하지 않을 수 있으므로, 에뮬레이터와 호환성이 가장 좋은 NIC 키를 그냥 선택하세요.
그 밖의 모든 것은 실기기와 같습니다. 에뮬레이터 기기를 선택하고 아래 방법으로 캡처하세요.
3. 세 가지 방법 중 선택하는 법
섹션 제목: “3. 세 가지 방법 중 선택하는 법”| 상황 | 무엇을 쓸 것인가 | 비고 |
|---|---|---|
| 오래된 기기 / 에뮬레이터 / 얼마나 최신인지 모름 | NIC 키(권장 기본값) | 호환성 최고, 거의 모든 루팅 기기에서 동작 |
| 최신 루팅 실기기 | NIC 캡처 | 가장 쉽고 자체 완결적 |
| 앱 하나만 신경 쓰거나, NIC 모드에서 복호화되지 않음 | 애플리케이션 레벨 캡처 | 앱 내부에서 평문을 읽어 인증서 피닝 / 커스텀 암호화를 해결 |
앞의 둘은 기기 전체를 자동 복호화하며 인증서 설치 없이 캡처하고, 세 번째는 단일 앱을 대상으로 하여 가장 견고하게 방어된 앱마저 처리할 수 있습니다.
4. NIC 키(권장 기본값)
섹션 제목: “4. NIC 키(권장 기본값)”기기 NIC(기본은 Wi-Fi)의 모든 트래픽을 캡처하고 자동으로 복호화하며, 특정 앱을 고를 필요도, 설치할 인증서도 없습니다.
- 호환성 최고: 커널을 가리지 않아 오래된 기기와 각종 에뮬레이터가 모두 동작하며, 이것이 NIC 캡처 대비 가장 큰 장점입니다. 기기가 얼마나 최신인지 확신이 서지 않을 때 가장 안전한 선택입니다.
- 일부 앱은 암호문만 보일 수 있음: 비표준 암호화 구성 요소를 번들한 개별 앱은 트래픽이 복호화되지 않을 수 있습니다. 그럴 때는 아래의 애플리케이션 레벨 캡처로 전환해 정밀하게 처리하세요.
사용 방법: 기기 선택 → NIC 선택(기본은 Wi-Fi) → 캡처 시작.
5. NIC 캡처
섹션 제목: “5. NIC 캡처”이 역시 기기 NIC의 모든 트래픽을 캡처하고 자동으로 복호화합니다. 차별점은 자체 완결적이고 사용이 가장 쉽다는 것입니다(데이터와 그것을 복호화하는 데 필요한 정보가 함께 패키징됨).
- 전제 조건: 최신 기기(최신 커널)가 필요합니다. 기기가 너무 오래되어 요건을 충족하지 못하면 캡처 시작 시 “NIC 캡처 미지원” 메시지가 명확히 표시되며, 그때는 NIC 키로 전환하면 됩니다.
사용 방법: 기기 선택 → NIC 선택(기본은 Wi-Fi) → 캡처 시작.
6. 애플리케이션 레벨 캡처
섹션 제목: “6. 애플리케이션 레벨 캡처”단일 앱을 대상으로 그 내부에서 평문을 직접 읽어내며, 인증서 피닝도 커스텀 암호화도 막을 수 없습니다.
- NIC 모드의 한계에 얽매이지 않음: NIC 모드에서 복호화되지 않는 앱(인증서 피닝, 커스텀 암호화)도 여기서는 평문을 읽어냅니다. 앱 내부에서 읽으므로 중간자 역할을 하지 않고 NIC 복호화에 의존하지 않기 때문입니다.
- 디코딩할 수 없을 때의 대비책으로 “소켓 트래픽” 켜기: 정적 링크 / 커스텀 라이브러리를 사용해 일반적인 방법으로 평문을 얻을 수 없는 앱의 경우, 이 스위치를 켜서 더 하위 경로로 데이터를 가져옵니다.
- 대상 프로그램 재시작: 앱을 먼저 종료했다가 다시 실행하여 실행 초기 트래픽을 캡처할 수 있습니다.
- 선택한 앱만 대상으로 합니다(기기 전체 트래픽이 아님).
사용 방법: 대상 앱 선택(설치된 앱 목록에서 고르거나, 패키지명 / 프로세스명 입력. 비워 두면 포그라운드 앱 캡처) → 실행 트래픽을 캡처해야 하면 “대상 프로그램 재시작” 체크 → 캡처 시작.
7. 프록시 캡처도 사용할 수 있습니다
섹션 제목: “7. 프록시 캡처도 사용할 수 있습니다”위 세 방법 외에도 Android 기기는 프록시 캡처를 사용할 수 있습니다. 기기의 Wi-Fi 프록시를 이 기기로 향하게 하고 루트 인증서를 설치하면, 컴퓨터에서와 마찬가지로 HTTPS 평문을 캡처하고 재작성과 재전송 기능 전체를 사용할 수 있습니다. 시스템 프록시를 거치는 앱을 디버깅하거나, 모바일 요청을 규칙 기반으로 재작성 / 재전송해야 하는 상황에 적합합니다.
- 인증서 설치: 폰에서 QR 코드를 스캔해 원탭으로 설치 → 인증서 관리 및 설치
- 캡처 및 재작성 기능: → 프록시 캡처
8. Android 캡처를 언제 쓸까
섹션 제목: “8. Android 캡처를 언제 쓸까”- 폰 앱의 네트워크 요청을 분석하고 엔드포인트 문제를 조사할 때, 기기 전체를 자동 복호화하며 인증서와 씨름하지 않습니다.
- 기기나 앱이 실제로 어떤 엔드포인트에 연결했고 무엇을 보냈는지 기기 전체 관점에서 봅니다.
- 앱이 인증서 피닝을 사용해 NIC 모드로 복호화할 수 없을 때, 애플리케이션 레벨 캡처로 평문을 정밀하게 얻습니다.
- 보기와 편집을 동시에 하려면(재작성 / 재전송) 프록시 캡처를 사용하세요.
프록시 캡처로 돌아가기 · 관련: 데이터 보기 및 디코딩 · 인증서 관리 및 설치