Apktool를 이용해 APK 파일을 다시 리패키징하는 과정에서
오류가 종종 발생할 수 있다.
가장 많이 나타는 오류를 알아보고, 이에 대한 2가지 대응방안에 대해 정리하겠다.
💡AAPT(Android Asset Packaging Tool)?
안드로이드에서 사용되는 문자열, 이미지 등의 에셋(Asset)을 효율적으로 컴파일하고 패키징하기 위한 도구의 개념이다.
안드로이드 앱을 개발할 때는 별도의 에셋 폴더에 문자열, 이미지를 모아 놓는데 이것이 실제 코드와 함께 동작할 수 있도록 한다.
방안 1) 리패키징 시, AAPT v2 사용
2020년 기준으로 최신 앱들은 AAPT v2를 사용하는 경우가 많은데, Apktool의 버전에 따라서 이를 처리하는 방법이 다르다. 예를 들어 Apktool v.2.3.4는 AAPT v1과 v2 바이너리를 모두 묶어서 .jar 파일에 넣는다. 이러한 과정에서 리패키징 오류가 발생할 수 있는데, AAPT v2 사용을 강제한다면 문제가 해결될 가능성이 있다.
재빌드 과정에서 --use-aapt2 옵션을 넣어주었다. 일단 먼저 디컴파일을 하면 다음과 같이 실행될 것이다. 정상적으로 디컴파일이 완료된 것을 확인할 수 있다.
apktool b --use-aapt2 파일명 -o Apk명
방안 2) 디컴파일 시, resources.arsc 파일을 제외하고 디코딩
'Security > Mobile' 카테고리의 다른 글
[Android] FridaLab(1) (0) | 2021.10.28 |
---|---|
[Android / iOS] Frida 설치 및 실행 (0) | 2021.10.27 |
[Android] 갤럭시 루팅 기본 (Odin/TWRP/Magisk) (0) | 2021.09.10 |
[iOS] 아이폰 탈옥(Unc0ver) (0) | 2021.09.09 |
[Android] APK 디컴파일 및 리패키징(2) (0) | 2021.09.07 |