안드로이드 어플파일(.apk)을 디컴파일 하는 방법
현재 쓰고 있는 Mac 기준으로 설명함.
(근데 Window도 거의 똑같다.)
일단 필요한 프로그램이 몇개 있다.
첫번째
dex2jar
dex 파일을 jar 포맷으로 변환해주는 프로그램
https://code.google.com/p/dex2jar/downloads/list
위에 주소로 가서 다운로드 받는다.
두번째
JD-GUI
jar 파일을 보기 쉽게 해주는 프로그램
http://jd.benow.ca/
위에 주소로 가서 자신에게 맞는 운영체제용 프로그램을 다운 받는다.
위에 2파일을 모두 다운로드 하면 다시 돌아와서
.apk 파일의 확장자를 .zip 으로 바꾼다음에 압축을 푼다.
압축을 풀고 폴더 안에 보면
classes.dex
파일이 있는데 이 파일만 있으면 된다.
classes.dex
파일을 복사해서 아까 다운받은
dex2jar
설치 폴더로 복사 한다.
그 다음 터미널로 가서
dex2jar
설치 폴더로 간다음에 아래 처럼 명령어를 실행 한다.
실행하면 아래처럼 뭔가 나오면서
dex 파일이 .jar 파일로 변환 된다.
그 다음 JD-GUI 를 실행 해서 방금 만들어진 classes-dex2jar.jar 파일을 읽어 온다.
파일이 로딩 되면 apk 안에 있는 모든 코드들을 볼 수 있다.
안드로이드 보안때문에 이것저것 보다가 찾아낸 방법이지만..
이 방법은 그냥 참조 정도로만 사용하고
절대 악용하지 말자.!!
======== TIP ========
저렇게 디컴파일 했을때 파일이름들을 난독화(Obfuscation)
하고 싶은 경우에는 안드로이드 빌드할때
proguard
를 적용하면 된다.
(요즘엔 보안관련 라이브러리들이 많이 생김)
'Programming > Android' 카테고리의 다른 글
[Android] Http Post 통신하기 (0) | 2015.03.27 |
---|---|
[Android] com.android.am.Am 클래스 에러 (0) | 2015.03.27 |
[Android] 안드로이드 라이프 사이클 (0) | 2015.03.27 |
[Android] Arm 서비스 사용시 gen 폴더 미 생성문제 (0) | 2015.03.27 |
[Android] SharedPreference 사용하기 (0) | 2015.03.27 |