Compiile이란? Decompile을 알기전에 먼저 Compile에 대하여 알아보자. 컴퓨터는 0과 1로만 모든 명령을 이해하고 실행하기 때문에, 우리가 작성한 문자를 해석하지 못한다. 따라서 우리가 작성한 문자를 컴퓨터가 이해할 수 있는 언어로 바꿔줘야한다. Compile은 사람이 이해하는 언어를 컴퓨터가 이해할 수 있는 언어로 바꾸어주는 과정이다. 이때 사용하는 용어가 "원시코드"와 "목적코드"이다. "원시코드"는 우리가 작성한 코드이고, "목적코드"는 컴퓨터가 이해할 수 있도록 번역한 코드이다.. Decompile이란? Decompile이란 Compile과는 반대로, Compile된 실행 파일을 소스코드로 되돌리는 작업이다. Compile에서 "원시코드"를 컴퓨터가 해석할 수 있게 "목적코드"로..
Apk란? 우선 Apk는 안드로이드에서 플랫폼에서 Application 설치를 위해 배포되는 패키지 파일이다. Apk는 아래와 같은 구성 요소들을 포함하고 있다. AndroidManifest.xml calsses.dex /res META-INF resources.arsc Aptktool 이란? Apktool은 대표적인 Anroid Application 대상의 리버스 엔지니어링 도구이다. Apk파일을 분석하여 디코딩 할 수 있고, 코드를 수정하여 패키징 할 수도 있다. Apk 파일 분석을 위한 디컴파일 방법은 2가지가 있다. 1. dex 파일을 고수준 언어로 디컴파일 하는 방법. 2. Apk파일을 저수준 언어로 디컴파일 하는 방법. 1번 방법은 dex2jar 프로그램을 이용하여 dex 파일을 jar파일로 ..
안드로이드의 4대 구성요소 안드로이드의 4대 구성요소는 "Activity", "Service", "Broadcast Receiver", "Content Provider" 이다. 1. 액티비티(Activity) Activity는 UI를 담당하는 컴포넌트이다. 이를 위해 자바 소스에서 "Activity" 클래스를 상속해야한다. UI를 담당하기 때문에 반드시 하나 이상의 Activity를 포함하고 있다. Activity의 특징 1. 2개의 Activity를 동시에 Display 할 수 없다. 2. 1개 이상의 View 또는 ViewGroup을 포함한다. 3. 안드로이드 Application에는 반드시 1개 이상의 Activity를 가지고 있어야 한다. 4. 다른 Application의 Activity도 불러낼..
안드로이드란 무엇인가 스마트폰의 운영체제는 대표적으로 Ios 와 안드로이드가 있다. 그중 안드로이드는 구글에서 만든 스마트폰용 운영체제이다. 안드로이드는 리눅스(Linux)를 기반으로 제작되었으며, 언어는 자바를 사용한다. 안드로이드의 특징 1. Java 안드로이드가 자바로 개발됐기 때문에 전 세계의 많은 개발자들이 안드로이드 앱 개발을 할 수 있었고, 이 덕분에 안드로이드는 빨리 성장할 수 있었다. 2. Open Source 안드로이드는 오픈소스를 기반으로 한다. 3. Version 안드로이드는 각 버전마다 숨겨진 이름이 있었다. 순서는 A 부터 차례대로 올라가며, P까지 갔다가 구글의 정책이 바뀌면서 숫자로 바뀌게 됐다. 최초의 정식 버전 이름은 "Apple Pie"이다. 알바펫은 버전은 안드로이드 ..