iOS逆方向カリキュラムノート(二)

6122 ワード

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 luz-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  
        luz-iphone:~ root# cycript -p WeChat
        cy# directory = NSHomeDirectory()
        @"/var/mobile/Containers/Data/Application/986376B5-EF08-4CAF-81FB-CAE48D1FE4AE"
        cy# 
    
    Date      :
    ```
    luz-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システムはディレクトリの下のファイルを消去する可能性があります.しかし、このような自動消去メカニズムに依存してはならず、直ちに手動で消去しなければならない.

  • 4.Cycriptツールの紹介(著者:saurik,公式サイト:http://www.cycript.org/)
  • Cycriptはスクリプト言語であり、Objective-JavaScriptと見なすことができ、関数効果のテストと検証を容易にすることができます.
  • は、脱獄携帯電話において、注入方式により第三者アプリケーションにおいて
  • を実行することができる.
  • 静的ライブラリでcycriptを自分のアプリケーションに統合することもできます(MonkeyDev、非脱獄iOSサードパーティのAppにプラグインを書くことができますが、権限は砂箱に制限されています)
  • 脱獄携帯にCycriptをインストール
  • CydiaでCycriptを検索インストール
  • apt-get install cycript

  • Cycript使用(サードパーティプロセススペースに注入)
  • Cycriptモジュールをサードパーティプロセス
  • に注入する.
     //         PID
     luz-iphone:/ root# ps -e | grep WeChat 
    

    1368 ?? 6:17.44/var/mobile/Containers/Bundle/Application/749DC69A-3A8D-4B5C-9926-1220E69FC85F/WeChat.app/WeChat
    //開け方1 luz-iphone:/root#cycript-p WeChat cy#
    //開け方2 luz-iphone:/root#cycript-p 1368 cy#
    
    -   cycript
     **Control+D**
    
    -     
      
    
    //WeChat  cycript -p WeChat
    [[UIApplication sharedApplication] setStatusBarHidden:YES]   //     
    [[UIApplication sharedApplication] setStatusBarHidden:NO]    //     
    
    [[[UIAlertView alloc]initWithTitle:@"Tanzhou" message:@"Hello luz" delegate:ni cancelButtonTitle:@"ok" otherButtonTitles:nil, nil] show]            //  
    
    [[UIApplication sharedApplication] setApplicationIconBadgeNumber:1000]   //  badge   
    [[UIApplication sharedApplication] setApplicationIconBadgeNumber:1]
    [[UIApplication sharedApplication] setApplicationIconBadgeNumber:0]
    [[UIApplication sharedApplication] setApplicationIconBadgeNumber:0]
    
    //SpringBroad cycript -p SpringBroad
    [[SBScreenShotter sharedInstance] saveScreenshot:YES]     ,  
    [[SBScreenShotter sharedInstance] saveScreenshot:NO]     ,   
    [[SBScreenFlash mainScreenFlasher] flashColor:[UIColor magentaColor] withCompletion:nil]