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オペレーティングシステムの一般的なディレクトリ構造を以下に示します.== UNIXシステムファイル権限概要(UNIXすべてファイル:通常ファイル、ディレクトリ、デバイス、socket、パイプ、CPU情報、プロセス情報など) システムは、ファイルの権限を3ビット(bit)で表し、上位から下位までr(read)権限、w(write)権限、およびx(execute)権限である.ファイルとユーザの関係には、 の3つの可能性があります.このユーザは、プライマリユーザ(ファイル所有者の権限) である.このユーザはプライマリユーザではないが、プライマリグループ(グループユーザ権限) このユーザは、ホームユーザでもホームグループでもない(Otherユーザ権限) .
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 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モジュールをサードパーティプロセス に注入する.
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#
/: , , 。
/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 , 。
```
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/
```
4.Cycriptツールの紹介(著者:saurik,公式サイト:http://www.cycript.org/)
// 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]