일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- .apk
- 안드로이드란
- 네트워크모델
- CrossSiteRequestForgery
- Frida
- 안드로이드 구성요소
- CSRF
- 불충분한인가
- OWASP TOP 10
- SSRF
- OSI 7Layer
- .class
- TCP/IP 4계층
- IPv6전환
- .dex
- TCP/IP 4Layer
- CrossSiteScripting
- IP클래스
- apk
- 웹쉘
- 프리다
- 네트워크기초
- 취약점
- 4대 구성요소
- 안드로이드 구조
- 불충분한인증
- DVM
- 네트워크
- ServerSideRequestForgery
- 프로세스검증누락
- Today
- Total
secure_world
안드로이드 - JVM&DVM / APK파일의 구조 본문
1. JVM & DVM
2. APK파일의 구조
※ 잘못된 정보가 있을 경우에는 댓글을 통해서 알려주시면 바로 수정하도록 하겠습니다!
1. JVM & DVM
1.1. JVM (Java Virtual Machine)
- JVM은 Java Virual Machine으로 자바 가상 머신을 말함
- Java 바이트 코드를 실행하기 위한 가상 머신
- JVM만 설치되어 있으면 어떤 운영체제라도 바이트 코드를 실행할 수 있음
- 스택 기반으로 되어 있음
- .class파일에서 바로 실행할 수 있음
1.2. DVM (Dalvik Virtual Machine)
- 달빅(Dalvik) 가상 머신을 말함
- 안드로이드 어플리케이션을 실행할 수 있는 가상 머신
- 달빅 가상 머신은 레지스터 머신 형태의 가상 머신으로, 적은 메모리 요구 사양에 최적화되어 있음
- Java 바이트 코드로 변환되는 동일한 과정을 거친 후 추가적인 단계를 진행함
- 레지스터 기반으로 되어 있음
- .class파일에서 .dex파일로 변환해야 실행시킬 수 있음
(→ DVM이 명령어의 수가 더 적고, 코드 길이는 JVM보다 김)
2. APK파일의 구조
- 안드로이드 어플리케이션 파일인 APK(Android PacKage)파일은 하나의 .zip과 같은 압축 파일로 되어있음
- 어플리케이션에 관계된 파일을 하나로 압축해놓은 파일이기 때문에, 프로그램을 사용하여 압축을 푸는 것 또한 가능함
- .apk파일의 압축을 풀면 .dex파일이 나오는데, 이는 DVM(Dalvik Virual Machine)이 인식할 수 있도록 .class파일을 바이트 코드로 변환시킨 파일을 말함
- .apk파일을 JVM(Java Virtual Machine) 바이트 코드로 디컴파일하여 .class파일을 추출할 수 있다면, 어플리케이션의 .java코드 추출이 가능함