iOS逆向(一)-環(huán)境介紹和基本工具的使用

逆向有門檻楷扬,入坑需謹(jǐn)慎

==iOS逆向環(huán)境介紹==

本文越獄環(huán)境:iPhone6 iOS 10.0.2 (推薦使用iOS 8 )

===Drawin 體系===

Darwin是由蘋果電腦于2000年所釋出的一個開放原始碼操作系統(tǒng)。Darwin 是MacOSX 操作環(huán)境的操作系統(tǒng)成份误窖。蘋果電腦于2000年把Darwin 釋出給開放原始碼社群。

終端命令輸入uname -a顯示操作系統(tǒng)名稱:
gongyouqiangdeMacBook-Pro:~ Yochi$ uname -a
Darwin gongyouqiangdeMacBook-Pro.local 16.7.0 Darwin Kernel Version 16.7.0: Thu Jun 15 17:36:27 PDT 2017; root:xnu-3789.70.16~2/RELEASE_X86_64 x86_64

  • Darwin是一種類似unix的操作系統(tǒng)酵熙,他的核心XNU[1],XNU是一種混合式內(nèi)容結(jié)合了Mach[2]與BSD[3]兩種內(nèi)核

    • 主流的類unix:
      • Linux 由Linus Torvalds 研發(fā)的桅咆,代表發(fā)行版本CenOS王浴,Redhat斗遏,Ubuntu山卦,Debian,openWRT等
      • Mac OS X的Intel部分
      • freeBSD[4] 由加州大學(xué)伯克利分兴写危基于UNIX研發(fā)的(UNIX變種)
      • Solaris 由Sun(現(xiàn)在的Oracel) 開發(fā)的UNIX商業(yè)版本
  • BSD[3] 實現(xiàn)在Mach[2]的上層账蓉,這一層提供的API 支持了POSIX標(biāo)準(zhǔn)模型。在XNU中主要實現(xiàn)了一些高級的API與模塊

    • UNIX 進(jìn)程模型
      == e.g fork, vfork, wait, waitpid, exec等==

    • POSIX 線程模型即pthread逾一,以及相關(guān)的同步功能
      == e.g pthread_create, pthread_mutex(線程互斥鎖) ==

    • UNIX的用戶與組管理
      == e.g root用戶铸本,mobile用戶, chmod等==

    • 網(wǎng)絡(luò)協(xié)議棧(BSD Socket API),符合POSIX模型
      ==e.g socket(); bind(); listen(); accept();connect();
      gethostbyname(); gethostbyaddr()等伯克利套接字API

    • 文件系統(tǒng)/設(shè)備系統(tǒng)
      == e.g Filesystem Hierarchy Standard(文件系統(tǒng)層次化標(biāo)準(zhǔn))==

  • iOS, OSI, ISO 含義

    • iOS 蘋果公司開發(fā)的移動操作系統(tǒng)

    • OSI 是Open System Interconnection的縮寫嬉荆,意為開放式系統(tǒng)互聯(lián)归敬。OSI模型把網(wǎng)絡(luò)通信的工作分為7層酷含,分別是物理層鄙早、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層椅亚、傳輸層限番、會話層、表示層和應(yīng)用層呀舔。

    • ISO是國際標(biāo)準(zhǔn)化組織弥虐。上面的OSI模型由改組織制定。一般UNIX系統(tǒng)都基于符合POSIX標(biāo)準(zhǔn)和ISO C 標(biāo)準(zhǔn)

      • POSI表示可移植操作系統(tǒng)接口(Portable Operating System Interface)
      • ISO C 標(biāo)準(zhǔn)媚赖, C語言標(biāo)準(zhǔn)接口
  • 為什么要越獄霜瘪?

    • 突破iOS沙盒機制(sandbox)
      == 沙盒是一種安全機制,為運行中的程序提供隔離環(huán)境惧磺。沙盒在啟動的時候可以設(shè)置運行的程序是否可以訪問網(wǎng)絡(luò)颖对、文件、目錄等==
sandbox.jpg

==Cydia - 越獄iOS的軟件管理平臺==

Cydia 之父 - Jay Freeman(杰·弗里曼)

  • 越獄是合法的

  • 安裝OpenSSH磨隘,為電腦和越獄手機提供連接環(huán)境
    == 在Cydia中搜索OpenSSH并安裝缤底,這樣iOS上面就可以開啟SSH服務(wù)。SSH服務(wù)默認(rèn)綁定端口號22==

1番捂、使用SSH命令連接iOS个唧,默認(rèn)登錄密碼"alpine"

 iOS連接wifi,設(shè)置中可以看到ip地址设预,也可以改成靜態(tài)IP地址
  ssh -p 22 root@xx.xx.xx.xx      

Windows徙歼、UNIX和VMS系統(tǒng)使用SecureCRT這款理想工具連接運行。

iOS 10注意:(iOS 10以下按流程走)
=:)yalu102自帶了SSH
無需安裝OPENSSH,安裝了請先卸載
無需安裝OPENSSH魄梯,安裝了請先卸載
無需安裝OPENSSH呼股,安裝了請先卸載
=:)SSH連接不上画恰,在手機上安裝Mterminal(終端)以此輸入如下命令:

$su
默認(rèn)密碼:alpine
$ps aux|grep dropbear

(1)如果你看到的進(jìn)程沒有dropbear
輸入:
/usr/local/bin/dropbear -F -R -p 22
然后就可以連接了彭谁,重啟依然有效

(2)如果你看到進(jìn)程是這樣:/usr/local/bin/dropbear -F -R -p 127.0.0.1:22
意思是只能數(shù)據(jù)線重定向連接SSH,
如果你想改成WIFI可以訪問那么用Filza或iFile軟件進(jìn)入系統(tǒng)文件夾修改(一個個的app點擊進(jìn)去找到y(tǒng)alu102.app就可以了)
/private/var/containers/Bundle/Application/{UUID}/yalu102.app/dropbear.plist

把里面有個參數(shù)127.0.0.1:22改成22保存允扇,重啟手機即可

2缠局、使用scp命令可以傳輸文件

新建終端窗口輸入下列拷貝命令:

  拷貝本地文件到客戶端
   $scp  filename  root@xx.xx.xx.xx:/tmp                 
  從客戶端拷貝文件到本地
   $scp root@xx.xx.xx.xx:/tmp/filename  /tmp/   

scp傳文件時錯誤 scp: /usr/tools: not a regular file 不能成功傳送 
解決方案
1:有可能沒權(quán)限 chmod 777
2:  在使用scp時加上-r 參數(shù)scp -r [root@192.168.16.5:/usr/tools/xxxx](mailto:root@192.168.16.5:/usr/tools/xxxx)      

iOS 10注意修復(fù)SCP:(iOS 10以下按流程走)

你會發(fā)現(xiàn)yalu102自帶的SSH無法用WINSCP傳輸文件,因為缺少了scp
(1)cydia里面安裝wget
(2)在mterminal里面登陸root權(quán)限
(3)執(zhí)行以下命令
wget mila432.com/scp
ldid -S scp
chmod 777 scp
mv scp /usr/bin/scp

3考润、修改默認(rèn)密碼(cydia中OpenSSH有詳細(xì)說明)

passwd root
passwd mobile
  • 安裝包管理工具
    == 在Cydia中搜索 APT 0.6 Transitional并安裝 ==

1狭园、SSH登錄iPhone后,可在電腦終端輸入如下命令:

     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     【詳細(xì)顯示該軟件包的信息】

     apt-get clean                   【清除apt-get安裝的軟件包備份粥脚,可以釋放儲存空間窃肠,不影響軟件正常使用】

2、使用apt-get 安裝軟件包
== e.g 安裝traceroute ==

    發(fā)現(xiàn)找不到軟件包
    apt-get install traceroute
    
    如果不知道軟件包名稱刷允,也可以用關(guān)鍵字搜索
    apt-cache search traceroute
    
    apt-get install  network-cmds

3冤留、安裝必要的工具

    apt-get install  ping       //發(fā)送icmp報文,檢查網(wǎng)絡(luò)狀況
    
    apt-get install  ps         //查看進(jìn)程信息
    
    apt-get install  find       //查找文件
    
    apt-get install tcpdump     //抓包工具
    
    apt-get install top         //查看實施的進(jìn)程信息
    
    apt-get install vim         //文本編輯工具
    
    apt-get install  network-cmds   //-arp, ifconfig, netstat, route, traceroute

4树灶、工具的使用

ping www.baidu.com -c 4 -s 600
-c 數(shù)目:在發(fā)送指定數(shù)目的包后停止纤怒。
-s 字節(jié)數(shù):指定發(fā)送的數(shù)據(jù)字節(jié)數(shù),預(yù)設(shè)值是56天通,加上8字節(jié)的ICMP頭泊窘,一共是64ICMP數(shù)據(jù)字節(jié)

ps aux 指令
linux上進(jìn)程有5種狀態(tài):
1. 運行(正在運行或在運行隊列中等待)
2. 中斷(休眠中, 受阻, 在等待某個條件的形成或接受到信號)
3. 不可中斷(收到信號不喚醒和不可運行, 進(jìn)程必須等待直到有中斷發(fā)生)
4. 僵死(進(jìn)程已終止, 但進(jìn)程描述符存在, 直到父進(jìn)程調(diào)用wait4()系統(tǒng)調(diào)用后釋放)
5. 停止(進(jìn)程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號后停止運行運行)

1)ps a 顯示現(xiàn)行終端機下的所有程序,包括其他用戶的程序土砂。
2)ps -A   顯示所有程序州既。
3)ps c    列出程序時,顯示每個程序真正的指令名稱萝映,而不包含路徑吴叶,參數(shù)或常駐服務(wù)的標(biāo)示。
4)ps -e  此參數(shù)的效果和指定"A"參數(shù)相同序臂。
5)ps e   列出程序時蚌卤,顯示每個程序所使用的環(huán)境變量实束。
6)ps f    用ASCII字符顯示樹狀結(jié)構(gòu),表達(dá)程序間的相互關(guān)系逊彭。
7)ps -H    顯示樹狀結(jié)構(gòu)咸灿,表示程序間的相互關(guān)系。
8)ps -N   顯示所有的程序侮叮,除了執(zhí)行ps指令終端機下的程序之外避矢。
9)ps s     采用程序信號的格式顯示程序狀況。
10)ps S     列出程序時囊榜,包括已中斷的子程序資料审胸。
11)ps -t <終端機編號>  指定終端機編號,并列出屬于該終端機的程序的狀況卸勺。
12)ps u   以用戶為主的格式來顯示程序狀況砂沛。
13)ps x   顯示所有程序,不以終端機來區(qū)分曙求。
14)ps -l     較長,較詳細(xì)的顯示該PID的信息

在根目錄開始查找文件名為ping的文件
find / -name ping     

在/tmp目錄中查找包含'hello'字符的文件,-r表示包含子目錄
grep -r 'hello*' /tmp 

top命令:是Linux下常用的性能分析工具碍庵,能夠?qū)崟r顯示系統(tǒng)中各個進(jìn)程的資源占用狀況,類似于Windows的任務(wù)管理器悟狱。
顯示系統(tǒng)內(nèi)存使用情況
top -l 1 | head -n 10 | grep PhysMem 
       
tcpdump命令:用簡單的話來定義tcpdump静浴,就是:dump the traffic on a network,根據(jù)使用者的定義對網(wǎng)絡(luò)上的數(shù)據(jù)包進(jìn)行截獲的包分析工具芽淡。
tcpdump可以將網(wǎng)絡(luò)中傳送的數(shù)據(jù)包的“頭”完全截獲下來提供分析马绝。它支持針對網(wǎng)絡(luò)層豆赏、協(xié)議挣菲、主機、網(wǎng)絡(luò)或端口的過濾掷邦,并提供and白胀、or、not等邏輯語句來幫助你去掉無用的信息抚岗。

實用命令實例
默認(rèn)啟動
tcpdump
普通情況下或杠,直接啟動tcpdump將監(jiān)視第一個網(wǎng)絡(luò)接口上所有流過的數(shù)據(jù)包。

監(jiān)視指定網(wǎng)絡(luò)接口的數(shù)據(jù)包
tcpdump -i eth1
如果不指定網(wǎng)卡宣蔚,默認(rèn)tcpdump只會監(jiān)視第一個網(wǎng)絡(luò)接口向抢,一般是eth0,下面的例子都沒有指定網(wǎng)絡(luò)接口胚委⌒ 

監(jiān)視指定主機的數(shù)據(jù)包
打印所有進(jìn)入或離開sundown的數(shù)據(jù)包.

tcpdump host sundown
也可以指定ip,例如截獲所有210.27.48.1 的主機收到的和發(fā)出的所有的數(shù)據(jù)包

tcpdump host 210.27.48.1 
打印helios 與 hot 或者與 ace 之間通信的數(shù)據(jù)包

tcpdump host helios and \( hot or ace \)
截獲主機210.27.48.1 和主機210.27.48.2 或210.27.48.3的通信

tcpdump host 210.27.48.1 and \ (210.27.48.2 or 210.27.48.3 \) 
打印ace與任何其他主機之間通信的IP 數(shù)據(jù)包, 但不包括與helios之間的數(shù)據(jù)包.

tcpdump ip host ace and not helios
如果想要獲取主機210.27.48.1除了和主機210.27.48.2之外所有主機通信的ip包,使用命令:

tcpdump ip host 210.27.48.1 and ! 210.27.48.2
截獲主機hostname發(fā)送的所有數(shù)據(jù)

tcpdump -i eth0 src host hostname
監(jiān)視所有送到主機hostname的數(shù)據(jù)包

tcpdump -i eth0 dst host hostname
監(jiān)視指定主機和端口的數(shù)據(jù)包

如果想要獲取主機210.27.48.1接收或發(fā)出的telnet包亩冬,使用如下命

$tcpdump tcp port 23 and host 210.27.48.1
對本機的udp 123 端口進(jìn)行監(jiān)視 123 為ntp的服務(wù)端口
tcpdump udp port 123 

抓包結(jié)束命令:ctl+c


  1. XNU艘希,由蘋果電腦發(fā)展的操作系統(tǒng)內(nèi)核硼身,被使用于Mac OS X中。它是Darwin操作系統(tǒng)的一部份覆享,跟隨著Darwin一同作為自由及開放源代碼軟件被發(fā)布佳遂。XNU是X is Not Unix的縮寫。 ?

  2. Mach是一個由卡內(nèi)基梅隆大學(xué)開發(fā)的用于支持操作系統(tǒng)研究的操作系統(tǒng)內(nèi)核撒顿,為了用于操作系統(tǒng)之研究丑罪,特別是在分布式與并行運算上。是最早實現(xiàn)微核心操作系統(tǒng)的例子之一凤壁,是許多其它相似的項目的標(biāo)準(zhǔn)巍糯。 ? ?

  3. BSD (Berkeley Software Distribution伯克利軟件套件)是Unix的衍生系統(tǒng)客扎,在1977至1995年間由加州大學(xué)伯克利分校開發(fā)和發(fā)布的祟峦。歷史上, BSD曾經(jīng)被認(rèn)為是UNIX的一支——"BSD UNIX", 因為它和AT&T UNIX操作系統(tǒng)共享基礎(chǔ)代碼和設(shè)計徙鱼。在20世紀(jì)80年代宅楞,衍生出了許多變形的UNIX授權(quán)軟件。比較著名的如DEC的Ultrix及Sun公司的SunOS袱吆。1990年代厌衙,BSD很大程度上被System V4.x版以及OSF/1系統(tǒng)所取代,晚期BSD版本為幾個開源軟件開發(fā)提供了平臺并且一直沿用至今绞绒。今天婶希,“BSD”并不特指任何一個BSD衍生版本,而是類UNIX操作系統(tǒng)中的一個分支的總稱蓬衡。 ? ?

  4. FreeBSD是一種類UNIX操作系統(tǒng)喻杈,是由經(jīng)過BSD、386BSD和4.4BSD發(fā)展而來的Unix的一個重要分支狰晚。FreeBSD 為不同架構(gòu)的計算機系統(tǒng)提供了不同程度的支持筒饰。并且一些原來BSD UNIX的開發(fā)者后來轉(zhuǎn)到FreeBSD的開發(fā),使得FreeBSD在內(nèi)部結(jié)構(gòu)和系統(tǒng)API上和UNIX有很大的兼容性壁晒。由于FreeBSD寬松的法律條款瓷们,其代碼被好多其他系統(tǒng)借鑒包括蘋果公司的macOS,正因此由于MacOS X的UNIX兼容性秒咐,使得macOS獲得了UNIX商標(biāo)認(rèn)證谬晕。 ?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市携取,隨后出現(xiàn)的幾起案子攒钳,更是在濱河造成了極大的恐慌,老刑警劉巖歹茶,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件夕玩,死亡現(xiàn)場離奇詭異你弦,居然都是意外死亡,警方通過查閱死者的電腦和手機燎孟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進(jìn)店門禽作,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人揩页,你說我怎么就攤上這事旷偿。” “怎么了爆侣?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵萍程,是天一觀的道長。 經(jīng)常有香客問我兔仰,道長茫负,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任乎赴,我火速辦了婚禮忍法,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘榕吼。我一直安慰自己饿序,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布羹蚣。 她就那樣靜靜地躺著原探,像睡著了一般。 火紅的嫁衣襯著肌膚如雪顽素。 梳的紋絲不亂的頭發(fā)上咽弦,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天,我揣著相機與錄音戈抄,去河邊找鬼离唬。 笑死,一個胖子當(dāng)著我的面吹牛划鸽,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播戚哎,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼裸诽,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了型凳?” 一聲冷哼從身側(cè)響起丈冬,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎甘畅,沒想到半個月后埂蕊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體往弓,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年蓄氧,在試婚紗的時候發(fā)現(xiàn)自己被綠了函似。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡喉童,死狀恐怖撇寞,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情堂氯,我是刑警寧澤蔑担,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站咽白,受9級特大地震影響啤握,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜晶框,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一恨统、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧三妈,春花似錦畜埋、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至模燥,卻和暖如春咖祭,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蔫骂。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工么翰, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人辽旋。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓浩嫌,卻偏偏與公主長得像,于是被迫代替她去往敵國和親补胚。 傳聞我的和親對象是個殘疾皇子码耐,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,914評論 2 355

推薦閱讀更多精彩內(nèi)容