억대 연봉을 위한 인간수업
article thumbnail
반응형

 

안드로이드에선 intent를 통해 화면 우회가 가능하고 iOS에선 cycript를 통해 화면 우회가 가능하다.
iOS는 cycript나 frida를 이용하면 우회가 가능함. 물론 iOS의 OS버전에 따라 cycript 사용이 불가능할 수도 있음.

 

 

이번 우회에 사용된 iOS 기기 스펙

  •  iphone 6s, iOS 11.0.2 version

 

0. 탈옥

먼저 cycript를 사용하기 위해선 전제조건을 iOS가 탈옥이 되어 있어야 한다.

탈옥은 iOS 버전에 따라 방법이 다르지만, 11.x대역이면 아랫글을 참조해서 탈옥을 진행하면 됨.

https://kk-7790.tistory.com/150

 

[iOS] 아이폰 iOS 11.x.x 대역 탈옥

아이폰 11.0.3 탈옥 iOS 11.0.3 탈옥 iOS 11 탈옥 공기계를 얻었는데 무려! iOS가 11.0.3 버전이다. 그래서 탈옥하려고 cydia impect, checkra1n, Altserver를 사용해봤지만, 이것들은 iOS가 12, 13버전 이상만 사용이

kk-7790.tistory.com

 

1. cycript 설치 방법


탈옥한 기기에서 Cydia를 통해 cycript 설치를 진행

 

cydia 외에 다른 방법으로 http://www.cycript.org/debs/ 링크에서 deb 파일을 다운받아 설치도 가능

 

2. 화면 우회

 

cycript 설치가 됐으면 ssh로 아이폰에 접속한 뒤 우회할 앱의 pid를 확인

ps -ef | grep [app 이름]

 

 

만약 ssh에서 확인이 안되면 frida-ps -Ua로 확인

 

 

pid 확인이 완료되면 cycript실행

cycript -p [pid]
  • cycript -p [pid] : -p옵션은 attach한다는 의미

 

 


이제 cycript의 명령어를 사용해서 화면 우회를 진행하면 됨.

로그인한 뒤의 화면으로 이동해야 하니, 그 화면의 주소 값을 알아야 하며, iOS기기로 로그인 한 뒤의 화면에서 명령어를 실행해 메모리값을 확인한 뒤 변수에 해당 값을 저장해 줌.

var m =[[MainViewController alloc]init]

 

그리고 로그인 화면(우회해야 하는 페이지)으로 이동한 뒤 강제 이동 시도

UIApp.keyWindow.rootViewController = m

 

강제 이동이 된다면 로그인 우회가 가능하나, 로그인이 되지 않은 상태로 강제 이동이라 사용에 제한이 있을 수 있음

 

3. cycript 명령어

화면 강제 전환 외에도 cycript를 사용하여 여러 가지를 할 수 있는데, 아래 사이트에서 cycript에서 사용 가능한 명령어 확인이 가능함.

http://iphonedevwiki.net/index.php/Cycript_Tricks

 

Cycript Tricks - iPhone Development Wiki

Getting objects Objective-C objects using choose() The function choose(), introduced in version 0.9.502[citation needed] and documented here, allows us to get an array of existing objects of a certain class. Objective-C objects from addresses Use #0xdeadba

iphonedevwiki.net

 


 



참고로 매번 현재 메인뷰를 확인하면 메모리 위치 값이 달라지는걸 볼 수 있다.
그 이유는 프로세스가 실행될 때 메모리에서 할당되는 공간이 매번 다르기 때문이니, 매번 어플의 프로세스의 실행 위치가 랜덤으로 지정되기 때문에 달라진다.

 

 

 

 

 

 

 

 

 

 

반응형
profile

억대 연봉을 위한 인간수업

@회뜨는참치

이 글이 당신에게 조금이라도 도움이 된다면 좋겠습니다.