ApiCatcher for Android
Android HTTP/HTTPS 패킷 캡처와 디버깅을 더 쉽게
VpnService + tun2proxy 기반으로 ApiCatcher는 VPN 터널 계층에서 HTTP/HTTPS 트래픽을 강제 리다이렉트합니다. 앱 계층에서는 투명하며 시스템 프록시에 의존하지 않습니다. iOS 버전과 코어 아키텍처를 맞춘 간결한 모바일 캡처 경험을 제공합니다.

전문 패킷 캡처 및 API 디버깅 도구
네트워크 요청 캡처, Mock 리라이트, AI 스크립트, 요청 리플레이를 아우르는 원스톱 네트워크 디버깅 서비스.
HTTPS 트래픽 캡처
Android 기기에서 HTTPS 요청과 응답을 직접 캡처하고 분석합니다.
WebSocket 트래픽 캡처
WS/WSS 트래픽 캡처를 지원하며 데이터 프레임을 채팅 메시지 목록으로 표시합니다.
허용/차단 호스트 리스트
호스트별 허용/차단 리스트를 설정하여 특정 서비스 외의 불필요한 트래픽 캡처를 방지할 수 있습니다.
요청 리플레이
원탭으로 요청을 다시 실행하여 문제를 신속하게 재현하고 검증합니다.
조합 리플레이
여러 요청을 드래그 앤 드롭으로 조합할 수 있습니다. 파라미터 연동 및 순차 실행을 지원합니다.
요청 리라이트
Mock, 데이터 수정, 요청 드랍 등 다양한 리라이트 규칙을 지원하여 디버깅 니즈를 충족합니다.
스크립트 실행
복잡한 데이터 처리나 암호화 알고리즘에 대응하는 스크립트 기능을 제공하며, 즉시 테스트가 가능합니다.
예약 리플레이
스케줄에 따른 자동 리플레이를 지원하여 자동화 테스트 및 회귀 검증을 돕습니다.
요청 기록 내보내기
요청 기록을 공유하거나 문제 재현을 위해 파일로 내보낼 수 있습니다.
API 내보내기
API 문서를 자동으로 생성하며 Postman이나 Apifox로 내보낼 수 있습니다.
미디어 파일 추출
이미지, 영상, 오디오 요청을 자동 식별하여 추출합니다. 분할 다운로드된 파일의 통합 저장도 지원합니다.
API 스캔
캡처된 트래픽을 기반으로 규칙 탐지 및 통계를 수행하며, 사용자 정의 스캔 규칙을 지원합니다.
DNS 매핑
도메인 이름을 특정 IP 주소로 확인하는 사용자 정의 DNS 규칙을 정의합니다.
Protobuf 디코딩
Protobuf로 인코딩된 요청/응답 Body를 자동으로 디코딩합니다.
간결하고 사용하기 쉬운 Android 네트워크 캡처·디버깅 경험
Android 개발자가 HTTP와 WebSocket 트래픽을 효율적으로 분석하도록 돕습니다.
PC 프록시 불필요
디버깅할 때마다 Wi‑Fi/셀룰러 프록시 설정을 바꿀 필요가 없습니다. Android 기기에서 원탭으로 캡처를 시작하세요.
전체 트래픽 TUN 투명 캡처
VpnService로 TUN 가상 NIC를 만들고 tun2proxy를 통해 HTTP/HTTPS 연결을 로컬 MITM 프록시로 투명 전달합니다.
HTTPS 중간자 복호화
Netty 기반 로컬 MITM 프록시가 CONNECT 터널과 동적 인증서 발급으로 HTTPS를 복호화하고, HTTP는 직접 전달·기록합니다.
극도로 단순하고 직관적인 인터랙션 디자인
iOS 버전과 맞춘 간결한 UI. 요청과 응답이 한눈에 들어와 트래픽 분석이 더 효율적입니다.
Android 패킷 캡처 가이드 및 제한 사항
동작 원리, CA 설치, HTTPS 캡처 제한을 이해하고 빠르게 시작하세요
1동작 원리
1. VPN / TUN 가상 NIC 생성
캡처를 시작하면 ApiCatcher가 VpnService를 만들고 TUN 가상 네트워크 인터페이스를 통해 기기의 모든 IP 패킷을 캡처합니다.
2. tun2proxy 투명 전달
tun2proxy(Rust 네이티브 라이브러리)가 TCP 패킷을 저수준에서 파싱하고 HTTP/HTTPS 연결을 로컬 127.0.0.1:8888로 투명 전달합니다.
3. 로컬 MITM 프록시 복호화
Netty 기반 로컬 MITM 프록시가 HTTP를 직접 전달·기록하고, HTTPS는 CONNECT 터널과 동적 인증서 발급으로 복호화합니다. 앱 계층에 투명하며 시스템 프록시에 의존하지 않습니다.
2CA 인증서 설치 가이드
HTTPS 트래픽을 캡처하려면 먼저 ApiCatcher CA 인증서를 설치해야 합니다. Android 14+(API ≥ 34)에서는 앱이 CA를 직접 설치할 수 없으므로 아래 절차로 수동 설치하세요:
- 앱에서 「CA 인증서 설치」를 탭하면 인증서가 Downloads에 저장됩니다.
- 설정 → 보안 및 개인정보 보호 → 추가 보안 및 개인정보 보호 → 암호화 및 사용자 인증 정보 → 인증서 설치 → CA 인증서로 이동합니다.
- Downloads/apicatcher_ca.crt 파일을 선택합니다.
- 잠금화면 비밀번호를 입력해 설치를 확인합니다.
- 설정 → 보안 및 개인정보 보호 → 추가 보안 및 개인정보 보호 → 암호화 및 사용자 인증 정보 → 신뢰할 수 있는 사용자 인증 정보 → 사용자에서 ApiCatcher CA를 찾아 「신뢰」를 탭합니다.
MITM은 SSL Pinning을 우회하지 않습니다. CA를 설치해도 인증서 고정이 된 앱(예: 많은 Google 앱)은 복호화할 수 없습니다.
3HTTPS 트래픽 캡처 및 디버깅 제한
인증서는 보통 「사용자」 자격 증명 저장소에만 설치할 수 있습니다. Android 7 이상에서는 대부분의 앱이 사용자 인증서를 신뢰하지 않아 HTTPS를 복호화할 수 없습니다.
✓웹사이트 디버깅
Chrome 등 브라우저는 보통 사용자 인증서를 신뢰하므로 웹 트래픽을 정상적으로 캡처할 수 있습니다. 웹 브라우징 디버깅에는 Chrome 사용을 권장합니다.
⚠앱 디버깅
자신의 앱 트래픽을 캡처·복호화하려면 프로젝트에서 사용자 인증서를 신뢰하도록 설정하세요. 아래 「개발자가 자신의 앱 패킷을 캡처하는 방법」을 참고하세요.
4개발자가 자신의 앱 패킷을 캡처하는 방법
1. HTTP 요청 캡처
기본 네트워킹 스택을 사용한다면 ApiCatcher VPN만 켜면 바로 캡처할 수 있으며 추가 설정이 필요 없습니다.
2. HTTPS 요청 캡처
Android 7.0(API 24) 이상에서는 시스템이 기본적으로 시스템 CA만 신뢰하고 사용자가 수동 설치한 CA는 신뢰하지 않습니다. 개발자는 앱에서 사용자 CA 신뢰를 선언해야 하며, 그렇지 않으면 HTTPS 핸드셰이크가 실패합니다.
res/xml/ 아래에 network_security_config.xml을 생성하세요:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<debug-overrides>
<trust-anchors>
<certificates src="user"/>
<certificates src="system"/>
</trust-anchors>
</debug-overrides>
</network-security-config>그리고 AndroidManifest.xml의 application 태그에서 참조하세요:
<application
android:networkSecurityConfig="@xml/network_security_config"
...>
</application>이는 debug 빌드에만 적용되며 release 빌드에는 영향이 없습니다. ApiCatcher CA를 설치하고 VPN을 켜면 해당 앱의 HTTPS를 캡처할 수 있습니다.