보안/Android

.apk 파일 겉핣기 및 분석 환경 준비

cdecl 2018. 8. 30. 16:55

애플리케이션(이하 '앱'으로 총칭)은, '확장자가 .apk로 되어있는 파일'로 간단하게 정의할 수 있다.


그리고 이 확장자는 스마트 폰이 아닌 일반 데스크탑 환경에선 다소 생소하게 느껴질 수 있을 것이다.


하지만 .apk 파일은 .zip 확장자의 형태로 변환이 가능한 특징을 갖고 있다. 다음 사진은 이에 대한 예시이다.







확장자를 임의로 변경해도, 어떤 경고문 없이 바로 알집 형태로 변환되는 것을 알 수 있다.


이 파일의 압축 풀기를 시도해보자.





3개의 폴더와 그 외 잡다한 파일들이 보인다.


이는 모두 apk 파일을 이루고 있는 구성 요소란 것을 확인할 수 있다.



그렇다면, 왜 apk 파일의 확장자를 .zip으로 변경해도 아무런 문제가 일어나지 않는 건가?


왜냐하면 .apk 및 .zip 파일을 바이너리 분석 도구로 살펴보았을 때, 헤더 부분이 '50 4B'로써


파일 형식이 완전히 동일하기 때문이다.





분석 도구는 'HxD'를 사용했다. 



위 사진의 좌측은 .apk 파일을, 우측은 .zip 파일의 헤더 부분을 각각 나타낸 것이다. 동일하단 것을 알 수 있다.


따라서 앱의 분석은 대상 앱을 스마트 폰을 비롯한 모바일 기기에서 PC로 추출한 후, 압축을 해제하는 과정이 선행되어야 한다.




모바일 기기에 설치되어 있는 앱을 PC로 추출하기 위한 도구는 많지만, 여기선 'Santoku Linux'를 사용할 것이다.


이는 Kali Linux처럼 보안과 관련된 목적을 갖고 만들어졌다. 


하지만 칼리와는 달리 좀 더 모바일 분야에 집중한 버전이라 할 수 있겠다.


따라서 adb, apktool 및 Android Studio와 같은 도구들이 디폴트로 다 설치되어 있다.



윈도우에서 실습을 진행하려면 위와 같은 도구들을 하나하나 손수 깔아야하고, 또 환경변수 및 경로까지 설정해줘야하니


귀찮음을 덜 수 있어 확실히 편하다고 생각한다. 설치 방법은 구글을 통해 알아서 하도록 합시다.. ㅎ (쉬움)








여담이지만 이건 무슨 컨셉인지 모르겠다 


Santoku를 구글에 쳐보니 저런 사시미들만 많이 나오는데, 모바일이랑 식칼이랑 무슨 관련이 있을까.....



여기까지 설치했으면 준비를 마친 것이다. 


다음 포스팅엔 연결되어 있는 스마트 폰에서 앱을 PC로 가져오는 작업을 할 거에요.