디컴파일
-
[안드로이드] ApkStudio로 앱 디컴파일&리패키징하기# 시스템 해킹 공부중 2020. 2. 16. 00:45
안드로이드와 같이 VM(Virtual Machine)환경에서 동작되는 프로그램들은 디컴파일(Decompile)이 비교적 용이하다는 특징이있다. 소스코드를 컴파일 할 때, C/C++ 과 같이 바로 기계어로 번역되는게 아니라, VM이 이해할 수 있는 바이트코드(Bytecode)로 컴파일이 되고, VM에서 실행될 때 내부에 있는 컴파일러로 한번 더 컴파일해서 기계어로 번역하게된다. 즉, VM내부에서 한번 더 컴파일이 되어야하기 때문에 소스코드에 있는 각종 심볼들이 바이트코드에 담기게 되고, 이를 활용하면 원시코드를 쉽게 유추할 수 있게된다. 자바를 이용해서 안드로이드 앱을 개발할 경우, 컴파일하면 *.java -> *.class -> *.dex 순으로 컴파일된다. 본래 class 파일은 JVM(Java Vir..