본문 바로가기
Security/Mobile

안드로이드 애플리케이션 디컴파일 도구

by 비니화이팅 2019. 6. 1.

안드로이드 빌드 과정

.java -> .class-> .dex-> .apk -> sign

 

 

안드로이드 디컴파일 방법 및 도구

1. .apk -> .dex -> .smali : 1)

2. .apk -> .dex -> .jar -> .class -> .java : 2)

(3. .apk -----------------------------> .java : 3), 4), 5))

 

1) APK Tool 사용

APK Tool https://ibotpeaches.github.io/Apktool/install/

APK Easy Tool 구글링

- APK Tool 설치를 위해서는 먼저 JAVA JDK를 설치해야 함

 JAVA JDK 설치 https://www.oracle.com/technetwork/java/javase/downloads/index.htm

 

[참고] 리패키징시 (디버그 모드 활성화)

- AndroidMainfest.xml의 android:debuggable 속성을 true로 추가

- debuggable값이 true이면 어플리케이션이 디버그가 가능한 상태인 것을 알 수 있음

- debuggable의 default값은 true로, 디버깅시 device 뷰에 프로세스가 노출되고, 여러 profiling이나 상태정보등을 확인 할 수 있음(따라서 마켓에 등록할때는 당연히 false로 설정해주어야 함)

 

[참고] 서명 추가

//서명 생성(결과로 KEYSTORE 파일 생성)

keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000

 

//앱에 서명 등록

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore my_application.apk alias_name

 

//등록된 서명 확인

jarsigner -verify -verbose -certs my_application.apk

- 서명이 되어 있지 않으면 안드로이드 OS내에 설치가 불가능함

 

2) dex2jar와 JD-GUI 사용

dex2jar

- apk파일이나 apk파일에 포함된 classes.dex파일을 .jar파일로 변환

 

사용법

1) dex2jar 폴더 안에 apk 파일 넣기

2) 해당 폴더에서 명령창 띄어 jar 파일 생성

dex2jar.bat [디컴파일할 apk]

 

 JD-GUI http://java-decompiler.github.io/#jd-gui-download

- .jar파일을 .class파일로 디컴파일

 

3) JEB 사용

JEB3 

- java 디컴파일러

- JEB 설치를 위해서는 먼저 JDK와 JRE를 설치해야 함

JAVA JDK 설치 https://www.oracle.com/technetwork/java/javase/downloads/index.htm

JAVA JRE 설치 https://java.com/ko/download/

 

사용법

1. 디컴파일하고자 하는 apk 파일을 가져온 후 Bytecode 선택(smali 코드 추출)

2. 커서를 해당 페이지에 놓고 q 누르기

 

4) jadx-gui 사용

jadx-gui https://github.com/skylot/jadx

 

5) bytecode-viewer 사용

bytecode-viewer https://github.com/Konloch/bytecode-viewer/releases

 

 

'Security > Mobile' 카테고리의 다른 글

드로저 사용법  (0) 2019.06.01
ADB(Android Debug Bridge) 사용법  (0) 2019.06.01
안드로이드 애플리케이션 디컴파일 도구  (0) 2019.06.01
모바일 프록시 설정  (0) 2019.06.01
에뮬레이터  (0) 2019.06.01
안드로이드 4대 컴포넌트  (0) 2019.05.15

댓글0