Notice : 해당 자료가 저작권등에 의해서 문제가 있다면 바로 삭제하겠습니다.
연구목적으로 사용하지 않고 악의적인 목적으로 이용할 경우 발생할 수 있는 법적은 책임은 모두 본인에게 있습니다.
iOS 앱 보안진단을 위한 환경설정
iOS 앱 정적 분석하기(class-dump-z, clutch)
Objective-C Runtime의 이해와 gdb attach 하기
iOS 앱 Cycript를 이용항 동적분석 및 변조
개발자 등록하지 않고 iOS 기기에 앱 설치 하기
Cycript 를 이용해 iOS 앱 로그인 우회 실습
Snoop-it 을 이용해서 iOS 앱 분석하기
iOS 앱 정적 분석하기(class-dump-z, clutch)
1. 미리 설치된 앱의 class-dump
미리 설치된 앱의 위치는 /Applications 이다.
이 중에 지도앱인 Maps.app(/Applications/Maps.app) 를 분석해보겠다.
디렉토리 안으로 가보면, images, plist files, lproj, sqlite, pdf 파일이 보이는데
이 중에 실행파일인 Maps 파일을 확인할 수 있다. (앱의 이름과 동일한 실행파일)
이 실행파일을 class-dump-z 를 이용해서 class 정보를 dump받는 것이다.
생각보다 size가 꽤 된다. 10714 줄
이제 해당 파일을 stfp 를 이용해 다운로드 받아서 정적분석하면 된다.
header 정보와 구조체의 정보가 있어 메소드명과 파라미터들을 보면서 어떤 기능을 하는지 확인할 수 있다.
2. 앱스토어에서 다운받은 앱의 class-dump
앱스토어에서 다운받은 파일의 위치는 /var/mobile/Applications/ 이다.
이 중에 자주쓰는 Facebook를 분석해보겠다.
위에서 본 것 같이 디렉토리가 코드로 되어있어서 앱을 찾기 위해 find 명령어을 이용했다.
그리고 앱과 동일한 이름의 실행파일인 Facebook 실행파일을 위와 동일하게 class-dump를 해보니..
암호화 되어 있어 class명과 구조체명을 확인할수 없었다.
이렇게 앱스토어에서 받은 앱은 clutch 를 이용해서 crack한다.
clutch는 Hackulous 에서 만들었는데, Hackulous는 해체 되었지만 clutch는 인터넷에서 다운받을수 있다.
https://github.com/KJCracks/Clutch/releases/tag/1.4.3
나의 경우 1.2.4 버전이 이미 설치되어 있었다..
최신 버전으로 다시 파일을 업로드 했다.
그럼 다시 clutch를 이용해서 facebook을 crack 해보자
결과로 ipa 파일의 위치를 알려준다.
해당 디렉토리로 이동해서, 압축을 푼다.(ipa 파일은 압축파일이다)
unzip Facebook-v8.0–\(Clutch-1.4.3\).ipa -d Facebook
다시 class-dump를 시도하니..
Segmentation fault가 난다…(원인은 모르겠음..ㅠ)
그래서 다른 앱인 youtube로 다시 시도해보았다.
먼저 clutch 으로 crack하고, class-dump-z 으로 dump했다.
오 성공!
이제 objective-c를 공부해야 정적분석을 할수 있겠구나~
7 Responses to iOS 앱 정적 분석하기(class-dump-z, clutch)