Android 디컴파일하기

SSY·2023년 2월 9일
0

Decompile

목록 보기
1/2
post-thumbnail

시작하며

이 글이 Android디컴파일을 설명하는 글중 가장 자세히 설명하는게 아닐까 한다. 이 글을 하나하나 따라오면 디컴파일은 5분안에 될거라 생각한다.

1. apk파일 다운로드

다음 사이트에서 원하는 APK파일 다운로드 진행

2. dex2jar 다운로드

이 파일은 apk파일 내에 있는 dex파일을 jar파일로 변환시켜주는 파일이다. 만약 이녀석은 안거치고 apk파일을 바로 jar파일로 변경시, class내부 코드를 볼 수 없게 된다.

최신버전 다운로드하러 가기

dex2jar를 안쓰고 디컴파일을 했을때?

하단 사진을 보면 class.dex, class2.dex파일이 보일것이다. 위 파일이 바로 안드로이드 class파일이 뭉쳐있는 파일이다. 위 파일을 class파일로 변환시켜줘야 한다.

3. JD-GUI 다운로드

dex2jar을 통해 dex파일을 jar파일로 변환시켰다면, 이제 코드를 볼 수 있는 GUI프로그램이 있어야 한다.

다운로드하러 가기

4. 디컴파일 시작하기

dex-tools-2.1버전 기준으로 설명합니다.

  1. 아래와 같이 dex-tools-2.1에 다운받은 apk파일 위치시킨다.
  1. dex2jar를 실행시키기 위한 권한을 부여한다.

    sudo chmod +x d2j_invoke.sh

  2. 이제 본격적으로 apk파일 내에 있는 dex파일을 class파일로 변환한다.

    ./d2j-dex2jar.sh target.apk

  3. 변환 완료된 결과물을 확인한다.

  1. GD-GUI를 킨다.

  2. 아까 추출한 target-dex2jar.jar를 위 화면에다 끌어다 놓는다. 우선 첫 번째 사진의 경우 프로가드가 제대로 적용돼있지 않은 모습이다. 패키지명과 클래스명, 각종 멤버들이 노출되는걸 확인할 수 있다.

다음 사진은 프로가드 및 코드 최적화가 적용된 사진이다. 패키지명/클래스명/각종 멤버들이 알 수 없는 문자들로 변경되었다.

위 두 사진 비교를 통해 내 앱에 프로가드가 잘 적용되었는지 확인할 수 있다.

5. apktool 활용 및 디컴파일

https://dnight.tistory.com/entry/APKTOOL-%EC%84%A4%EC%B9%98-%EB%B0%A9%EB%B2%95

profile
불가능보다 가능함에 몰입할 수 있는 개발자가 되기 위해 노력합니다.

0개의 댓글