□ 안드로이드 아키텍처
1. 리눅스 커널
리눅스 커널은 하드웨어와 OS를 연결해 주며 프로세서의 보안을 담당하고 프로세스의 스케줄링, 추상화, 하드웨어 드라이브 및 전력 관리를 담당한다.
2. HAL(Hardware Abstraction Layer)
운영체제와의 호환성을 해결하고 일관성 있는 인터페이스를 제공하기 위한 형태로, 여러 모듈 형태로 구성되어 있고 카메라, 블루투스 같은 하드웨어 구성요소의 인터페이스를 구현한다.
3. Libraries
안드로이드 시스템 구성요소와 서비스들은 Native C/C++로 구현된 라이브러리들이 있는데 3차원 그래픽의 OPEN GL, 로컬 데티어베이스를 제공하는 SQLite, 웹 브라우징을 위한 WebKit, 멀티미디어 재생을 위한 Media Framework 등이 제공된다.
4. Java API Framework
Java 기반의 프레임워크로 애플리케이션을 제작하는데 필요한 기능이 있다. 핵심 시스템 구성요소 모듈과 서비스들로 구성된다.
5. Applications
사용자가 임의로 설치한 애플리케이션과 기본적으로 포함되는 애플리케이션 두 가지로 구성되어 있다. 사용자가 실행하는 Apps 그 자체이다.
□ APK 파일 구조
1. Classes.dex
자바 코드의 컴파일 이후 생성된 자바 바이트코드가 달빅(Dalvik) 가상머신 환경에서 실행될 수 있도록 달빅 실행파일 포맷(.dex)으로 저장된다.
2. AndroidManifest.xml
패키지 이름, 버전, 구성 컴포넌트, 기능 실행 권한, 참조 라이브러리 등 애플리케이션에 대한 정보를 나타내고 있는 XML 형식의 파일이다.
3. META-INF/
APK 파일의 무결성을 확인할 수 있는 서명 데이터 MANIFEST.MF, CERT.SF, CERT.RSA 파일이 저장되는 디렉터리이다.
4. res/
애플리케이션 작동에 필요한 각종 리소스가 포함된 디렉터리로 컴파일되지 않은 상태로 res 하위에 저장한다.
5. resources.arsc
Application Resource 파일로 애플리케이션 구동에 필요로 하는 리소스 중 일부가 빠르게 로딩되도록 바이너리 포캣으로 컴파일되어 저장한다.
6. assets/
리소스처럼 애플리케이션 작동에 필요한 데이터지만 사용 빈도가 낮은 것들로 컴파일되지 않은 원시 파일 그대로 저장한다.
7. lib/
프로세서(ARM, x86 등)에 호환된 코드가 컴파일된 상태로 저장된다.
※ 스마트폰 단말기 고유 정보
- IMEI(International Mobile Equipment Identity)
WCDMA 휴대폰 기기에 내장된 인식번호이다. 단말기의 국적, 제조사, 모델, 단말번호 등의 정보를 포함하고 있으며 15자리의 숫자로 구성되어 있고 모바일 단말기의 통화 기능에서 *#06# 입력 시 확인이 가능하다.
- IMSI(International Mobile Subscriber Identity)
GSM 서비스 가입 시에 이동 단말기에 할당되는 고유 15자리 식별 번호이며 이 번호는 이동 국가코드, 이동 네트워크 고드, 이동가입자 식별 번호 및 국가 이동 가입자 식별 번호로 구성된다.
'정보보안 > Forensic' 카테고리의 다른 글
[Forensic] 삭제된 파일 복구 프로그램 디스크 드릴(Disk Drill) (0) | 2021.07.11 |
---|---|
[Forensic] Linux 파일 시스템(Ext) 개요 (0) | 2021.07.06 |
[Forensic] 윈도우 응용프로그램 실행 흔적 아티팩트(prefetch, amcache, Jump List) (0) | 2021.06.24 |
[Forensic] Windows 레지스트리 분석 (0) | 2021.06.22 |
[Forensic] 윈도우 파일 메타데이터(MFT, MAC 시간) (0) | 2021.06.07 |