iOS逆記録(一)
8811 ワード
iOS逆環境の紹介
***脱獄環境:iphone 5 s iOS 8.3***
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」 scpコマンドを使用して、ファイル を転送できます.デフォルトパスワードの変更 インストールパッケージ管理ツールapt-get CydiaでAPT 0.6 Transitionalを検索してインストールする コマンド紹介 apt-getインストールパッケージe.gを使用してtraceroute をインストール取付必要工具 ツールの使用
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 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実行生産のデータや構成情報など が含む. Dateディレクトリ構造は、 Documentは、アプリケーションの実行時に生成され、保存する必要があるデータを格納する.注意:iTunesまたはiCloud同期デバイスの場合、ディレクトリ がバックアップされます. Library/Cachesは、アプリケーションの実行時に生成され、保存する必要があるデータを格納します.iTunesまたはiCloudが同期していません. Library/preferencesは、プリファレンス設定を保存します.iOSの設定設定(settings)アプリケーションも、そのディレクトリでアプリケーションの設定情報を検索します.NSUserDefaultsはこのディレクトリの下に保存されます.iTunesまたはiCloud同期デバイスの場合、このディレクトリをバックアップします. tmpは、アプリケーションの実行時に必要な一時データを格納する.アプリケーションが実行されていない場合、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システム
2.Cydia-脱獄iOSのソフトウェア管理プラットフォーム(Cydiaの父-Jay Freeman(ジェフリーマン))
ssh [email protected] //iOS wifi, ip , IP
scp filename [email protected]:/tmp //
scp [email protected]:/tmp/filename /tmp/ //
passwd root
passwd mobile
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 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ファイルシステム構造
/: , , 。
/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 Flongers-iPhone:/root#ps-e|grep WeChat 1368?5:41.43/var/mobile/Containers/Bundle/Application/749DC69A-3A8D-4B5C-9926-1220E69FC85F/WeChat.app/WeChat
iOS Date , cycript
Flongers-iPhone:~ root# cycript -p WeChat
cy# directory = NSHomeDirectory()
@"/var/mobile/Containers/Data/Application/986376B5-EF08-4CAF-81FB-CAE48D1FE4AE"
cy#
```
Flongers-iPhone:/var/mobile/Containers/Data/Application/986376B5-EF08-4CAF-81FB-CAE48D1FE4AE root# ls
Documents/ Library/ tmp/
```