APK란?
Android Package로 안드로이드에서 앱을 설치하기 위해서 사용하는 파일 포맷이다.
확장자가 .apk이다.
애플 IOS에서는 IPA란 확장자 파일을 사용하고 있는데 IOS의 경우 탈옥을 하지 않으면 AppStore 이 외의 앱은 설치 할 수 없다. 하지만 안드로이드는 루팅을 하지 않아도 스토어 이 외의 APK 파일을 설치 가능하다.
앱 종류
앱은 보통 3가지로 분류할 수 있다.
1. Native Apps
2. Web Apps
3. Hybrid Apps
1. Native Apps
네이티브 앱은 보통 앱스토어에서 판매 및 다운로드가 가능한 앱이다.
예를 들면 게임이 있다.
네이티브 앱의 특징으로는 모바일 기기의 하드웨어 접근 제어가 가능한데 무슨 말이냐면
예를 들어 카카오톡의 경우 모바일 기기의 주소록에 접근하여 다른 사람의 번호를 가져올 수 있다.
또는 앨범에 접근하여 다른 사진들을 불러올 수 있다.
이렇게 하드웨어적으로 접근할 수 있는 기능을 갖고 있는 앱이 네이티브 앱이다.
2. Web Apps
웹 앱은 스토어에서 판매 및 다운로드를 할 수 없다.
왜냐하면 브라우저(크롬, 사파리)를 사용하여 그냥 웹 페이지를 들어가는 것 뿐.
예를 들어 크롬을 열고 URL창에 www.naver.com을 입력한다.
PC로 접속하면 화면 상에 위와 같은 사진처럼 보이지만
모바일로 접속하면 아래 사진 처럼 보인다.
이 처럼 웹 앱은 모바일 기기의 화면 크기에 맞춰서 동적으로 웹 페이지를 제공한다.
하드웨어 접근 제어가 불가능하다.
3. Hybrid Apps
하이브리드 앱은 Native Apps + Web Apps 이다.
예를 들면 Naver App이 있다.
Naver App으로 네이버를 접속하는 것과 크롬으로 www.naver.com을 사용하여 네이버에 접속하는 것은
보기에는 별 다른 차이가 없지만 기능적으로는 차이가 있다.
Naver App으로 네이버를 접속하면 다음과 같이 음악을 찾을 수 있는 기능이 있다.
Naver App을 사용하면 앱이 마이크에 접근하여 현재 들려오는 노래 소리를 마이크로 입력 받아서 노래를 찾는다.
이 처럼 Hybrid App은 Native App과 마찬가지로 하드웨어 접근 제어가 가능하다. 그리고 Web App처럼 웹 페이지를 모바일 화면에 맞게 보여준다.
다음은 Web App에서 음악 찾기 기능을 사용했을 때 어떻게 되는지 보여준다.
이 처럼 Web App은 마이크에 접근하여 음악 소리를 받아오지 못하기 때문에 Hybrid App인 Naver App을 이용하여
음악 찾기를 시도하려고 한다.
'Android > Reversing' 카테고리의 다른 글
ELF Parser (0) | 2020.03.09 |
---|---|
Smali Code (0) | 2020.03.04 |
DEX 구조 (0) | 2020.03.02 |
안드로이드 APK 구성 (0) | 2020.03.02 |
안드로이드 리버스 엔지니어링 공부 순서 (0) | 2020.03.01 |
WRITTEN BY