일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- RxJava2
- 하드코드검색
- deprecating the install_referrer
- hardcoded string search
- Rx자바
- Switch to the Play Referrer API by March 1
- RXjava
- android P
- Android
- java
- rxandroid
- RX
- 안드로이드
- Retrofit2
- andorid studio
- Today
- Total
Lucky Dog
[안드로이드] 리패키징(Decompile, 디컴파일, 코드수정, 컴파일, 사이닝) 방법 및 프로가드가 리패키징에 끼치는 영향 본문
[안드로이드] 리패키징(Decompile, 디컴파일, 코드수정, 컴파일, 사이닝) 방법 및 프로가드가 리패키징에 끼치는 영향
Poohya 2015. 4. 20. 15:33* 프로가드 유무는 리패키징 자체에 영향을 주지않고 난독화 유지
프로가드 미적용
1. apk tool 다운로드
https://code.google.com/p/apktool/downloads/
2. 기기에 설치된 apk 파일 가져오기
2-1. adb shell 진입
>adb shell
2-2. 설치된 앱 확인
$>pm list packages -f | more
2-3. apk 가져오기
$>exit
>adb pull "apk경로" "저장할경로"
ex) adb pull /data/app/com.test.reversetest-1.apk C:\apk_tool
3. 디컴파일
>java -jar apktool.jar d com.test.reversetest-1.apk output
4.smali 파일 분석 및 수정
> output 폴더에 디컴파일된 소스 분석 및 수정
5. 리패키징
> java -jar apktool.jar b output
dist 폴더에 리패키징된 apk 생성된다.
6. 사이닝
jarsigner [option] [apk or jar] [alias]
ex)>jarsigner -verbose -keystore my_test_keystore c
om.test.reversetest-1.apk test_alias
프로가드 적용
프로가드 미적용과 동일한 절차로 디컴파일, 코드수정, 컴파일, 사이닝이 가능하다.
1. R.smali, R$layout.smali 등의 리소스의 대한 smali 가 생성되지 않는다.
2. 프로가드가 적용되어 난독화된 클래스와 메소드가 표시된다.
3. 프로가드를 적용해도 리패키징이 가능하며 정상적으로 실행된다.