본문 바로가기
Mobile/🩷 Android

04. Anodroid 진단 도구_정적 분석

by snowflower.DY 2024. 4. 25.
Apktool

  APK 파일을 smali 코드로 변환해주는 툴으로 설치 URL은 아래와 같다.

 

GitHub - iBotPeaches/Apktool: A tool for reverse engineering Android apk files

A tool for reverse engineering Android apk files. Contribute to iBotPeaches/Apktool development by creating an account on GitHub.

github.com

 

1. 아래의 명령어를 통해서 APK 파일을 smali 코드로 디컴파일한다.

C:{apktool 파일 경로}> java -jar apktool_2.9.3.jar d <apk 파일> -o ./<smali 파일명>

smali 코드 변환
변환된 smali 파일 확인

 

2. smali 파일을 apk 파일로 변환할 수도 있다.

C:{apktool 파일 경로}> java -jar apktool_2.9.3.jar b <smali 파일명> -o ./<apk 파일명>

apk 파일로 변환
변환된 apk 파일

 

Dex2jar

  APK 파일이나 dex 파일로 .jar 파일(class파일의 압축)로 변환해주는 도구이며, 설치 URL은 아래와 같다.

 

GitHub - pxb1988/dex2jar: Tools to work with android .dex and java .class files

Tools to work with android .dex and java .class files - pxb1988/dex2jar

github.com

 

1.  아래의 명령어를 통해서 apk파일을 dex파일로 변환한다.

C:{dex2jar 파일 경로}\dex-tools-v2.4> d2j-dex2jar.bat <APK 파일 경로>
Picked up _JAVA_OPTIONS: -Xmx512M
dex2jar ../InsecureBankv2.apk -> .\InsecureBankv2-dex2jar.jar

 

2. dex2jar 폴더 내 하단에 변환된 jar 파일을 확인한다.

변환된 jar 파일

 

JADX

    APK 파일 및 Dex 파일을 java로 변환해주는 디컴퍼일러로 설치 URL은 아래와 같다.

※ 글쓴이는 java11 버전을 설치했으며, 너무 낮거나 높은 버전의 java 경우 jadx 실행이 안될 수도 있다.

 

GitHub - skylot/jadx: Dex to Java decompiler

Dex to Java decompiler. Contribute to skylot/jadx development by creating an account on GitHub.

github.com

 

1. 설치한 jadx 파일 내 있는 jadx-gui.bat 파일 실행한다.

 

2.  '파일 열기' 버튼 누른 후 java 파일로 변환할 APK 파일 선택한다.

jadx 툴
APK 파일 선택

 

3. 다음과 같이 정상적으로 변환된 것을 확인한다.

java 파일로 변환된 APK 파일

 

Bytecode-Viewer

  jadx와 동일하게  APK 파일을 java로 변환해주는 디컴퍼일러로, java 코드와 smail 파일을 같이 볼 수 있다.

 

GitHub - Konloch/bytecode-viewer: A Java 8+ Jar & Android APK Reverse Engineering Suite (Decompiler, Editor, Debugger & More)

A Java 8+ Jar & Android APK Reverse Engineering Suite (Decompiler, Editor, Debugger & More) - Konloch/bytecode-viewer

github.com

 

1. 우측 상단 'Files' 부분에 APK 파일을 드래그앤 드랍하여 올려 놓으면 변환된다.

Bytecode-Viewer 툴