IT/OPINION

apk 진단 고찰 Part1 파일 구조 및 고찰

종금 2021. 4. 12. 17:50
반응형

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 폴더에는 앱 무결성 검증과 서명을 담당하고 있는 부분이 있다

반응형