안드로이드 앱 분석 (산토쿠)

2014. 9. 19. 11:39Security ★ Development/안드로이드 모바일 보안

반응형

* 틀린 내용이 있을 시 지적 부탁드립니다.


1. 산토쿠
이번에는 ARE와 다른 라이브 CD인 산토쿠를 보겠습니다.
라이브 CD는 https://santoku-linux.com/download에서 다운 받을 수 있으며 가상 머신은 vmware를 쓰겠습니다.


실행/설치

iso를 vmware로 부팅하고 바탕화면에 있는 install 파일을 실행합니다.

설치 중 업데이트 다운로드에 체크하고 계속을 누릅니다.  

별다른 선택 없이 계속만 눌러서 설치를 완료하면 다시 부팅하라는 안내가 나오고 재부팅 후 설치를 마칩니다.  


리버싱

산토쿠에서 apk 파일을 디컴파일해보겠습니다.

우선 시작메뉴 - Santoku - Reverse Engineering - dex2jar를 실행시킵니다.

dex2jar는 apk파일을 jar파일로 변환시켜주는 역할을합니다.

콘솔 창이 뜨면

dex2jar apk파일.apk 이라고 쳐줍니다.

저는 dex2jar /home/santoku/Downloads/com.example.PalmprintAn-1.apk

이라고 하였습니다.

그럼 Downloads 폴더에 jar 파일이 생성됩니다.

이것을 시작메뉴의 같은 위치에 있는 JD-GUI를 이용해 열어주면 난독화를 해주지 않은 어플에 대하여 자바 소스코드를 확인할 수 있습니다.


2. Dexter

Dexter는 정적 안드로이드 어플리케이션 분석 툴로 http://dexter.dexlabs.org/에서 이용할 수 있습니다.  회원가입을 하고 프로젝트를 생성합니다.  apk파일을 업로드하고 분석된 apk파일 이름 링크를 크릭하면 세부 내용을 확인할 수 있습니다.  오른쪽의 탭을 이용할 수 있는데 가장 위의 것은 패키지들의 의존성을 그래프로 보여줍니다.

여기서 Method List를 클릭해보면 메소드 리스트들이 뜨는데 우측의 Details를 클릭하면 메소드에서 호출하는 곳과 호출되는 위치 등이 표시됩니다. 

Details 우측의 BBL Graph를 클릭해보면 메소드의 흐름을 그래프로 확인할 수 있습니다.


3. APK Analyzer

APK Analyze는 Smali 코드까지 분석해서 자세한 정보를 제공해줍니다.  http://apk-anlyzer.net/analysis/465/3438/0/html에서 샘플 분석 페이지를 볼 수 있습니다.

위험의 강도를 그래프로 표시하며 Show sources를 누르면 이유를 볼 수 있고 Smali 코드를 확인할 수 있습니다.