ARM 기반의 네이티브(Native) 코드 분석에 관한 기초 지식
안드로이드 기타/네이티브 코드 분석
2023. 8. 17. 15:31
개요 안드로이드에서 C/C++ 언어로 작성된 코드를 네이티브(Native) 코드라고 하며, 이러한 네이티브 코드는 ".so" 파일로 컴파일되어 라이브러리 형태로 제공된다. 특히나, 보안이 잘 된 안드로이드 앱을 진단하다 보면 Java 코드를 분석하는 상황보다 네이티브 코드로 작성된 라이브러리 파일을 분석하는 일이 더욱 빈번하다. 이번 포스팅에서는 네이티브 코드로 작성된 라이브러리(.so) 파일 분석 시 알아야 할 기초 지식에 관하여 기술하고자 한다. 라이브러리 로드 프로세스 [그림 1]의 도식도는 안드로이드 앱에서 라이브러리가 호출되어 로드되는 과정을 표현한 것으로 해당 프로세스를 통해 앱이 어떠한 함수를 사용하여 라이브러리를 불러와 Java로 작성된 코드와 C/C++ 로 작성된 네이티브 코드를 연결하여..