안녕하세요 머쉬입니다.
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
3. Apktool
리패키징 방법
먼저 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' 카테고리의 다른 글
[iOS] Burp Suite 인증서 설치 방법 (version 14.7.1) (0) | 2024.05.17 |
---|---|
[AOS] Frida를 이용한 앱 후킹 방법 (0) | 2024.01.12 |
[iOS] CrackerXI+를 이용한 IPA 추출 방법 (0) | 2024.01.10 |
[iOS] 탈옥한 iPhone에 IPA 설치 방법 (0) | 2024.01.10 |
[iOS] 3uTools를 이용한 iPhone 14.7.1 탈옥 방법 (iOS 11.0 - 14.8) (0) | 2024.01.10 |