안녕하세요 머쉬입니다.
APK 파일을 분석 후 smali 코드를 변조하여 리패키징하는 방법은 다음과 같습니다.
실습 도구 다운로드
APK 파일을 리패키징하기 위해 필요한 도구는 다음과 같습니다.
1. UnCrackable 앱
- 정보보안을 연구하는 그룹인 OWASP에서 모바일 리버스 엔지니어링 연습용으로 개발한 앱
- AOS Level 1~3, iOS Level 1~2
https://github.com/OWASP/owasp-mastg/tree/master/Crackmes/Android/Level_01
2. jadx
https://github.com/skylot/jadx/releases
Releases · skylot/jadx
Dex to Java decompiler. Contribute to skylot/jadx development by creating an account on GitHub.
github.com
3. Apktool
Apktool | Apktool
A tool for reverse engineering Android apk files.
apktool.org
리패키징 방법
먼저 Aptkool을 이용하여 APK 파일을 디컴파일해줍니다.
java -jar apktool_2.9.1.jar d UnCrackable-Level1.apk
jadx-gui를 이용하여 소스코드를 분석합니다.
간략하게 APK 실행 시 노출되는 "Root detected!" 문구를 수정합니다.
※ jadx-gui를 이용하여 소스코드를 분석 후 해당되는 smail 코드를 수정합니다.
소스코드 수정이 끝난 후 디컴파일된 폴더를 빌드시켜 APK 파일을 생성합니다.
APK 파일은 생성하였으나 이대로 안드로이드 기기에 설치하여 사용하지 못하므로 APK Signing을 진행합니다.
java -jar apktool_2.9.1.jar b UnCrackable-Level1 -o Modify.apk
APK Signing 방법
APK Signing을 하기 전 keystore 서명을 생성합니다.
- 패스워드 등록 > 패스워드 재확인 > 이름 > 조직 단위 이름 > 조직 이름 > 구/군/시 > 시/도 > 국가코드
※ keytool, jarsigner는 java 설치 시 기본적으로 설치되어있으므로, java 설치 경로에 접근하거나 환경변수 설정을 통해 실행하면됩니다.
keytool -genkey -v -keystore mush.keystore -alias mush -keyalg RSA -keysize 2048
keystore 서명을 생성하였으니 생성한 서명으로 APK 파일에 서명을 시도합니다.
- keystore 서명 파일에 대한 패스워드는 위에서 생성했던 패스워드를 입력
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore mush.keystore Modify.apk mush
리패키징된 APK 확인
jadx-gui 도구를 통해 코드가 수정된 것을 확인하고, 안드로이드 기기에 리패키징된 APK 파일을 설치해 변경된 코드가 정상적으로 작동하는지 확인합니다.
Reference
https://domdom.tistory.com/287#recentComments
https://hagsig.tistory.com/193
https://hagsig.tistory.com/192
'MOBILE > Android' 카테고리의 다른 글
[AOS] Burp Suite 인증서 설치 방법(Galaxy S10 5G, Android version 7 이상) (0) | 2024.06.11 |
---|---|
[AOS] Frida를 이용한 앱 후킹 방법 (0) | 2024.01.12 |
[AOS] Burp Suite 인증서 설치 방법(NOX, Android version 7 이상) (0) | 2024.01.08 |
[AOS] Android 폰 루팅 방법 (Galaxy A12, S10 5G) (1) | 2024.01.03 |
[AOS] Android 순정 펌웨어 다운로드 및 설치 방법(Galaxy A12, S10) (0) | 2024.01.02 |