Decompile - 디컴파일

2020. 12. 9. 11:45 안드로이드/개발 TIP

Decompile을 하는 이유는 간단하다.  소스를 보기 위해서....


apk파일을 열어보면 xml은 깨져있고 java파일은 보이지도 않는다.

소스를 보기 위해서는 어떻게 해야할까?

알고있는 몇가지를 포스팅해본다.



- dex2jar


https://github.com/pxb1988/dex2jar

실행파일을 미러사이트에서 받으면 된다.



압축을 풀면 위와 같은 파일들을 볼 수 있다.


다음으로 apk에서 classes.dex파일을 추출하여 위 폴더에다 넣는다.




해당 폴더의 경로에서 d2j-dex2jar.bat classes.dex 를 입력하면 dex파일을 jar파일로 변환시켜준다.


변환된 jar파일의 압축을 풀면 java파일을 볼수가 있다.



- smali2java


dex2jar에 GUI까지 더해진 것이라 생각하면 된다.

단지 apk파일을 오픈하는 것만으로 java파일을 볼 수 있다.



- apk tool


http://ibotpeaches.github.io/Apktool/


파일을 다운받고 압축을 푼뒤 apk도 같은 폴더에 이동시킨다.

해당 위치에서 java -jar apktool.jar d [파일명].apk 를 입력하면 된다.


apk tool은 java파일을 볼 수가 없다. 

apk tool은 xml등 리소스를 보기 위함이다.



해당 레이아웃을 어떻게 조정했는지 어떤 애니메이션을 사용했는지를 참고하는데 유용할 것이다.




이 외에도 decompile 툴이 존재하지만 대략적으로 많이 사용하는 방법을 올려보았다.


요즘은 proguard 등 코드 난독화 및 압축을 하기 때문에 소스 보기가 쉽지는 않다.



출처: https://akaisun.tistory.com/15?category=622886 [아카이의 개발창고]

'안드로이드 > 개발 TIP' 카테고리의 다른 글

photoview library  (0) 2020.12.09
구글맵 사용하기  (0) 2020.12.09
Goolgle map api 설정  (0) 2020.12.09
내 주변의 와이파이 목록 가져오기  (0) 2020.12.09
Resource 배열처리  (0) 2020.12.09
안드로이드 비디오 재생하기  (0) 2020.12.09
이미지 선택시 번호 표시하기  (0) 2020.12.09
ButterKnife 사용하기  (0) 2020.12.09