2011년 11월 8일 화요일

안드로이드 리버스 엔지니어링 - A.R.E

허니넷 프로젝트(몇 년정도 필자가 한국 공식 미러링 사이트를 운영하였다)에서 가상머신 기반에서 안드로이드 리버스 엔지니어링을 위한 것을 발표했다. 정확한 용어는 A.R.E(Android Reverse Engineering) 이다. 안드로이드 APK 파일을 더욱 쉽게 분석할 수 있도록 도와주는 것으로, 알려져 있는 몇 가지 도구들을 포함하고 있다.

안드로이드를 처음 분석하는 경우라면 많은 도움이 될 것이다. 이미 잘 알려진 도구들도 포함되어 있고 간단한 설정 정도만 해 주면 사용 가능하기 때문이다. A.R.E 에 포함된 도구는 다음과 같다.


  • Androguard
  • Android sdk/ndk
  • APKInspector
  • Apktool
  • Axmlprinter
  • Ded
  • Dex2jar
  • DroidBox
  • Jad
  • Smali/Baksmali

A.R.E 는 다음 경로에서 다운로드 받을 수 있고, 압축을 해제하고 VirtualBox 에서 로드해 주면 된다.

http://redmine.honeynet.org/projects/are/wiki


다운받은 이미지를 실행하면 Ubuntu 기반의 다음과 같은 메인 X-Window 화면이 나타난다. 로그인 ID 는 android 이며 패스워드도 android 이다.


여러 도구들 가운데, 많이 알려져 있는 DroidBox 를 수행해 보았다. 참고로, 키보드가 처음에는 프랑스로 맞춰져 있으므로, 키보드 레이아웃을 USA 로 맞춰주어야 한다. Eclipse 도 설치되어 있긴 하지만 설정은 안되어 있으므로, 필요한 경우 이것도 설정해 준다.

기본 도구들은 /home/android/tools 밑에 있다.

우선, 사용을 직접 보여줄 droidbox 폴더로 이동한다. 분석을 하기 위해서는 디바이스 연결이 필요하므로, 가상의 에물레이터를 동작시켜준다.

android@honeynet:~/tools/droidbox$ ./startemu.sh
android@honeynet:~/tools/droidbox$ PANIC: Could not open: /home/android/.android/avd/-system.ini

기본 실행시 위와 같은 메시지가 나오는데, startemu.sh 스크립트를 보면 알겠지만 사용할 안드로이드를 지정해 주어야 한다.

$ ls -l ../../.android/avd/
total 8
drwxr-xr-x 2 android android 4096 2011-11-07 03:20 Android21.avd
-rw-r--r-- 1 android android   63 2011-10-18 08:02 Android21.ini

해당 경로를 보니, Android21 이 있으니 이걸로 사용해 보자

$ ./startemu.sh Android21

그러면 아래와 같은 에물레이터가 실행된다. (화면은 이미 DroidBoxTests.apk 를 실행한 상태이다.)


분석할 APK 파일을 이제 지정해 주면 되는데, droidbox.sh 를 실행해보면 알 수 있다.
$ ./droidbox.sh
Usage: ./droidbox.sh filename.apk
android@honeynet:~/tools/droidbox$
android@honeynet:~/tools/droidbox$

일단 테스트로 다운로드 받은 이미지 안에 APK 있는지 찾아보았다.

android@honeynet:~/tools/droidbox$ find ../../ -name '*.apk'
../../tools/androguard/examples/android/TCDiff/bin/TCDiff-debug.apk
../../tools/androguard/examples/android/TestsAndroguard/bin/TestsAndroguard.apk
../../tools/androguard/examples/android/DroidBoxTests.apk
../../tools/androguard/examples/android/TC/bin/TC-debug.apk
../../tools/androguard/examples/dalvik/test/bin/Test-debug.apk
../../tools/androguard/examples/dalvik/test/bin/Test-debug-unaligned.apk

몇 개가 보인다. 이중 DroidBoxTests.apk 를 사용해 본다.

android@honeynet:~/tools/droidbox$ ./droidbox.sh ../../tools/androguard/examples/android/DroidBoxTests.apk

실행하면 다음과 같은 분석동작 화면이 나타난다.


만약 디바이스가 연결되어 있지 않으면, 디바이스 연결을 기다리는 메시지가 나타난다. 이러한 이유로 테스트를 할때는 에뮬레이터등이 동작하고 있어야 한다.

세부 로그메시지를 보면 아래 그림과 같이 다양한 정보 확인이 가능하다. 분석에 도움이 될만한 정보가 여러개 나타나는데, 그 중에서 네트워크 활동 정보에 연결되어 있는 정보와 Outbound 트래픽 정보가 보인다.



안드로이드 분석에 관심이 있는 사용자라면 이 A.R.E 가 초기 접근하는데 도움이 될 것이다. 또는 자동화기반의 분석시스템에도 활용할 만하다.

안드로이드 파일 분석에 도움이 되기를 바라며~

From Rigel

댓글 없음:

댓글 쓰기