[HACKING] APKInspector를 이용한 Android Malware 분석하기 1 - APKInspector 설치하기(Install APKInspector)

[HACKING] APKInspector를 이용한 Android Malware 분석하기 1 - APKInspector 설치하기(Install APKInspector) [HACKING] APKInspector를 이용한 Android Malware 분석하기 2 - APKInspector를 이용한 Malware Analysis

안드로이드 악성 분석 툴 중 쓸만한 것이 있어 포스팅합니다. 바로 APKInspector라는 툴이며, 이 툴은 ARE(Android Reverse Engneering)에 포함된 프로그램이죠.

APKInspector 다운로드 및 설치(APKInspector Download & Install)

apkinspector 는 github를 통해 배포되고 있어 git 으로 쉽게 설치가 가능합니다.

git clone https://github.com/honeynet/apkinspector.git

클론이 생성되면 APKInspector 에서 사용되는 패키지, 모듈 설치가 필요합니다. 크게 아래와 같습니다.

QtSDK SIP PyQT4 pydot Graphviz apktool ipython python-scipy

정도가 됩니다. git 내부에 해당 패키지 대부분이 있어, 각 디렉토리로 이동 후 아래와 같은 방법으로 설치가 가능합니다.

압축해제

tar -xvf PyQt-x11-gpl-4.9.4.tar.gz

tar -xvf graphviz-2.28.0.tar.gz

tar -xvf pydot-1.0.28.tar.gz

tar -xvf sip-4.13.3.tar.gz

pydot 설치(Install pydot)

cd pydot-1.0.28

python setup.py install

make;make install

sip 설치(Install sip)

cd sip-4.13.3

python configure.py

make

make install

graphviz 설치(Install graphviz)

cd graphviz-2.28.0

./configure

make

make install

PyQT 설치(Install PyQT)

cd PyQT-x11-gpl-4.9.4

python setup.py install

make;make install

configure.py 스크립트, make를 실행해서 MakeFile 생성 후 make;make install 로 설치가 가능합니다. 이렇게 여러 모듈을 설치해주면 남는건 ipython이랑 python-scipy입니다.

이 둘은 데비안 계열 리눅스 기준으로 apt-get 을 통해 쉽게 설치가 가능합니다.

apt-get install python-tk python-scipy ipython

설치 후 실행하면 아래와 같이 정상적으로 실행됩니다.

Error 처리1 ImportError: No module named ipapi

import IPython.ipapi ImportError: No module named ipapi

바로 ipapi 모듈이 없다고 나타나게 되는데요. 이게 발생하는 이유가 ipapi를 포함한 ipython 이 버전이 업그레이드 되면서 ipapi 의 위치가 변경되어서 발생한 문제입니다.

구 ipython 버전을 설치해서 해결하는 방법이 있고, ipapi를 사용하는 코드에서 경로를 변경해주어 해결할 수 있습니다.

  1. ipython 구버전 설치(추천) ipython 공식 홈페이지에 릴리즈 데이터 중 0.10.2 버전의 ipython 을 설치하면 Ipython.ipapi 부분을 사용할 수 있습니다. http://archive.ipython.org/release/0.10.2/

접근 후 설치해주시면 해결 가능합니다.

  1. ipapi 호출 위치 수정 import IPython.ipapi -> import IPython.core.ipapi

위와 같이 Ipython 과 ipapi 사이에 core를 넣어줍니다. ipapi 가 core 하단으로 이동되어 발생한 문제기에 해당 부분을 바꾸어주면 해결될 것입니다.

Error 처리2 실행되나, Mainview에서 데이터 확인 불가

정상적으로 실행되나 좌측 MainView에서 노출이 되지 않는 이슈가 있었습니다. 에러가 발생하는 부분을 추적하던 중 pydot에서 에러가 발생함을 알게 되었습니다.

Traceback (most recent call last): File “startQT.py”, line 616, in locateMethod self.displayMethod(method,classname) File “startQT.py”, line 540, in displayMethod self.Tab_CFG(method) File “startQT.py”, line 752, in Tab_CFG xdot.method2xdot() File “/home/noon/Noon/apkinspector/xdotParser.py”, line 52, in method2xdot d = pydot.graph_from_dot_data(self.buff) File “/usr/local/lib/python2.7/dist-packages/pydot.py”, line 220, in graph_from_dot_data return dot_parser.parse_dot_data(data) NameError: global name ‘dot_parser’ is not defined

내부에 포함된 pydot 문제로 판단하였습니다. 저는 데비안 소스아카이브에 있는 pydot 패키지를 apt-get 으로 설치하여 해결하였습니다.

apt-get install python-pydot

적용하고 실행하니 정상적으로 실행됩니다.