[컴][안드로이드] smali 분석, smali 를 flow 차트로 만드는 방법

flow graph / smali analysis / smali 분석


Android Security related tools 라는 post 에서 좋은 tool 하나를 찾았다. .smali 를 flow 차트로 만들어 준다. 분석할 때 유용한 tool이다.
https://code.google.com/p/smali-cfgs/
https://github.com/SAAF-Developers/saaf
소스는 위의 page 에서 찾을 수 있다. 우선 flow.py 만 실행 시켜 보자.



모듈 설치

flow.py 를 실행하기 위해서는 아래의 과정이 필요하다.

  1. graphviz-2.32.msi 를 설치
  2. pyparsing 1.5.7 설치
  3. pydot 을 설치.

error : GraphViz\'s executables not found 

'GraphViz\'s executables not found' 에러는 ref. 4 을 보면 해결 할 수 있다. pydot.py 에 path 가 다르게 설정돼서 그런 것이니, 그 부분만 맞춰주면 된다.


error : Couldn't import dot_parser, loading of dot files will not be possible


이것은 ref. 5 에 따르면 pyparsing 의 버전 문제라고 한다. 이전버전을 없애고 1.5.7 버전을 깔면 된다.


error : python 27 directory 를 못 찾는다.

windows 7 64 bit 에서

  • pyparsing-1.5.7.win32-py2.7.exe (md5)

를 실행시켰더니 python 2.7 directory 를 못 찾는다. 그래서 그냥 .zip 을 다운받아서

  • setup.py install

로 설치했다.



flow.py 실행


이제 flow. py 를 실행 해 보자.

  • d:\project\smali\android\annotation\SuppressLint.smali

에 있는 smali 파일을 이용한다고 하자.

c:\>flow.py -c "d:\project\smali\android\annotation\SuppressLint.smali"

이러면 class 를 분석한 _flow.png 그래프가 생성된다



References


  1. Graphviz - Graph Visualization Software : http://www.graphviz.org/Download_windows.php
  2. pydot download : https://code.google.com/p/pydot/downloads/list
  3. pyparsing 1.5.7 download : https://pypi.python.org/pypi/pyparsing/1.5.7
  4. pydot Issue 65: GraphViz's executables not found on Windows 7 64-bit
  5. pydot and graphviz error: Couldn't import dot_parser, loading of dot files will not be possible

댓글 없음:

댓글 쓰기