'ios'에 해당되는 글 2건

반응형

VMWare에서 MAC 설치 후 USB로 연결한 IOS가 인식이 되지 않았다.

그래서 구글링하여 해결한 방법에 대해 공유하고자 한다.


내가 참고한 주소는 아래와 같다.

https://stackoverflow.com/questions/36139020/macos-on-vmware-doesnt-recognize-ios-device ]


간단하게 사진으로 보자.


1. VMware에서 MacOS 종료

 - 사진에서 보이는 Shut Down Guest 를 눌러 현재 켜져있는 MacOS를 종료시켜준다.


2. 설정 변경

 - Edit virtual machine settings를 눌러준다.


3. USB Controller의 설정 변경

 - Hardware 탭에 있는 USB Controller를 선택 후 USB compatibility를 USB 2.0으로 선택하고 밑에 체크부분을 모두 선택해준다.

 - 아마 기본적으로 USB 3.0으로 선택되어 있고 Show all USB input devices는 풀려있을 것이다.


4. 다시 MacOS를 실행시키고 IOS를 컴퓨터에 연결시켜주면 인식이 된다.



ps) 참고로 USB 3.0을 인식시키고 싶다면 VirtualBox에서 VirtualBox Extension Pack를 설치해주면 가능하다고 한다. 필요하다면 직접 해보시길


반응형

'Hacking > Mobile' 카테고리의 다른 글

[IOS] Frida-trace  (0) 2019.01.17
[IOS] gdb와 cycript를 이용한 탈옥 탐지 우회  (0) 2019.01.04
VMware에 Mac OS X El Capitan 설치  (0) 2018.12.26
IOS Memory Dump  (0) 2018.10.11
디버깅 탐지기능 확인  (0) 2018.05.25
블로그 이미지

rootable

,

IOS Cycript

Hacking/Mobile 2018. 4. 30. 17:05
반응형

1. Cycript란?

 - javascript와 Obj-C를 결합한 스크립트의 인터프리터

 - 실행중인 프로세스에 attach하여 Property를 변경하고 함수를 동적으로 호출할 수 있다.

 - 나는 cycript를 이용하여 로그인을 우회하는 것을 예시로 보여줄 것이다.


2. 환경 세팅

 - MethodSwizzlingDemo 라는 앱을 이용하여 로그인을 우회하는 2가지 방법에 대해 해볼 생각이다. 그러기 위해서는 우회할 앱과 cycript가 설치되어 있어야 한다.


2.1 cycript 설치

 - cycript 설치는 간단하다. Cydia에서 cycript 검색 후 설치해주면 끝!


2.2 MethodSwizzlingDemo 앱 설치

 -  아래에 첨부한 파일을 다운로드 받는다.

MethodSwizzlingDemo.ipa


 - cydia Impactor를 다운받아 해당 ipa를 설치해준다. (자세한 설치 과정은 검색을 통해 진행)

 - 만약 설치 중 에러로 인해 설치가 안된다면 제 포스팅을 참고해서 진행해주시면 됩니다. ( http://rootable.tistory.com/entry/Cydia-Impactor%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-ipa-%EC%84%A4%EC%B9%98 )

 - 설치가 완료된다면 아래와 같은 화면을 볼 수 있다.

3. 앱 분석


 - 입력창 2개와 버튼 2개가 있다. 입력창 2개는 ID와 PW 입력하는 창인듯 하고 아래는 로그인하는 method인 것을 알 수 있다.

 - 버튼에 Login Method 1과 Login Method 2라고 써져있는 것을 보아 2가지 방법으로 로그인할 수 있는 것을 알 수 있다.

 - 아래 사진과 같이 임의의 ID와 PW 입력 후 버튼을 눌러보면 둘다 동일하게 아래와 같은 에러가 뜨는 것을 볼 수 있다.



 - 이제 cycript를 이용하여 ID와 PW를 몰라도 Login을 할 수 있도록 Login 로직을 우회해보겠다.


4. Login 관련 함수 확인

Step 1) ps 명령어를 통해 현재 실행 중인 앱의 PID 확인


해당 명령어를 통해 PID가 3478인 것을 확인할 수 있다.


Step 2) cycript 를 실행시키며 p 옵션을 통해 해당 프로세스에 attach


정상적으로 attach가 되어 cy#에 커서가 있음을 볼 수 있다.


Step 3) Login하는 메소드 확인

(1) printMethods 함수 정의

 - http://iphonedevwiki.net/index.php/Cycript_Tricks <- 해당 링크에 접속하면 cycript에서 사용할 수 있는 많은 함수들을 볼 수 있다.

 - 해당 함수를 이용해서 확인하는 방법은 아래와 같은 에러가 뜨며 진행되지 않았다.


(2) ViewController.messages 이용

 - ViewController.messages 를 입력하면 메소드를 확인할 수 있다 하였지만 나의 경우는 나타나지 않았다. (아무 반응 없음)


(3) class-dump-z 이용

 - 앱스토어를 통해 설치한 앱의 경우 암호화가 적용되어 있으므로 clutch를 통해 복호화 후 아래 과정 진행 (내가 진행한 앱은 직접 설치한 것이므로 암호화가 되어있지 않으므로 그냥 진행)

 - class-dump-z [앱 이름] > [덤프파일 이름]

 - 덤프한 파일이 길기 때문에 tail 명령어로 끝부분을 보니 validateLogin 함수와 pushLoginPage 함수가 있는 것을 볼 수 있다.


5. 로그인 우회

 - 위에서 확인한 두 함수(validateLogin, pushLoginPage)를 이용하여 Login을 우회할 것이다.


5.1) 로그인 검증 결과를 무조건 True로

 - validateLogin 함수는 함수명과 BOOL을 리턴하는 함수인 것을 통해 login을 검증하는 함수임을 추측할 수 있다. 따라서 Cycript를 이용하여 항상 True를 리턴하도록 변경하였다.

 - 참고한 블로그에서는 ViewController.messages를 이용하였지만 더 이상 Cycript에서 messages를 지원하지 않는다고 한다.  prototype를 이용하자.

 - 해당 코드 입력 후 Login Method 1을 클릭하면 아래와 같이 로그인에 성공하는 것을 볼 수 있다.



5.2) 로그인 성공 화면을 강제 호출

 - pushLoginPage는 로그인 성공 후 호출하는 화면이다. 해당 화면을 아래 코드를 통해 강제로 호출하면 로그인을 우회할 수 있다.

- 해당 코드 입력 시 바로 로그인 성공 페이지로 넘어가는 것을 확인할 수 있다.

 

(확인할 사항)

 - 현재 뷰 사라지도록 : [xxxViewController dismissViewControllerAnimated:YES completion:nil]

 - 원하는뷰 나타나도록 : [xxxViewController presentViewController:newViewController animated:YES completion:nil]

 - 


참고)

http://apollo89.com/wordpress/?p=5890

http://apollo89.com/wordpress/?p=5996

wildpointer.qiniudn.com/MethodSwizzlingDemo.ipa

http://hyunmini.tistory.com/70

반응형
블로그 이미지

rootable

,