iOS逆記録(一)

8811 ワード

iOS逆環境の紹介
***脱獄環境:iphone 5 s iOS 8.3***
Flongers-iPhone:~ root# uname -a
Darwin Flongers-iPhone 14.0.0 Darwin Kernel Version 14.0.0: Sun Mar 29 19:47:37 PDT 2015; root:xnu-2784.20.34~2/RELEASE_ARM64_S5L8960X iPhone6,1 arm64 N51AP Darwin

1.Drawinシステム
  • Darwinはunixのようなオペレーティングシステムで、彼のコアXNU、XNUは混合コアで、machとBSDの2つのコアを結合しています.
  • 主流のクラスunix:
  • LinuxはLinus Torvaldsが開発したもので、リリースバージョンCenOS、Redhat、Ubuntu、Debian、openWRTなどの
  • を代表しています.
  • Mac OS XのIntel部
  • freeBSDカリフォルニア大学バークレー校がUNIXに基づいて開発した(UNIX変種、当時ベル実験室と訴訟を起こさなければ、現在のLinuxには何も起こらなかったかもしれない)
  • Solaris Sun(現在はOracel)が開発したUNIXビジネスバージョン

  • BSDはMachの上位層に実装され、この層が提供するAPIはPOSIX標準モデルをサポートする.XNUでは主にいくつかの高度なAPIとモジュール
  • が実現されている.
  • UNIXプロセスモデルe.g fork,vfork,wait,waitpid,execなど
  • POSIXスレッドモデルであるpthread、および関連する同期機能e.g pthread_create,pthread_mutex(スレッド反発ロック)
  • UNIXのユーザとグループ管理e.g rootユーザ、mobileユーザ、chmod等
  • ネットワークプロトコルスタック(BSD Socket API)は、POSIXモデルe.g socket()に適合する.bind(); listen();accept();connect(); gethostbyname(); gethostbyaddr()等バークリーソケットAPI
  • ファイルシステム/デバイスシステムe.g Filesystem Hierarchy Standard(ファイルシステム階層化規格)
  • iOS、OSI、ISOの意味
  • iOSアップルが開発したモバイルオペレーティングシステム
  • OSIはOpen System Interconnectionの略で、オープンシステム相互接続を意味します.OSIモデルは,ネットワーク通信の動作を物理層,データリンク層,ネットワーク層,伝送層,セッション層,表現層,応用層の7層に分けた.
  • IOSは国際標準化機構である.上のOSIモデルはこの組織によって作成された.一般的なUNIXシステムはPOSIX規格とIOS C規格にほぼ適合している
  • POSIXは、移植可能なオペレーティングシステムインターフェース(Portable Operating System Interface)
  • を表す.
  • ISO C標準、C言語標準ライブラリインタフェース

  • なぜ脱獄したのか
  • iOS砂箱メカニズムの制限(sandbox)砂箱は、実行中のプログラムに隔離環境を提供するセキュリティメカニズムです.砂箱は起動時に実行するプログラムがネットワーク、ファイル、ディレクトリなどにアクセスできるかどうかを設定できる
  • .
    2.Cydia-脱獄iOSのソフトウェア管理プラットフォーム(Cydiaの父-Jay Freeman(ジェフリーマン))
  • 脱獄iOSは合法的な
  • です
  • インストールOpenSSHはCydiaでOpenSSHを検索してインストールし、iOS上でSSHサービスを開始することができます.SSHサービスデフォルトバインドポート番号22
  • SSHコマンドを使用してiOSに接続し、デフォルトのログインパスワード「alpine」
  •      ssh [email protected]       //iOS  wifi,       ip  ,       IP  
    
  • scpコマンドを使用して、ファイル
  • を転送できます.
      scp  filename  [email protected]:/tmp                 //         
      
      scp [email protected]:/tmp/filename  /tmp/         //          
    
  • デフォルトパスワードの変更
  •   passwd root
      
     passwd mobile
    
  • インストールパッケージ管理ツールapt-get CydiaでAPT 0.6 Transitionalを検索してインストールする
  • コマンド紹介
       apt-get update                    【      】
    
       apt-get upgrade                 【      apt-get     】
    
       apt-get install  packagename         【     】
    
       apt-get remove  packagename      【     ,      ,       】
    
       apt-get remove --purge packagename  【      ,      ,      】
    
       apt-get autoremove packagename       [      ,     ,       ]
    
       apt-get autoremove --purge packagname    【         +    】
    
       apt-cache search string             【     string      】
    
       apt-cache show packagename     【           】
    
       apt-get clean                   【  apt-get        ,        ,         】
    
  • apt-getインストールパッケージe.gを使用してtraceroute
        apt-get install traceroute  //        
        
        //          ,         
        apt-cache search traceroute
        
        apt-get install  network-cmds
    
  • をインストール
  • 取付必要工具
        apt-get install  ping
        
        apt-get install  ps
        
        apt-get install  find
        
        apt-get install tcpdump
        
        apt-get install top
        
        apt-get install vim
        
        apt-get install  network-cmds   //-arp, ifconfig, netstat, route, traceroute
    
  • ツールの使用
  •     ping www.baidu.com -c 4 -s 600  //  icmp  ,      
    
        ps aux                          //      
        ps -e                           
    
        find / -name ping       //            ping   
    
        grep -r 'hello*' /tmp   // /tmp       'hello'     ,-r       
    
        top
        top -l 1 | head -n 10 | grep PhysMem  //          
        
        tcpdump -i en0 src host 192.168.1.137
        tcpdump -i en0 dst host 192.168.1.137
        tcpdump -w /tmp/ssh.cap -i en0 tcp port 22 and dst host 192.168.1.137
        tcpdump -w /tmp/ssh.cap -i en0 -t -s 0 -c 100 tcp port ! 22 and dst host 192.168.1.137
            :
         (1)-w /tmp/ssh.cap :    cap  ,   ethereal( wireshark)  
         (2)-i en0 :       en0  
         (3)-t :       
         (4)-s 0 :              68  。  -S 0            
         (5)-c 100 :    100    
         (6) tcp port ! 22  :   tcp  22    
         (7) dst port ! 22 :         22    
         (8)dst host 192.168.1.137 :        192.168.1.137  
         (9)src net 192.168.1.0/24 :           192.168.1.0/24
    

    3.iOSファイルシステム構造
  • 可視化方式iOSシステムファイルをよく見る==iOSではCydiaを介してApple File Conduit 2をインストールし、OS XでiFunBoxを使用してiOSシステムファイル(iOSとOS Xは1つのローカルエリアネットワークに接続する必要がある)==
  • SSHリモートログインiOSによる
  • の表示
  • Filesystem Hierarchy Standardファイルシステム階層化基準(以下、FHSと略す)=FHSはクラスUNIXオペレーティングシステムのファイルディレクトリ構造のために、ユーザーにファイルまたはディレクトリの格納場所を予知させるための基準を制定した.UNIXオペレーティングシステムの一般的なディレクトリ構造を以下に示します.==
       /:   ,     ,                。
    
       /bin:"binary"   ,                 , ls、ps 。
    
       /boot:               。iOS      。
    
       /dev:"device"   ,  BSD    。                   ,    ,“   ”         ,   ; “    ”          ,      。
    
       /sbin:"system binaries"   ,                 , netstat、reboot 。
    
       /etc:"Et Cetera"   ,           , passwd、hosts 。 iOS ,/etc       ,    /private/etc。
    
       /lib:       、          。iOS      。
    
       /mnt:"mount"   ,            。iOS      。
    
       /private:      ,   /private/etc /private/var。
    
       /tmp:    。 iOS ,/tmp       ,    /private/var/tmp。
    
       /usr:             。/usr/bin    /bin /sbin         , nm、killall ;/usr/include       C   ;/usr/lib     。
    
      /var:"variable"   ,           ,    、    、     。  /var/mobile /var/root     mobile   root     ,        。
    
  • UNIXシステムファイル権限概要(UNIXすべてファイル:通常ファイル、ディレクトリ、デバイス、socket、パイプ、CPU情報、プロセス情報など)
  • システムは、ファイルの権限を3ビット(bit)で表し、上位から下位までr(read)権限、w(write)権限、およびx(execute)権限である.ファイルとユーザの関係には、
  • の3つの可能性があります.
  • このユーザは、プライマリユーザ(ファイル所有者の権限)
  • である.
  • このユーザはプライマリユーザではないが、プライマリグループ(グループユーザ権限)
  • このユーザは、ホームユーザでもホームグループでもない(Otherユーザ権限)
  • .
    ```
    1111 1111  = 2^0*1 + 2^1*1 + 2^2*1 + 2^3*1 + ...+2^7*1 = 2^8 - 1 
    
    8421
    1111  = 8+4+2+1 = 15
    1011  = 8+2+1 = 11
    
    rwx      r-x    r--
    111      101    100 
                 
    
     3*3           ,      1,           ,    。  ,111101101  rwxr-xr-x,           r、w、x  ,             r x  ;  ,    111101101        755,            。
    
        chmod         ,  chmod  755  filename
    
    
    * iOS     
      ```
          /Applications:       App    Cydia App,    StoreApp。
    
          /Developer:        Xcode         ,Xcode   iOS       ,                 。
    
          /Library:             。  /Library/MobileSubstrate        CydiaSubstrate(  MobileSubstrate)   ( :tweak     )。
    
          /System/Library:iOS             ,        。
    
          /System/Library/Frameworks /System/Library/PrivateFrameworks:  iOS    framework
    
          /System/Library/CoreServices  SpringBoard.app:iOS     (   Windows  explorer),              。
    
          /User:    (    mobile   home  ),    /var/mobile,             ,  :
    
          /var/mobile/Media/DCIM     ;
    
          /var/mobile/Media/Recordings       ;
    
          /var/mobile/Library/SMS        ;
    
          /var/mobile/Library/Mail       。
          
          /var/mobile/Containers,  StoreApp。      ,App       bundle App            /var/mobile/Containers/Bundle /var/mobile/Containers/Data        。  /var/mobile/Containers/Data                 :NSString *directory = NSHomeDirectory(); //       
    
      ```
    
    
    * iOS  (Store App)    :
    - Application Bundle                
    

    iOS上の微信プログラムのBundleパスを取得する場合は、ps-e|grep appname Flongers-iPhone:/root#ps-e|grep WeChat 1368?5:41.43/var/mobile/Containers/Bundle/Application/749DC69A-3A8D-4B5C-9926-1220E69FC85F/WeChat.app/WeChat
  • Application Dataには、App実行生産のデータや構成情報など
  • が含む.
          iOS      Date  ,    cycript  
       Flongers-iPhone:~ root# cycript -p WeChat
       cy# directory = NSHomeDirectory()
       @"/var/mobile/Containers/Data/Application/986376B5-EF08-4CAF-81FB-CAE48D1FE4AE"
       cy# 
    
  • Dateディレクトリ構造は、
  • ```
    Flongers-iPhone:/var/mobile/Containers/Data/Application/986376B5-EF08-4CAF-81FB-CAE48D1FE4AE root# ls
    Documents/  Library/  tmp/
    ```
    
  • Documentは、アプリケーションの実行時に生成され、保存する必要があるデータを格納する.注意:iTunesまたはiCloud同期デバイスの場合、ディレクトリ
  • がバックアップされます.
  • Library/Cachesは、アプリケーションの実行時に生成され、保存する必要があるデータを格納します.iTunesまたはiCloudが同期していません.
  • Library/preferencesは、プリファレンス設定を保存します.iOSの設定設定(settings)アプリケーションも、そのディレクトリでアプリケーションの設定情報を検索します.NSUserDefaultsはこのディレクトリの下に保存されます.iTunesまたはiCloud同期デバイスの場合、このディレクトリをバックアップします.
  • tmpは、アプリケーションの実行時に必要な一時データを格納する.アプリケーションが実行されていない場合、iOSシステムはディレクトリの下のファイルを消去する可能性があります.しかし、このような自動消去メカニズムに依存してはならず、直ちに手動で消去しなければならない.