apk 파일을 항상 뜯으면서 제대로 알지 못하고 매번 끄적거리는거같아 이번에 모바일 공부하며 공부내용을 정리해보려고한다.
해당 내용은 논문들을 읽어보며 긁어온 내용입니다.
Ref: 민승욱, 2012, 안드로이드 악성코드 분석 및 기계학습 기법을 이용한 탐지 방법
-APK(Android Package)
1. dex: Kotlin 및 Java로 이루어진 class를 달빅(vm)에서 인식할 수 있도록 바이트 코드로 변환시킨 실행파일
- 해당 파일은 low 언어이기에 IF-eqz, if-nez 등 분기문으로 작동시키는것을 볼수 있다
- low언어를 읽기위해 dex2jar와 같은 방식의 해석가능한 수준으로 만드는 것이 필요
2. lib: 외부 라이브러리(*.so)가 저장되는 폴더
3. res: 앱 실행 시 필요한 자원(이미지,레이아웃 등) 중 사용 빈도가 높은 데이터가 컴파일 되어 저장되는 폴더
4. resources.arsc: res의 정보가 저장된 파일
5. assets: 앱 실행 시 필요한 자원 중 사용 빈도가 낮고 용량이 큰 원본 데이터가 저장되는 폴더
6. META-INF: 앱 인증 및 서명 관련 데이터가 저장되는 폴더
- sign.jar처럼 resign을 할 수도 있지만 해당 META-INF이용해 서명을 대신 진행할 수 있을것도 같다
- 다만 해당 폴더가 가장 중요한 것은 SHA를 보관하여 무결성 검증을 하기에 이를 우회하기 위해서 공부!
7. AndroidManifest.xml : 패키지명, 버전정보, 권한정보 등 설치된 앱 정보가 저장된 파일
- 이중에 유일하게 폴더가 아닌 파일이다
- 디컴파일 할떄랑 안할때랑 차이가 크다
- 권한 등이 저장되어 있다는 것은 굉장히 시사하는 바가 크다. 이를 통한 고찰도 곧 할 예정
정리
1. dex파일이 어플리케이션을 안드로이드가 실행할 때 필요한 달빅의 핵심으로 보인다.
2. AndroidManifest.xml에는 권한을 저장하고 있다.
3. META-INF 폴더에는 앱 무결성 검증과 서명을 담당하고 있는 부분이 있다
'IT > OPINION' 카테고리의 다른 글
가상 계좌는 개인정보일까 (1) | 2022.03.21 |
---|---|
인터넷 게시판에서 올린 사진과 이름 (0) | 2021.09.29 |
아동의 비회원 주문 고찰 (0) | 2021.08.24 |
apk 진단 고찰 Part2 권한 고찰 (0) | 2021.04.13 |
고유식별정보에 대한 고찰(양식 수정중) (0) | 2021.03.19 |