apk 파일을 추출하는 방법
1. 웹 사이트 이용(비추천)
위 사이트에서 다운로드 하고자 하는 앱을 검색 후 다운로드
https://apps.evozi.com/apk-downloader/
여기서도 가능
근데 이 방법은 편리하지만 추천하지는 않는다.
이유는 아래에서 설명.
2. 앱 이용
https://play.google.com/store/apps/details?id=com.ext.ui&hl=ko&gl=US
"APK Extractor"라는 앱을 이용하여 apk 파일을 추출할 수 있다.
플레이스토어에서 해당 앱을 설치한 뒤, 아래처럼 보이는 리스트에서 원하는 앱을 선택하면
"/storage/emulated/0/ExtractedApks/" 경로에 apk 파일이 생성된 것을 볼 수 있다.
3. ADB 이용
adb pull /data/app/<패키지명>/base.apk test.apk
패키지명은 "/data/app/"에서 찾을 수 있다.
4. 차이점
근데 분석을 하면서 알았는데, 1~3번의 방법으로 인한 추출된 결과물이 조금 달랐다.
우선 import 하는 자바 패키지의 이름이 서로 달랐다.
예를 들어, evozi apk downloader를 이용하여 받은 apk 파일에서는 "import com.AAA.security.manager" 이렇게 자바 패키지를 임포트 했다면
APK Extractor나, ADB pull을 이용해서 추출한 apk 파일에서는 "import com.BBB.security.manager" 이렇게 evozi apk downloader와는 서로 다른 이름의 자바 패키지를 임포트하였다.
또한 당연히 위와 같이 서로 해시값도 달랐다.
처음에는 모종의 방법으로 자바 패키지를 동적 로드하면서 패키지명을 바꾸는 방식인가 하고 조사해봤는데 이건 아니었고,
플레이스토어에서 설치한 앱의 버전과 evozi apk downloader를 이용해 받은 앱의 버전이 서로 달랐기 때문이었다.
5. 결론
좀 더 라이브한 분석을 위해서 evozi apk downloader보다 플레이스토어를 이용하여 최신 버전의 앱을 설치하고, APK Extractor나 ADB pull 등을 이용하여 APK 파일을 추출한 뒤 분석하자.
.
'리버싱 > Android' 카테고리의 다른 글
Install ADB on MAC (1) | 2023.05.16 |
---|---|
how to fix "This adb server's $ADB_VENDOR_KEYS is not set" error (0) | 2023.04.24 |
how to solve "Waiting For Debugger" (0) | 2023.01.04 |
Android temporarily directory (0) | 2023.01.03 |
how to root Android (0) | 2022.08.12 |
how to bypass proxy detection in Android (0) | 2022.02.16 |
Android Packet Debugging using Proxy tools (3) | 2022.02.16 |
APK 분석 툴 리스트 (0) | 2022.02.16 |
adb 명령어 정리 (2) | 2017.12.07 |
AndroidManifest.xml의 android:debuggable 수정하기 (0) | 2016.11.02 |
댓글