[ 목차 ] 1. 개요 2 2. ios 앱정적동적분석 3 3. 아이패드탈옥 9 4. 공유기등을이용한원격파일송수신및디버깅환경구성 ios 용 GNU Debugger(iOS 5&6) 설치 동적디버깅및소스수정을위한 Cycript 설치 아이패드앱

Similar documents
Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

SBR-100S User Manual

Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로 SD 카드리더기 HDM I 케이블모니터

JDK이클립스

Studuino소프트웨어 설치

Microsoft PowerPoint _사용자매뉴얼.ppt

벤처연구사업(전동휠체어) 평가

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

Microsoft Word - src.doc

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

PowerPoint 프레젠테이션

Office 365 사용자 가이드

Install stm32cubemx and st-link utility

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.

PowerPoint 프레젠테이션

정보

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

Chapter 1

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기

Secure Programming Lecture1 : Introduction

PathEye 공식 블로그 다운로드 받으세요!! 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다.

Cubase AI installation guide

ActFax 4.31 Local Privilege Escalation Exploit

Snort Install Manual Ad2m VMware libnet tar.gz DebianOS libpcap tar.gz Putty snort tar.gz WinSCP snort rules 1. 첫번째로네트워크설정 1) ifconf

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

메일서버등록제(SPF) 인증기능적용안내서 (HP-UX - postfix) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 HP-UX 11.11i postfix spf-filter 년 6 월

한국에너지기술연구원 통합정보시스템설치방법설명서 한국에너지기술연구원 지식정보실 - 1 -

을풀면된다. 2. JDK 설치 JDK 는 Sun Developer Network 의 Java( 혹은 에서 Download > JavaSE 에서 JDK 6 Update xx 를선택하면설치파일을

Windows 8에서 BioStar 1 설치하기

[Blank Page] i

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

목 차 1. 드라이버 설치 설치환경 드라이버 설치 시 주의사항 USB 드라이버 파일 Windows XP에서 설치 Windows Vista / Windows 7에서 설치 Windows

NTD36HD Manual

슬라이드 1

메뉴얼41페이지-2

1. 안드로이드개발환경설정 안드로이드개발을위해선툴체인을비롯한다양한소프트웨어패키지가필요합니다 툴체인 (Cross-Compiler) 설치 안드로이드 2.2 프로요부터는소스에기본툴체인이 prebuilt 라는이름으로포함되어있지만, 리눅스 나부트로더 (U-boot)

Microsoft PowerPoint - 김창수 v2.pptx

Microsoft PowerPoint - [Practice #1] APM InstalI.ppt

문서의 제목 나눔고딕B, 54pt

작성자 : 기술지원부 김 삼 수

server name>/arcgis/rest/services server name>/<web adaptor name>/rest/services ArcGIS 10.1 for Server System requirements - 지

PowerPoint Template

개인정보보호의 이해 및 안전한 관리 - 개인PC 및 스마트폰 개인정보보호-

*2008년1월호진짜

윈도 모바일 6.1을 OS로 사용하는 스마트폰(옴니아2 등)에서의 Tcl/Tk의 사용

Microsoft Outlook G Suite 가이드

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

문서의 제목 나눔고딕B, 54pt

<41736D6C6F D20B9AEBCADBEE7BDC42E687770>

Microsoft PowerPoint - 안드로이드 개발 환경 구축(170411)

4S 1차년도 평가 발표자료

17장 클래스와 메소드

메일서버등록제(SPF) 인증기능적용안내서 (AIX - sendmail) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 AIX 5.3 sendmail spf-filter 년 6 월

PowerPoint 프레젠테이션

목차 1. 시스템요구사항 암호및힌트설정 ( 윈도우 ) JetFlash Vault 시작하기 ( 윈도우 ) JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault

<4D F736F F D D31312D30312D53572D30312DBBE7BFEBC0DABCB3B8EDBCAD5FBFDCBACEB9E8C6F7BFEB2E646F63>

버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습

슬라이드 1

B2B 매뉴얼

iOS5_1±³

소프트웨어설치 1. 소프트웨어설치및제거 ( 소스코드 ) 소스코드컴파일을이용한 S/W 설치 1. 소스코드다운로드 - 예 ) httpd tar.gz - 압축해제 : #tar xzvf httpd tar.gz - INSTALL 또는 README파일참조

신입생을 위한 iPad 설정 및 등록 방법

슬라이드 1

지난시간에... 우리는 kernel compile을위하여 cross compile 환경을구축했음. UBUNTU 12.04에서 arm-2009q3를사용하여 간단한 c source를빌드함. 한번은 intel CPU를위한 gcc로, 한번은 ARM CPU를위한 gcc로. AR

슬라이드 1

Endpoint Protector - Active Directory Deployment Guide

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

해외전자정보서비스이용교육 EBSCO ebooks - 인터페이스상세이용방법및다운로드 ( 대출모드 ) 안내

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

PowerPoint 프레젠테이션

tiawPlot ac 사용방법

MF3010 MF Driver Installation Guide

Microsoft Word - Crackme 15 from Simples 문제 풀이_by JohnGang.docx

메일서버등록제(SPF) 인증기능적용안내서 (HP-UX - qmail) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 HP-UX 11.11i qmail 1.03 spf-filter 년 6 월

Contents I. 취약점점검소개 II. III. IV. 점검프로세스분석 취약점점검방법 기타

임베디드시스템설계강의자료 4 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

< FBBE7B0EDB3EBC6AE5FB5F0C6FAC6AEC6D0BDBABFF6B5E5C3EBBEE0C1A128BCF6C1A4292E687770>

Facebook API

PowerPoint 프레젠테이션

Internet Explorer 11 자동업데이트방지 사용자가이드 작성일 : Version 1.0

Contributors: Myung Su Seok and SeokJae Yoo Last Update: 09/25/ Introduction 2015년 8월현재전자기학분야에서가장많이쓰이고있는 simulation software는다음과같은알고리즘을사용하고있다.

VPN.hwp

[ 목차 ] 1. 개요 2 2. 악성앱배포방식 2 3. 채굴악성앱유형분석 정상앱을리패키징하여채굴기능포함후재배포 앱개발시의도적으로채굴기능포함 9 4. 스마트폰악성앱감염예방방법및대처 참고문헌 12 [ 붙임 ] 13

Microsoft Word - CooCox

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

쉽게 풀어쓴 C 프로그래밍

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

슬라이드 1

Android Master Key Vulnerability

Microsoft PowerPoint - chap01-C언어개요.pptx

PowerPoint 프레젠테이션

Keil Flexlm 라이선스 설명서

슬라이드 1

안드로이드테스트앱을이용한난독화라이브러리파일동적분석 - 중요정보가라이브러리파일내부에 암호화되어있는악성앱동적분석 코드분석팀송지훤 본보고서의전부나일부를인용시, 반드시 [ 자료 : 한국인터넷진흥원 (KISA)] 를명시하

슬라이드 1

DDoS 공격, 게임계정유출해커, 비트코인등가상화폐노린다 - 13 년 10 월부터 DDoS, 원격제어, 게임계정유출하더니최근암호화폐채굴 - 개요지난 13 년 10 월,Microsoft 社의인터넷익스플로러취약점 (CVE ) 을통해유포되는악성코드가 DDoS

I. KeyToken USB 소개 1. KeyToken 개요 KeyToken 은공인인증서를안전하게저장하고또안전하게사용하기위한보안제품으로, 한국인터넷진흥원 (KISA) 이 KeyToken 의보안토큰에대한구현적합성을평가하고인증한 제품입니다. 2. KeyToken USB 그

Transcription:

- clutch, IDA, gdb 등을통한앱분석 - 2014. 6 코드분석팀이동은 delee@kisa.or.kr 본보고서의전부나일부를인용시, 반드시 [ 자료 : 한국인터넷진흥원 (KISA)] 를명시하여주시기바랍니다.

[ 목차 ] 1. 개요 2 2. ios 앱정적동적분석 3 3. 아이패드탈옥 9 4. 공유기등을이용한원격파일송수신및디버깅환경구성 11 5. ios 용 GNU Debugger(iOS 5&6) 설치 13 6. 동적디버깅및소스수정을위한 Cycript 설치 14 7. 아이패드앱구성 15 8. 바이너리 ( 클래스 ) 파일리버싱 16 9. 암호화된앱크랙방법 18 10. 크랙된앱설치 23

1. 개요 세계보안회사 F-Secure가발표한자료에따르면 2014년 1분기 277개새로운보안위협중 99% 이상 (275개) 이안드로이드플랫폼에서발생하였으며각각한개위협만이 iphone 과심비안플랫폼에서발생하였다 [1]. 그러나 ios 플랫폼에서악성코드가전혀발생하지않은것은아니며, 2012년애플社정식앱스토어에서사용자의주소록을탈취하는 Find and Call 악성앱이유포되었다. < Find and Call 앱 > 최근에는라이브러리 (.dylib) 형태로 SSLWrite 함수를후킹하여앱스토어에전송 되는애플아이디와패스워드를원격서버로탈취하는악성코드가탈옥된 ios 에서 발견되었다. < SSLWrite 함수후킹모듈 > - 2 -

< 애플아이디및패스워드유출모듈 > 이처럼아이폰및아이패드는정식앱마켓을통해코드사이닝이된앱만설치가능하여안드로이드와달리스미싱등을통한유포가힘들다. 그러나탈옥된아이폰, 아이패드의경우, 운영체제가리눅스에기반하고있어 gdb, perl 등일반프로그램을 ios 버전으로그대로사용가능하여안전지대라고확신하기는이르다. 2. ios 앱정적동적분석 ( 테스트환경 : ios 5.1.1 가설치된아이패드 1) 본보고서에서는 ios 에서악성앱이유포되었을때활용할수있도록 ios 앱 정적동적분석방법을설명하고자한다. 그예시로국내에서널리사용중인앱을 선택하였다. 분석결과, 앱내부바이너리파일은암호화되어있었으며 clutch 공개 툴 1) 을통해복호화가가능하였다. IDA 분석프로그램은해당파일을 Mach-O 포 맷으로인식하여 Objective-C 코드로보여준다. Mach-O : 카네기멜론대학에서개발한 Mach 커널에서동작하는실행파일포맷 clutch : 암호화된어플을복호화해주는툴 Objective-C : 애플의 Mac OS X 10 및 ios 에서사용되는객체지향언어 < 암호화된앱 > < clutch 를통해복호화한앱 > 1) clutch 설치방법은 9. 암호화된앱크랙방법 (18 페이지 ) 참조 - 3 -

국내특정앱은실행시탈옥된단말기인것을탐지하여다음과같은팝업창을보여준다. 해당팝업창을띄우는모듈을확인하기위해복호화한클래스파일을 IDA 프로그램에서분석하였다. < 탈옥된단말기탐지 > 클래스파일내에서 ERRCODE 문자열로검색하면 AlertView 클래스를이용해 팝업창을생성하는모듈이보인다. 모듈시작부분을살펴보면앱제작자가생성한 ResultsetForSanne 클래스의 shared 함수가호출되는것을볼수있다. < 정적분석 : ERRCODE 문자열을통해알림팝업을띄우는모듈 > - 4 -

일반적으로앱이심볼테이블이포함된상태에서컴파일되었다면 gdb에서 break [ResultsetForSanne shared] 명령어로브레이크포인트설정이가능하다. 그러나현재 Release버전으로배포되어심볼테이블이포함되지않은것으로판단된다. 그러나 cycript 2) 를이용하면일부함수들의주소를확인할수있다. cycript p [PID] 를실행한후 ResultsetForSanne->isa.messages 라고실행하면함수주소가 0x618c1 인것을확인할수있다. cycript : ios 및 Mac OS X에서실행중인어플을수정하거나탐색하도록지원하는툴 < 동적분석 : Cycript 를통한함수위치확인 > gdb 3) 실행시키고 attach [ 앱클래스이름 ] 을통해동적분석을시작한다. < 동적분석 : gdb 실행및앱 attach > 2) cycript 설치방법은 6. 동적디버깅및소스수정을위한 Cycript 설치 (14 페이지 ) 참조 3) ios 용 gdb 설치방법은 5. ios 용 GNU Debugger(iOS 5&6) 설치 (13 페이지 ) 참조 - 5 -

cycript를통해확인한 ResultsetForSanne 클래스, shared 함수주소에브레이크포인트를둔다. c를통해프로그램을실행시키면실제해당모듈에서멈추는것을확인할수있다. < 동적분석 : 함수주소에브레크포인트설정 > IDA 에서 ERRCODE 문자열이저장될것으로추정되는 initwithtitle:message:delegate: cancelbuttontitle:otherbuttontitles: 을확인한후브레이크포인트를설정한다. < 동적분석 : initwithtitle:message:delegate:cancelbuttontitle:otherbuttontitles: 에브레이크포인트설정 > 다시 c 명령을통해프로그램을실행시키고레지스터 $r3 를확인하면팝업창알림 메시지가동일한것을확인할수있다. < 동적분석 : 알림팝업메시지확인 > - 6 -

해당앱이저장된폴더에는탈옥관련프로그램 (Cydia 등 ) 및 ios 용악성코드 (Find and Call 앱등 ) 목록이저장된파일 (filetocheck.plist) 이존재한다. < filetocheck.plist 코드확인 > IDA 에서살펴보면 FileChecker 클래스의 getplistfileindocumentfolder 함수가이러한 plist 를읽어오는것을알수있다. < 정적분석 : plist 파일을읽는함수 > - 7 -

gdb 를통해위모듈에서사용된 dictionarywithcotentsoffile 에브레이크포인트를 두었다. 디버깅결과, 해당함수의인자값으로 plist 파일이사용되는것을볼수있다. < 동적분석 : 함수가읽는 plist 파일이름이저장된레지스터확인 > 해당앱은 filetocheck.plist 를읽어탈옥관련프로그램및 ios 악성코드가설치되어있는지를 fileexistsatpath:isdirectory 함수를통해확인한다. 아래결과는 fileexistsatpath:isdirectory 함수의인자값인파일이름이다. 해당함수실행결과, 리턴값을모두 0으로설정하면탈옥체크모듈우회가가능하다. < 동적분석 : 탈옥관련파일및 ios 악성코드확인모듈디버깅 > 위와같은방법으로아이패드등에서악성앱발생시정적분석 (IDA 등 ) 과동적분석 (gdb 등 ) 이가능할것으로보인다. - 8 -

3. 아이패드탈옥 본보고서에서는 ios 5.1.1이설치된 ipad 1을대상으로탈옥 (JailBreak) 하여분석환경을구성하였다. 탈옥을하기위해사용한프로그램은 absinthe-win-2 이며아이패드를연결한후 JailBreak 버튼을누르면탈옥이진행된다. < 탈옥 (Jailbreak) 을위한 absinthe 프로그램 > < 탈옥전 > < 탈옥진행화면 > 탈옥 (JailBreak) 이성공하게되면아이패드바탕화면에 Absinthe 와 Cydia 아이콘이생성된다. Cydia는탈옥된 Mac OS에서다양한앱을다운로드받을수있는앱마켓이다. 소스추가를통해앱다운로드경로를확장할수있다. < 탈옥 (JailBreak) 시생성되는어플 > - 9 -

탈옥된폰에서기본적으로필요한툴은 ifile, Mobile Terminal, Open SSH, APT 등이있다. 해당툴은 Cydia 에서검색하여다운로드및설치할수있다. < 어플종류및기능 > 어플 ifile Mobile Terminal Open SSH APT 0.7 HTTPS Method 내용 ifile은윈도우탐색기와같이보기쉬운인터페이스를통해파일을열람하고폴더생성, 파일복사및삭제등을지원하는어플임아이패드에커맨드형식으로접근할수있도록지원하는쉘 (Shell) 어플임원격지에서아이패드에안전하게접근하도록지원하는쉘 (Secure Shell) 어플임 wget, whois, libxml2 등 ios에서실행가능한기본명령어및라이브러리를설치해주는어플임 이외에도여러가지라이브러리혹은툴을설치하려면 root 계정이필요한경우가 있다. 공장출하상태에서 ios 5.1.1 의비밀번호는 alphine 로기본설정되어있다. < root 계정으로로그인 ( 패스워드 : alphine) > - 10 -

4. 공유기등을이용한원격파일송수신및디버깅환경구성 아이패드에서동작하는앱을동적분석하기위해에그, 공유기에 PC와아이패드를연결시켜 SSL과 SFTP로파일송수신및원격디버깅이가능하도록환경을구성하였다. < 에그를이용한원격파일송수신및디버깅환경구성 > PC 에는 SSL 접속을위해 putty 를설치하였으며아이패드에서확인한아이피로 로그인하면명령실행창을얻을수있다. < 아이패드아이피확인 > < Putty 를통한로그인 > - 11 -

아래와같이보안경고창이뜨나예 (Y) 를클릭하여 root 계정으로접속한다. < Putty 접속시보안경고창 > 아이패드에서작업을하다보면 PC와아이패드간파일송수신이빈번히일어난다. 편의를위해 SFTP를통해 PC에서아이패드로접속하도록설정하였다. 본보고서에는 PC에 FileZilla Client 버전을설치한뒤 sftp://192.168.1.100( 아이패드아이피 ), 아이패드아이디및패스워드를입력하여아이패드에접속하였다. < FTP Client 를통한아이패드접속 > - 12 -

5. ios 용 GNU Debugger(iOS 5&6) 설치 ios 5 를지원하는 GNU Debugger 를설치하기위해 Cydia 에서소스를추가한다. 소스에 cydia.radare.org 추가한뒤 GNU Debugger 를검색하여설치한다. < Cydia 에서소스추가 > < 소스업데이트화면 > < GNU Debugger (ios 5&6) > gdb 명령입력시다음과같이 Apple 버전임을명시하고있으면설치가완료된것이다. 만약특정프로세스를분석하고싶다면 gdb p [PID] 명령을입력하면된다. 혹은아래그림과같이 gdb가실행중일때 attach [ 프로세스이름 ] 을입력하면분석이가능하다. < Apple gdb 실행화면 > < 분석을위한프로세스디버깅방법 > - 13 -

6. 동적디버깅및소스수정을위한 Cycript 설치 cycript 설치방법은아래와같다. 1 cycript 공식사이트인 http://www.cycript.org/debs 에접속하여 deb 파일다운로드 < cycript 파일다운로드 > 2 다운로드받은 deb 파일설치하면완료 * dpkg i cycript_0.9.501_iphones-arm.deb < 다운로드받은 cycript 설치 > - 14 -

7. 아이패드앱구성 일반적으로탈옥된환경에서앱은 /var/mobile/applications/[ 알파벳, 숫자조합 ] 에모든정보가그대로저장되어있다. < 앱이저장된디렉토리 > ios 앱개발툴인 Xcode를통해앱은보통 ipa 파일로생성되는데해당파일의압축을풀면내부에 Payload 폴더와 itunesartwork, itunesmetadata.plist로구성되어있다. itunesartwork와 itunesmetadata.plist 파일은 itunes에서해당앱을관리하기위해사용하는파일로서실제 itunesmetadata.plist을열어보면사용자 id, 구매날짜, 앱버전등의정보가 xml 형태로포함되어있다. < itunesmetadata.plist 파일 > Payload 폴더에는소스코드가컴파일된바이너리클래스파일 (App Binary), 그림등의리소스파일 (Bundle resources), 앱권한설정값 (mobile provision), 코드서명값 (CodeSignature) 이존재한다. 이중우리가정적분석을위해사용할파일은클래스바이너리파일 (App binary) 이다. class-dump-z는클래스파일을 - 15 -

주요 Objective-C Class Interface 형태로변환해주는툴이다. < 아이폰앱구성도 [2] > 8. 바이너리 ( 클래스 ) 파일리버싱 기본제공툴인 class-dump 를통해 TinyTower 의덤프를생성하였으나깨진 형태로보였다. 그러나 class-dump-z 으로덤프생성하자암호화되었다고표시는 되지만깨진형태로출력되지않는것으로확인되었다. < class-dump 사용시 > < class-dump-z 사용시 > - 16 -

class-dump-z 설치과정은다음과같다. 1 설치파일다운로드 * wget http://networkpx.googlecode.com/files/class-dump-z_0.2a.tar.gz < class-dump-z 파일다운로드 > 2 tar 압축풀기 * tar xvzf class-dump-z_0.2a.tar.gz < tar 압축풀기 > 3 class-dump-z 실행파일을 /user/bin 디렉토리로옮기기 * cp iphone_armv6/class-dump-z /usr/bin < /usr/bin 디렉토리에 class-dump-z 설치 > 4 class-dump-z 입력시다음과같이사용방법이나오면설치완료 < class-dump-z 실행 > - 17 -

9. 암호화된앱크랙방법 암호화된형태의덤프파일을올바른형태로보기위해서는 clutch 툴을이용 하여앱을먼저크랙해야한다. clutch 툴을설치하는방법은여러가지가있으나 가장쉬운방법은 Cydia 에서소스를추가한뒤설치하는것이다. clutch 툴설치방법 1 Cydia 앱에서소스 (http://ihacksrepo.com) 추가 < clutch 다운로드를위해소스추가 > 2 clutch 검색및설치 < clutch 검색및설치 > - 18 -

3 clutch 입력시크랙가능한앱목록출력 4 clutch [ 앱이름 ] 실행시 /var/root/documents/cracked 폴더에 ipa 압축 파일형태로복호화된앱이생성됨 < clutch 를통한앱크랙 > 5 ipa 압축파일해제 * 앱이름폴더생성 : mkdir [ 앱이름 ] * [ 앱이름 ] 폴더에압축해제 : unzip [ 앱이름 ].ipa d [ 생성한폴더이름 ] 크랙이완료된이후내부주요 Interface, 함수, 변수, 구조체등의목록을알아내기 위해이전에설치한 class-dump-z 를이용한다. 1 클래스파일을 class-dump-z 를통해덤프 * class-dump-z [ 앱이름의클래스바이너리 ] > [ 원하는파일이름 ].txt 2 덤프내용확인 * head 20 [ 원하는파일이름 ].txt < 덤프내용확인 > - 19 -

그러나이러한덤프내용은앱기능별로출력하지않고모든함수, 구조체, 변수등을한파일에서보여주기때문에분석이어렵다. Theos라는개발커맨드방식툴은헤더파일로구분해주어기능별로분석이훨씬수월하다. 하지만 Theos 없이도 IDA 툴을사용하여크랙된 class파일을분석하면내부변수, 함수등뿐만아니라 Objective-C 소스코드도볼수있다. < 헤더별로내부변수, 함수등을출력해주는 Theos> < IDA 를통해확인된내부변수, 함수등 > Theos 설치방법은다음과같다. 1 (installtheos3 를통해설치될경우 ) 약 20 분소요 < installtheos3 설치 > - 20 -

2-1 (installtheos3를통해설치되지않을경우 ) perl 다운로드및설치 * wget http://coredev.nl/cydia/coredev.pub * apt-key add coredev.pub * echo deb http://coredev.nl/cydia iphone main > /etc/apt/sources.list.d/coredev.nl.list < Perl 다운로드및설치 > 2-2 perl 버전확인 < Perl 버전확인 > 2-3 다음과같이 howett.net.list 파일생성 * echo deb http://nix.howett.net/theos./ > /etc/apt/sources.list.d/howett.net.list < howett.net.list 파일생성 > - 21 -

2-4 apt-get update 실행 < apt-get update 실행 > 2-5 apt-get install perl net.howett.theos < perl 을통해 net.howett.theos 설치 > 3 환경변수설정후다음과같이실행했을때메뉴가나오면 theso 설치완료 * export THEOS=/var/theos * $THEOS/bin/nic.pl < 환경변수설정및 theos 실행 > - 22 -

10. 크랙된앱설치 크랙된앱을설치하는방법은아래와같다. 1 Cydia 를통해 AppSync 검색및설치 < AppSync 검색및설치 > 2 http://i-funbox.com/ 를통해 ifunbox 다운로드및설치 < ifunbox 다운로드및설치 > - 23 -

3 PC 와아이패드를연결한후 App 설치 아이콘을클릭하고설치할앱을선택 < ifunbox 를통한 App 설치 > 4 다음과같이 App 설치결과화면이보이면완료 < App 설치결과 > - 24 -

참고자료 [1] http://www.f-secure.com/weblog/archives/00002699.html [2] http://floatlearning.com/2011/11/re-signing-an-ios-app-without-xcode/ [3] http://orchilles.com/preparing-ios7-to-test-ios-apps/ - 25 -