iOS 어플리케이션은 안드로이드 어플리케이션과 달리 어플리케이션을 Decrypt해야 분석을 할 수 있다. 어플리케이션을 Decrypt 하는 방법은 다음과 같다.

먼저 내가 사용 한 환경은 다음과 같다.

  • iPhone 7
  • iOS 12.1.4

CrackerXI 설치

iOS 12 부터는 CrackerXI라는 툴을 이용 해 어플리케이션을 복호화 한다. CrackerXI는 GUI 기반으로 어플리케이션을 복호화 할 수 있는 툴이며, Cydia를 통해 설치할 수 있다. 탈옥 된 아이폰에서 Cydia를 실행 후 소스 > 편집 > 추가 > http://cydia.iphonecake.com 입력 > 소스추가를 한다.

소스추가를 했더니 내 경우에는 아래와 같은 경고문이 떴다. 그냥 무시하고 추가를 눌러주었다.

소스추가를 하고 아래와 같이 검색 창에 Cracker를 입력하면 CrackerXI+라는 어플리케이션을 찾을 수 있다. 해당 어플리케이션을 설치한다.

그러면 바탕화면에 보라색 아이콘의 CrackerXI+가 설치 되었을 것이다. CrackerXI+는 앞서 말했듯이 GUI 기반이기 때문에 CrackerXI+를 실행하면 아래와 같이 복호화가 가능 한 어플리케이션의 리스트가 나오는 것을 확인할 수 있다.

그런데 바로 복호화 할 어플리케이션을 누르면 오류가 난다. 때문에 아래의 설정 메뉴로 가서 모든 옵션을 활성화 해 주어야 한다.

이 후 다시 AppList에서 복호화 할 어플리케이션을 선택하고 YES, Full IPA를 선택하면 잠시 후에 복호화가 성공했다는 팝업 창이 뜨고, 팝업 창 안에 복호화 된 어플리케이션이 저장 된 경로가 나온다.

그러면 어플리케이션 복호화가 끝난 것이다. GUI 기반이라 그런지 엄청 쉽고 간단하다!

이제 이 복호화 된 어플리케이션을 PC로 꺼내 IDA로 분석하면 된다. OpenSSH를 통해 파일을 PC로 옮길 수 있는데 OpenSSH 설치 방법은 아래에서 확인할 수 있다.

[iOS] SSH 및 SFTP 사용하기

Xftp를 사용 해 아이폰에 sftp로 접속한 후 앞서 CrackerXI+에서 알려 준 경로로 이동하면 아래와 같이 [어플리케이션명]_CrackerXI.ipa가 있을 것이다.

이 파일을 PC의 원하는 경로로 옮겨 와 압축을 풀어주어야 분석할 수 있다. 나는 ipa를 바로 IDA에서 분석하는 건 줄 알았는데 압축을 풀어야했다 ㅠㅠ

ipa 파일에서 마우스 오른쪽 버튼 > 압축 풀기를 하면 압축이 풀린다. 만약 압축 해제가 안될 경우 반디집을 설치 해 반디집을 통해 압축을 풀면 될 것이다. 압축 해제가 완료되면 아래와 같이 Payload라는 폴더가 생성된다.

Payload 폴더로 들어가면 엄청나게 많은 파일들이 있을텐데, 이 중 어플리케이션 명.app으로 된 바이너리를 찾아 IDA로 분석하면 된다!

IDA로 열어 보면 Mach-O file로 인식되는 것을 확인할 수 있다.

IDA가 파일을 모두 분석하는데 좀 시간이 걸린다. IDA가 파일 분석을 끝내면 그때부터 하나하나 리버싱으로 어플리케이션을 분석하면 된다.