[리버스 엔지니어링] 앱 감청 (Android 16)

2026. 2. 16. 02:51·일상다반사/개발

Windows 11 기준으로 작성되었습니다.

 

1. 앱 APK 확보

가장 빠르고 좋은건 APK Mirror 와 같은 사이트에서 apk 파일을 직접 다운로드 하는 것이고,

유명하지 않은 앱이다 하면 없을 가능성이 높다.

 

그 경우 https://github.com/AbdurazaaqMohammed/AntiSplit-M

프로그램을 이용하여 설치된 앱에서도 apk 파일로 추출해낼 수 있다.

 

2. APK 디컴파일

https://apktool.org/

https://github.com/iBotPeaches/Apktool

Apktool을 이용하여 smali 형식의 저수준 언어로된 패키지가 반환된다.

API 엔드포인트와 간단한 어플리케이션의 구조를 알아보기 위해서는 이 파일을 통쨰로 AI에게 맡기면 잘 해석해준다.

여기서만으로도 해결될 수 있음

 

3. 앱 네트워크 감청 (비루팅폰 기준)

Charles, Fiddler, Proxyman(macOS Only) 와 같은 소프트웨어를 준비한다.

이 글에선 Charles 5.0.3으로 진행

 

 

Root 인증서 설치 진행

 

HTTPS 까지 감청을 해야 하는데 기본적으로 앱 보안상 공식 CA 인증서가 아닌 루트를 통하면 데이터가 정상적으로 송수신되지 못함으로 리버싱을 할 앱에서 사용하는 도메인만 등록하여 휴대폰 사용에 문제 없도록 한다. (개발용 단말이 따로 있다면 이 절차는 패스)

 

이 자물쇠를 이용해 SSL 요청도 프록시를 타도록 할지 말지를 결정해준다.

 

보이는 것 처럼 휴대폰에서 프록시를 타도록 해주고, chls.pro/ssl 로 접속하면 인증서를 다운로드할 수 있다.

 

WIFI 프록시 설정

 

chls.pro/ssl 에 접근하여 인증서 다운로드

 

012

다운받은 인증서를 등록

 

 

개발 완료 후 이 인증서는 보안상 삭제해주도록 하자.

 

apktool로 디컴된 앱 소스코드에서

./res/xml 경로에 network_security_config.xml 파일을 작성한다.

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
  <base-config>
    <trust-anchors>
      <certificates src="system" />
      <certificates src="user" />
    </trust-anchors>
  </base-config>
</network-security-config>

 

AndroidManifest.xml의 <application ... 부분을 찾아  android:networkSecurityConfig="@xml/network_security_config" 를 추가해준다.

 

intellij에서 Android 에뮬을 돌려보았거나, Android Studio가 PC에 설치된 적이 있었다면

C:\Users\{Account}\AppData\Local\Android\Sdk 경로에 앱 빌드를 위한 툴과 SDK가 모두 존재할 것이다. 필자는 가장 최신버전으로 빌드 하였다.

 

PowerShell

$SDK = "$env:LOCALAPPDATA\Android\Sdk"
$BT  = "$SDK\build-tools\36.1.0"

& "$BT\zipalign.exe" -p -f 4 .\apkname-mitm.apk .\apkname-mitm-aligned.apk

& "$BT\apksigner.bat" sign `
  --ks "$env:USERPROFILE\.android\debug.keystore" `
  --ks-key-alias androiddebugkey `
  --ks-pass pass:android `
  --key-pass pass:android `
  --out .\apkname-mitm-signed.apk `
  .\apkname-mitm-aligned.apk

& "$BT\apksigner.bat" verify --verbose --print-certs .\apkname-mitm-signed.apk

 

 

빌드 후 설치해주면 모든 준비는 끝.

 

 

이제 앱을 구동하여  사용해보면

 

이렇게 HTTPS도 정상적으로 모든 요청과 응답을 파싱해서 볼 수 있게 된다.

반응형
저작자표시 비영리 (새창열림)
'일상다반사/개발' 카테고리의 다른 글
  • AI 자동매매 시스템 만들기 #6 - 예외처리시간! (LLM 환각, WebSocket 재연결, API 비용 최적화)
  • AI 자동매매 시스템 만들기 #5 - RAG로 AI에게 기억력을 주다(pgvector)
  • AI 자동매매 시스템 만들기 #4 - AI가 실제로 판단하는 방법
  • AI 자동매매 시스템 만들기 #3 - 키움증권 API 연동과 실전 거래
Kua
Kua
정보 공유, 개인 정리 공간 입니다.
  • Kua
    Kua's Miscellaneous
    Kua
  • 전체
    오늘
    어제
    • 분류 전체보기 (193) N
      • 대문 (2)
      • Tips (1)
        • Chrome (2)
        • Windows (4)
        • IDE (3)
        • 기타 (16)
      • CodingTest (44)
      • Language (20)
        • PHP (5)
        • C# (7)
        • Java (1)
        • Kotlin (7)
      • Framework & Runtime (16)
        • SpringBoot (12)
        • Node.js (2)
        • Vue.js (1)
        • Gradle (1)
      • DevOps (13)
        • Linux (1)
        • Docker (4)
        • Kubernetes (2)
        • Apache Kafka (1)
        • AWS (1)
      • 일상다반사 (60) N
        • 도서 (1)
        • 개발 (15) N
        • 후기 - IT (7)
        • 후기 - 일상 (13)
        • 차가리 (4)
        • 방송통신대학교 (4)
        • 음식 (2)
      • Games (12)
        • Minecraft (7)
        • VR (2)
        • 그외 (3)
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
Kua
[리버스 엔지니어링] 앱 감청 (Android 16)
상단으로

티스토리툴바