본문 바로가기

자료

안드로이드 앱 SSL-Pinning 우회 및 패킷 캡처

728x90

안드로이드 앱  SSL-Pinning 우회 및 패킷 캡처


 

 

 


1. 애플리케이션 언패키징

Apktool을 사용하여 APK 파일을 언패키징합니다.

java -jar apktool.jar d com.fusionmedia.investing.apk

 

2. 보안 설정 변경

언패키징된 앱의 AndroidManifest.xml파일의 application 항목에

android:networkSecurityConfig="@xml/network_security_config"

파라미터를 추가합니다. (이미 해당 값이 있다면 그대로 둡니다.)

없으면 아래 파일을 다운받아서 res/xml 폴더내에 넣으면됩니다.

network_security_config.xml
0.00MB

res/xml/network_security_config.xml 파일을 생성하고 (이미 있다면 그대로 사용합니다), 아래의 내용을 삽입합니다.

이중 핵심은 아래 부분입니다.

        <trust-anchors>
            <certificates src="system" />
            <certificates src="user" />
        </trust-anchors>

trust-anchors 항목에 사용자(user)가 설치한 루트 인증서를 신뢰하도록 합니다.

이제 이 설정을 사용하여 앱을 리패키징하면 됩니다.

 

 

3. 애플리케이션 리패키징

다시 Apktool을 사용하여 앱을 리패키징합니다.

java -jar apktool.jar b com.fusionmedia.investing -o com.fusionmedia.investing.repack.apk

com.fusionmedia.investing.repack.apk 라는 이름으로 리패키징 된 앱이 생성됩니다.

4. 애플리케이션 서명

안드로이드 앱은 패키징 후에 서명을 해야만 설치가 가능합니다.

java -jar sign.jar com.fusionmedia.investing.repack.apk

실행하면 서명된 com.fusionmedia.investing.repack.s.apk APK 파일이 생성됩니다.

완성입니다.

728x90