○ apk > dex > smali > class > java
목록 | 설명 |
apk 파일 | 압축해제 시 모바일 전용 dex 파일 생성 |
apktool | apk 파일을 smali 파일로 디컴파일 |
dex2jar | apk 파일을 class 파일로 디컴파일 |
jadx-gui | apk 파일을 java 파일로 디컴파일 |
Bytecode Viewer | apk 파일을 java 파일 및 smali 파일로 디컴파일 |
1. apk 파일 압축 해제
java 설치 : https://www.java.com/en/download/
Download Java for Linux
Linux RPM filesize: 102.35 MB Instructions After installing Java, you will need to enable Java in your browser.
www.java.com
apktool 설치 : https://bitbucket.org/iBotPeaches/apktool/downloads/
iBotPeaches / Apktool / Downloads — Bitbucket
For large uploads, we recommend using the API. Get instructions
bitbucket.org
○ .java 파일 -> dex + 리소스 + 권한 -> apk 파일
○ 권한 정보를 나타내는 AndroidManifest.xml 파일
○ 디컴파일 없이는 해석할 수 없는 것을 볼 수 있음
2. apktool을 이용한 디컴파일
○ AndroidManifest.xml 파일에는 사용자 권한(permission)과 관련된 내용이 들어감
○ 불필요한 권한이 존재할 경우 취약으로 판단될 수 있음
○ activity라는 것은 앱을 실행했을 때 확인되는 UI라고 생각하면 편함
○ UI 마다 라벨이 붙어 있음
○ 테스트 activity 또는 불필요한 activity가 있을 경우 취약하다고 판단됨
○ exported = "true"가 설정되어 있을 경우 외부에서 호출할 수 있음
○ 중요한 페이지일 경우 외부에 노출되면 취약하다고 판단
○ .java 파일 -> class -> smali -> dex + 리소스 + 권한 -> apk 파일
○ smali 코드는 apk가 보호되어(솔루션 등)있을 경우 파일을 변경하여 루팅, 솔루션 우회 지점을 찾아 수정해 apk를 만듬
○ 솔루션이 존재할 경우 원본 파일(.java)로 변환되기 힘들 떄, smali 코드를 사용
3. dex2jar를 이용한 디컴파일
○ .java 파일 -> class -> smali -> dex + 리소스 + 권한 -> apk 파일
4. Bytecode Viewer
○ 디컴파일 도구로써 왼쪽은 java 코드, 오른쪽은 smali 코드를 출력함
○ 플러그인을 지원함
○ 하지만, 검색 기능이 뛰어나진 않음
○ 앞서 배운 jadx-gui의 경우 검색 기능의 뛰어남
○ 그래서 2개의 툴을 많이 사용함
끝판왕은 역시 JEB
'기반 지식 > Android' 카테고리의 다른 글
9. 로컬 암호화 이슈 & 취약한 SD카드 스토리지 (2) | 2024.12.16 |
---|---|
8. GDA를 활용한 디컴파일 코드 분석 사례 (0) | 2024.12.13 |
6. 모바일 취약점 진단 항목 (0) | 2024.12.09 |
5. 녹스(Nox Player) 가상 애뮬 설치 (0) | 2024.12.06 |
4. 안드로이드 앱 구조 (0) | 2024.12.05 |