11/23/2015

[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/

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

2. 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

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





HAHWUL

Security engineer, Gopher and H4cker!

Share: | Coffee Me:

0 개의 댓글:

Post a Comment