Notice : 해당 자료가 저작권등에 의해서 문제가 있다면 바로 삭제하겠습니다.
연구목적으로 사용하지 않고 악의적인 목적으로 이용할 경우 발생할 수 있는 법적은 책임은 모두 본인에게 있습니다.
iNalyzer5 이용한 iOS 앱 분석
iNalyzer5는 기존에 clutch를 이용해서 암호화를 풀고, class-dump-z를 이용해서 class 정보를 생성 작업을 자동화 해준다.
특히 doxygen을 이용한 API 문서화와 GraphViz-Dot을 이용해 Class 간의 관계를 그래프로 보여주는 기능은 가독성을 높여줘서 분석을 용이하도록 도와준다.
1. iNalyzer5 설치
Cydia를 이용해서 설치하면 편하게 설치할 수 있다.
Cydia 소스에 http://appsec-labs.com/cydia/를 추가 후 검색해서 설치한다.
설치완료후 실행하면 아래와 같은 화면이 나오고, 이내 곧 사라진다
그리고 아이콘에 :5544라는 알림이 붙는다.
그러면 이제 웹화면으로 http://[iphon’s ip]:5544/ 으로 접속한다.
(tsProtector가 설치 되어 있다면, 정상적으로 접속이 안될 수도 있으니 허용 처리 해주자)
화면의 안내와 같이 사용을 위해 먼저 GraphViz-Dot, DoxyGen를 설치해야 한다.
http://www.stack.nl/~dimitri/doxygen/download.html#srcbin
http://www.graphviz.org/download..php
설치 후 PATH를 잡아준다. (C:\Program Files\Graphviz2.38\bin, C:\Program Files\doxygen\bin)
2. 사용하기
사용법은 간단하다.
분석할 앱을 선택하고 Package 버튼을 누르면 zip 파일이 다운로드 된다.
압축을 풀어보면 아래와 같이 구성되어 있다.
App_name.app : 앱의 메인 바이너리가 들어있다.
ClientFiles : iOS기기내의 앱의 디렉토리를 그대로 옮긴것이다.(Documents, Library 포함)
Doxygen : Doxygen과 GraphViz-Dot을 이용해서 문서화를 할 수 있는 배치 파일이 있다.
ReversingFiles : 앱의 class 헤더정보를 포함한 디렉토리이다.
문서화를 위해 Doxygen\doxMe.bat를 실행하면 Doxygen\html\ 디렉토리가 생성되고, 웹브라우져로 Doxygen\html\index.html을 실행하면 된다.
앱의 Class 정보를 API 문서 형태로 볼 수 있어 편하고, Collaboration diagram 이나 Class Hierarchy 등 클래스간의 관계를 그래프로 볼 수 있어 Class간의 관계나 큰 그림을 파악하기에도 좋다.
Class Hierarchy
Collaboration diagram
그리고 Embeded Strings에서 바이너리 내 Strings 도 볼 수 있고, plist 와 databases 파일도 바로 조회 할 수 있어 분석이 용이하다.
단, 가끔 zip 파일이 다운로드가 잘 안되는 앱도 꽤 있다.
원인은 잘 모르겠지만, 그럴때는 다시 Clutch 와 class-dump-z 으로..ㅋㅋ
아니면 직접 otools를 이용해서 Class 헤더를 뽑아 Doxygen과 GraphViz-Dot으로 문서화해도 될 듯..
참고
https://appsec-labs.com/iNalyzer
http://highaltitudehacks.com/2013/09/17/ios-application-security-part-15-static-analysis-of-ios-applications-using-inalyzer/