본문 바로가기

카테고리 없음

[Android] 디컴파일, APK 디컴파일이란?

1.컴파일이란?

 컴퓨터는 0과 1로 모든 명령을 이해하고 실행하기 때문에 사람이 작성하는 코드를 실행하기 위해서 컴퓨터의 언어로 바꾸어주어야한다. 이 과정을 컴파일이라고 한다.

 즉, 원시코드(사람이 작성한 코드)에서 목적코드(컴퓨터가 이해할 수 있는 코드)로 바꾸는 것이 컴파일이다. 목적파일에서 실행파일로 바꾸는 것을 링크라고 한다.

 

2.디컴파일이란?

 컴파일의 반대말로 컴파일된 실행파일을 소스코드로 되돌리는 작업이다. Reverse Engineering과 유사한 의미이다.

컴퓨터가 이해할 수 있는 언어를 사람이 이해할수 있는 언어로 변환해주는 과정이다.

 

3.APK 디컴파일이란?

 안드로이드 앱은 .apk형식으로 저장되는데 이 파일의 소스코드를 보기 위해서는 디컴파일이 필요하다. apk파일을 디컴파일 하는 것을 APK 디컴파일 이라고 한다. 클래스 형태의 파일을 원시 소스코드 형태인 Java파일로 바꾸어준다. 디컴파일 후 jd-gui툴 을 사용하면 소스레벨로 확인이 가능하다. 그 외 다양한 APK Tool로 디컴파일이 가능하다.

 

4.APK 디컴파일이 가능한 원리

 APK 디컴파일이 가능한 원리는 단순하게 디컴파일이 가능해서이다. 디컴파일하고 다시 리패키징하는 과정을 통해 동일한 기능,혹은  성능 업그레이드를 구현할 수 있으므로 결과적으로 디컴파일이 가능하기 때문에 APK 디컴파일또한 가능하다.