본문 바로가기

모바일 앱 해킹

안드로이드 앱 구조 이해하기 | apk, dex, manifest 등

 

안드로이드 앱은 java 기반이다.  java로 개발하면 윈도우, 맥 등 운영체제 종류에 상관 없이 실행 가능하다는 이점이 있다.

 

 

 

JVM

  • 데스크탑 환경
  • "자바 바이트 코드"를 실행하기 위한 자바 가상머신
  • "자바 바이트 코드"는 JVM이 이해할 수 있는 언어로 JVM만 설치되어 있으면 운영체제 종류에 상관 없이 실행 가능

 

 

DVM

 

  • 모바일 환경
  • "안드로이드 애플리케이션"을 실행하기 위한 달빅 가상머신
  • 모바일 디바이스 환경에 최적화 되어 개발되어 낮은 메모리에서 실행되도록 설계됨
  • DEX 컴파일러가 class 파일을 dex 파일로 변경하여 DVM에서 실행 가능하게 한다.

 

ART

  • 모바일 환경
  • 안드로이드 애플리케이션 런타임 환경
  • 퍼포먼스 개선을 위해 구글이 DVM에서 ART로 변경
  • 요샌 거의 ART를 씀

 

 

 

정리하면 이렇다

 

 

  • 데스크탑에서는 JAVA -> class(자바의 바이트 코드) -> JVM에서 실행
  • 모바일에서는 JAVA -> class -> dex -> ART (혹은 DVM)에서 실행

 


 

안드로이드 앱 구조

  • 안드로이드 앱 확장자는 apk 다양한 파일과 폴더의 압축이다.

 

apk 파일을 압축 해제하면 폴더 및 파일 추출 가능

 

  • AndroidManifest.xml : 앱에 대한 세부 정보가 포함된 파일
  • classes.dex : 개발자가 작성한 소스코드(java)에서 생성된 바이트 코드
  • resources.arsc : 컴파일된 리소스가 포함됨
  • res : resources.ars에서 제외된 정보를 포함하는 디렉터리로 리소스가 포함됨
  • META-INF : 매니패스트 파일과 애플리케이션 인증서 등이 포함됨
  • assets : 개발자는 이 폴더를 사용하여 음악, 비디오 등 파일을 저장함

 

 


참고

https://www.inflearn.com/course/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%95%B1-%EB%AA%A8%EC%9D%98%ED%95%B4%ED%82%B9-%EC%A7%84%EB%8B%A8-%EC%99%84%EB%B2%BD-%EC%8B%A4%EC%8A%B5/dashboard

 

안드로이드 모바일 앱 모의해킹과 시큐어코딩 | 보안프로젝트 - 인프런

보안프로젝트 | 안드로이드 모바일 가상 뱅킹 앱을 이용하여 실습 중심으로 알아보며, 기본적인 앱 분석부터, 소스코드 대응방안 적용까지 실습할 수 있는 과정입니다. 입문자부터 중급 이상까

www.inflearn.com