목차
1. APK 추출하기
2. JAR 변환하기
3. JAR 디컴파일
-
1. dex2jar download
- apk/dex to jar
2. mapping download
- proguard reverse
3. JD-GUI download
- 소스코드 조회
4. AXMLPrinter2.jar download
- packageinfo(for AndroidManifest.xml)
5. apktool download
개발자가 구현한 JAVA 코드 및 라이브러리가 APK 파일로 컴파일됨
안드로이드 가상머신에서 실행되는 DEX "classes.dex"로 저장됨
DEX를 직접 디컴파일하는 것보다, JAVA 디컴파일러로 열어보기 위해 JAR로 변환하는 작업을 진행할 것
APK(DEX)를 JAR로 변환하기 위해 DEX2JAR 사용
1. dex2jar download
https://github.com/pxb1988/dex2jar
다운로드 이후, 명령 프롬프트의 해당 동일 경로에 apk 파일 위치시키고, 코드 입력하여 확장자 변경
// - Linux: APK/DEX를 JAR로 변환
dex2jar -f -o app.jar app.apk
dex2jar -f -o app.jar app.dex
// - Windows
d2j-dex2jar.bat app.apk
d2j-dex2jar.bat app.dex
* DEX란? Dalvik Executable, 안드로이드의 실행 파일(윈도우 실행파일: PE)
다음과 같이 jar 파일 생성되는 것을 확인
2. mapping download
명령 프롬프트에 아래와 같이 입력 후,
java -jar mapping.jar
Mapping Utility에
Load Jar: 언패킹할 jar 파일(e.g. app-dex2jar.jar)
Load Mappings: mapping.jar 파일 입력 후
Proguard Reverse 버튼 누르면,
다음과 같이 app-dex2jar.jar.correlated.jar 파일 생성
이후 jd-gui 프로그램 사용하여 소스코드 확인
3. JD-GUI download
http://java-decompiler.github.io/
dex2jar를 사용하기 위해서는 apk 파일 또는 apk 내부 classes.dex 파일을 인자값으로 전달하면 됨
exe 파일 실행하여 jar 파일 open
해당 앱은 proguard로 난독화를 수행하지 않았는지.. mapping 이전과 이후 코드가 동일하게 나타남
4. AXMLPrinter2.jar download
apk 파일 내에 있는 AndroidManifest.xml 파일을 가져와서, AXMLPrinter2.jar 파일 동일 경로에 위치
이후 다음 명령어 입력
(apkinfo.txt: 패키지 파일 내부를 확인할 수 있는 텍스트 파일 형식으로, 파일명은 임의로 지정)
java -jar AXMLPrinter2.jar AndroidManifest.xml > apkinfo.txt
다음과 같이 apkinfo.txt 파일이 생성되며, 패키지명 등 확인 가능
5. apktool download
https://ibotpeaches.github.io/Apktool/
java -jar apktool_2.6.1.jar d app.apk
'Security & Analysis > Analysis' 카테고리의 다른 글
[ASCII Table] 아스키 코드표 (0) | 2023.01.12 |
---|---|
[DHCP] 개념 - 원리 - 기능 - 취약점 - Relay Agent (0) | 2022.11.02 |
[APK 분석] 법무부 사칭 보이스피싱 악성코드 (0) | 2022.08.19 |
[NTP] DRDoS NTP 실습 (0) | 2022.07.22 |
[DRDoS] UDP/TCP 기반 DRDoS 공격 기법과 대응 방안 (1) | 2022.07.18 |