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 를 실행하기 위해서는 아래의 과정이 필요하다.- graphviz-2.32.msi 를 설치
- pyparsing 1.5.7 설치
- 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
- Graphviz - Graph Visualization Software : http://www.graphviz.org/Download_windows.php
- pydot download : https://code.google.com/p/pydot/downloads/list
- pyparsing 1.5.7 download : https://pypi.python.org/pypi/pyparsing/1.5.7
- pydot Issue 65: GraphViz's executables not found on Windows 7 64-bit
- pydot and graphviz error: Couldn't import dot_parser, loading of dot files will not be possible
댓글 없음:
댓글 쓰기