Windows 11 기준으로 작성되었습니다.
1. 앱 APK 확보
가장 빠르고 좋은건 APK Mirror 와 같은 사이트에서 apk 파일을 직접 다운로드 하는 것이고,
유명하지 않은 앱이다 하면 없을 가능성이 높다.
그 경우 https://github.com/AbdurazaaqMohammed/AntiSplit-M
프로그램을 이용하여 설치된 앱에서도 apk 파일로 추출해낼 수 있다.
2. APK 디컴파일
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 에 접근하여 인증서 다운로드



다운받은 인증서를 등록

개발 완료 후 이 인증서는 보안상 삭제해주도록 하자.
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도 정상적으로 모든 요청과 응답을 파싱해서 볼 수 있게 된다.