Notice : 해당 자료가 저작권등에 의해서 문제가 있다면 바로 삭제하겠습니다.
연구목적으로 사용하지 않고 악의적인 목적으로 이용할 경우 발생할 수 있는 법적은 책임은 모두 본인에게 있습니다.
iOS 앱 보안진단을 위한 환경설정
iOS 앱 정적 분석하기(class-dump-z, clutch)
Objective-C Runtime의 이해와 gdb attach 하기
iOS 앱 Cycript를 이용항 동적분석 및 변조
개발자 등록하지 않고 iOS 기기에 앱 설치 하기
Cycript 를 이용해 iOS 앱 로그인 우회 실습
Snoop-it 을 이용해서 iOS 앱 분석하기
1. 키체인에서 인증서 만들기
키채일 접근 > 인증서 지원 > 인증서 생성으로 인증서를 생성한다.

인증서 이름을 정하고 인증서 유형을 코드 서명으로 선택한다.

생성 버튼을 누르면 인증서가 생성된다.
2. 샘플 프로젝트를 생성
현재 설치된 XCode의 버전은 5.0.2 이다.
XCode를 이용해 Single View Application 프로젝트를 하나 생성한다.

프로젝트명은 test으로 만들었다.

프로젝트설정 > Info 에서 iOS Deployment Target을 5.1으로 설정한다.

그리고 프로젝트설정 > Build Settings를 아까 생성한 인증서로 변경해준다.

자 이제 설정은 다 끝났다. 위의 target부분을 ios 기기로 변경해서 빌드한다.

빌드를 하면 인증서키를 사용해서 빌드한다고 메세지가 나오는데 허용하면 ios 기기에 앱이 들어간다.

3. IPA 파일으로 ios기기에 설치
위의 빌드과정에서 자동으로 기기에 앱이 들어가지만, 수동으로 ipa파일을 만들어 복사하는 방법도 있다.
ipa 파일을 만드는 방법은 간단하다.
먼저 Payload 디렉토리를 만들고 그안에 test.app 를 넣은 후에 zip 파일로 압축한 후, 확장자를 ipa으로 변경하면 된다.
빌드할때 생성된 test.app 파일은 /Users/{계정ID}/Library/Developer/Xcode/DerivedData/{APP이름}-{APP_ID}/Build/Products/Debug-iphoneos 에 있다.
$ pwd /Users/apollo89/Library/Developer/Xcode/DerivedData/test-dtwahuobwkjebdenkgynhpftnmbs/Build/Products/Debug-iphoneos $ mkdir ~/Desktop/Payload $ cp -R test.app ~/Desktop/Payload/
그리고 만든 ipa 를 sftp를 이용해서 기기로 복사한 후, installipa으로 설치하면 된다.
$ sftp root@192.168.137.123 root@192.168.137.123\'s password: Connected to 192.168.137.123. sftp> put test.ipa Uploading test.ipa to /private/var/root/test.ipa test.ipa 100% 34KB 33.5KB/s 00:00 sftp> quit $ ssh root@192.168.137.123 root@192.168.137.123\'s password: Apollo89-iPad:~ root# installipa test.ipa Analyzing test.ipa... Installing test (v1.0)... Installed test (v1.0) successfully. Failed to clean caches. Apollo89-iPad:~ root#
성공~ 실행도 잘된다!
참고 : http://highaltitudehacks.com/2013/07/25/ios-application-security-part-7-installing-and-running-custom-applications-on-device-without-a-registered-developer-account/
잘보았습니다. 한가지 여쭈어 보고 싶은것이 이방식으로 테스트가 되나요?
한번 해보려니 전혀 되지가 았는군요;;;;
정말 감사합니다 도움이 많이 되었습니다! 그런데 target 부분을 ios 기기로 변경할 때 (~~~님의 iphone)까지는 등록이 되었는데 옆에 unavailable 이 떠서 빌드를 할 수 가 없다고 하네요… 혹시 해결방법 알고 계시나요? ㅠㅠ
작년에 이 글을 작성할때는 직접 테스트 해보면서 작성한거라 잘 되었는데..
최근에는 안해봐서 잘 모르겠네요^^;
최근에는 SDK가 변경되어서 안될수도 있을꺼 같네요..