APK 분석하는 방법
1. 먼저 원하는 apk 파일을 다운받는다.
2. apk는 압축 파일 형태로 구성되어 있다. 그래서 일반적으로 반다집으로 압축해지하면 관련 파일들을 볼수가 있다.
AndroidManifest.xml : 앱에 대한 정보, 실행 권한, 맨처음 시작하는 activity 내용등을 확인할 수 있는 파일.
classes.dex : dalvik 가상 머신에서 동작하는 바이너리 실행파일.
res : 리소스 폴더.
META_INF : 인증파일.
3. dex 파일은 apk 파일에 해당한다. 실제 자바 코드를 컴파일하여 클래스 파일로 만든 후에 다시 압축한 것이다.
4. dex2.jar(https://code.google.com/p/dex2jar/), JD-GUI(http://jd.benow.ca/) 툴이 필요하다.
해당 사이트에 가서 Download tab을 선택하여 다운로드 하면 된다.
5. dex2.jar로 apk 디 컴파일 (dex 파일을 jar파일로 변환해주는 툴이다.)
dex2.jar 압축파일을 해지한 폴더로 이동하여 command창으로 열고
dex2jar.bat apk_file 명
(결과물은 apk_file명_dex2.jar로 생성된다.)
6. jd-gui 로 jar 파일을 열어본다.
7. 이 툴에서 제공하는 Save all sources를 누르면 src 파일들만 zip파일로 저장할 수 있다.
APKTOOL 을 이용한 APK 분석
1. apktool 은 https://code.google.com/p/android-apktool/ 의 download tab에서 다운받아 압축을 해지하면 된다.
2. cmd로
java -jar d:\android\android-apktool\apktool.jar d [apk_file 명] [out dir name]
3. 결과 폴더 확인
smali 폴더 내부에 디컴파일된 소스파일들이 존재하게 된다.
'[미네르바's IT] > [미네르바's 안드로이드]' 카테고리의 다른 글
[안드로이드]Listview 폰트, 색상 바꾸기 (0) | 2014.12.29 |
---|---|
[안드로이드 광고 수익]구글 애드몹 광고 달기(전면 광고/배너 광고) (0) | 2014.12.28 |
[안드로이드]ListView + custom adapter에서 클릭 이벤트 처리. (0) | 2014.12.26 |
[안드로이드]엑셀 파일로부터 db 파일 만들기 (0) | 2014.12.24 |
[안드로이드]이클립스 실행시 에러 : Installation error: INSTALL_FAILED_MISSING_SHARED_LIBRARY (0) | 2014.12.24 |