리버스 1(Cycript 사용 소개)

8481 단어
준비 작업
1. openSSH 설치 탈옥 아이폰은 Cydia로 오픈SSH를 검색해 설치하면 된다.
  • SSH 연결 탈옥 아이폰 2가지 방식 <1> 와이파이 무선 연결
  • 1)    Mac        。
    2)       iPhone ip
    3) mac      ssh [email protected]
      :
    1.          ,  yes     
    2.      ,      SSH   ,         ,   alpine
    3.        :~root#         
    4.                  ,         passwd。  2        
    

    <2> USB 연결(WIFI 응답 속도보다 빠르고 인터넷 환경에 제한이 없음) usbmuxd는 인터넷 소스 오픈 커뮤니티로 외국 소인들이 힘을 기울여 만든 이 기능을 위한 소스 오픈 라이브러리인 것 같다)
    1>   Homebrew   ,    brew [   ](http://www.jianshu.com/p/d69a23d20b8e))
    brew install usbmuxd
    2>usbmuxd     iproxy,iproxy          iPhone   。  Mac    4     ,     iPhone     22   Mac ,       Mac iPhone     。
    iproxy 2222 22
                  22  (SSH  )      2222  ,      22    ,      2222        。
    3)      waiting for connection ,                ,      (               ),         ,    :alpine (           ,         )
    ssh -p 2222 [email protected]
    

    2. 패키지 관리 도구 apt-get 설치 Cydia에서 APT 0.6 Transitional 검색 및 설치
    apt-get install  packagename         【     】
    //         openssh    
             
    apt-get install syslogd
    apt-get install  ping
    apt-get install  ps
    apt-get install  find 
    apt-get install  tcpdump
    //          ,         
    apt-cache search traceroute
              ,  apt-get update,      
    

    Cycript 소개
    Cycript는 iOS 소프트웨어를 공격할 수 있습니다.Oc과 JavaScript 사이의 프로그래밍 언어입니다.Cycript는 Jay Freeman(제프리만)이 작성한 것으로 그는 iOS 제3자 도구의 저자로 Cydia 소프트웨어 설치기, Cydgets와 iOS의 자바 이식 버전을 포함한다.Cycript는 JavaScript와 완전히 호환됩니다. 당신은 완전한 JS 문법으로 프로그램을 작성할 수 있지만 OC 언어의 구성 요소를 직접 조작할 수 있습니다.간단히 말해서 Cycript는 현재의 모든 운행 시 조작 기교를 훌륭하게 실현하였다.이것은 oc와 js 문법을 혼합한 도구로 개발자가 명령줄에서 응용 프로그램과 상호작용을 하고 실행할 때 응용 프로그램을 보고 수정할 수 있도록 합니다.
    Cycript 설치 방법
  • Cydia 상점에 가서 Cycript를 다운로드하여 설치한다.
  • apt-get install cycript

  • Cycript 사용
    1. Spring Board는 우리가 볼 수 있는 iOS 위의 물건을 사용하는데 모두 Spring Board 안에 속한다.
    다음은 몇 가지 예를 보여 준다
        SpringBoard
    iPhone:~ root# cycript -p SpringBoard
    1.  
    cy# var shot = [SBScreenShotter sharedInstance]
    #""
    cy# [shot saveScreenshot:YES]
    2.    
    cy# UIApp.keyWindow
    #"; layer = >"
    //                    
    cy# screen = #0x1308f14b0 
    #"; layer = >"
    cy# screen.hidden = YES
    true
    cy# screen.hidden = NO
    false
    //         
    cy# screen.backgroundColor = [UIColor redColor]
    #"UIDeviceRGBColorSpace 1 0 0 1"
    3.   
    cy# var alert =[[[UIAlertView alloc]initWithTitle:@"Title" message:@"Hello World" delegate:nil cancelButtonTitle:@"ok" otherButtonTitles:nil, nil] show]
    cy# 
    
  • 앱의 이름을 통해 프로세스를 주입
  • 1.         PID
    //      
    iPhone:~ root# ps -e 
    //    ,    
    iPhone:~ root# ps -e | grep WeChat 
    
    2.  
    //  1    
    iPhone:~ root# cycript -p WeChat
    cy#
    //  2   ID
    iPhone:~ root# cycript -p 1751  
    cy#
    
    3.  cycript
    Control+D
    
  • 위챗 주입
  • //         (            )
    UIApp.keyWindow.rootViewController.visibleViewController  
    #""
    //       
    iPhone:~ root# cycript -p WeChat  
    cy# function currentVC() {
           var app = [UIApplication sharedApplication]  
               var keyWindow = app.keyWindow  
                   var rootController = keyWindow.rootViewController  
                       var visibleController = rootController.visibleViewController  
                           if (!visibleController){
                                  return rootController
                                      }
                                          return visibleController.childViewControllers[0]
                                          }
    cy# var vc = currentVC()
    #""
    cy# viewC = #0x160073400
    #""
    //       view
    cy# viewC.view
    #">"
    cy# view = #0x161272fa0
    #">"
    //         
    cy# view.recursiveDescription().toString()
    `>
      | >
      |    | >
      | >
      |    | >
      |    |    | >
      |    | >
      |    |    | >
      |    |    |    | <_uilabelcontentlayer:> (layer)
      | >
      |    | >
      |    |    | <_uilabelcontentlayer:> (layer)`
    //        
    cy#  #0x1612791a0.text = @"socket"
    //           textField      
    cy# choose(UITextField)
    [#"; layer = >",#"; layer = >",#"; layer = >",#"; layer = >"]
    //    
    cy# #0x14f0873c0.text = @"countryCode"
    @"countryCode"
    //             
    cy# #0x14f262e80.secureTextEntry = NO
    false
    //  YES
    cy# #0x14f262e80.secureTextEntry = yes
    throw new ReferenceError("Can't find variable: yes")
    cy# #0x14f262e80.secureTextEntry = YES
    true
    cy#
    

    주의
    만약 모두 중국어라면 인코딩을 UNICODE로 변환한 후 UNICODE 인코딩을 직접 검색할 수 있습니다.인코딩을 변환할 웹 주소를 권장합니다.http://tool.chinaz.com/Tools/Unicode.aspx
    scp 명령 사용
    1.  iphone       mac 
    scp         mac   @mac ip:mac    
      :    tmp    libETL.log   mac  testing    
    iPhone:/tmp root# scp /tmp/libETL.log [email protected]:/Users/zl/Desktop/testing
      :
    (1)mac       who  
    (2)      mac      
    2.  mac       iphone 
      : mac tmp    test.txt   mac  tmp    
    iPhone:/tmp root# scp [email protected]:/tmp/test.txt .
    

    주의 사항
    연결되지 않으면 Mac 터미널 입력 명령 ssh localhost에서 ssh: connect to host localhost port 22: Connection refused 해결 방법은 시스템 선호 설정 선택 -> 공유 선택 -> 원격 로그인을 클릭한 다음 명령을 입력하면 ssh localhost에서 문제가 해결된 것을 발견합니다
    보조 웨이브 맥 단말기 단축키
    Command + K               
    Command + T                 
    Command +W                     
    Command + S                   
    Command + D                      
    Command + Shift + D              
    Command + shift +  { }   /      
    
      、         :    Tab
         :               Ctrl + c
              :        Ctrl + a
              :        Ctrl + e
                 :   Ctrl + w
                 :   Ctrl + k
                :    Ctrl + u​
    

    좋은 웹페이지 즐겨찾기