一:越獄環(huán)境的配置
1、關(guān)于iOS越獄(Jailbreak)
iOS越獄是指開(kāi)發(fā)者利用iOS系統(tǒng)的漏洞、獲取到iOS系統(tǒng)的最高權(quán)限(Root權(quán)限)、從而可以操作之前種種不能操作的限制
2、越獄的優(yōu)缺點(diǎn)
優(yōu)點(diǎn):自由安裝app、文件管理方便靈活、擁有個(gè)性化的iPhone
缺點(diǎn):不予保修、耗電增強(qiáng)、系統(tǒng)更新受限、安全性較差容易被惡意攻擊
3、關(guān)于完美越獄和不完美越獄
完美越獄:越獄后的手機(jī)可以正常的關(guān)機(jī)、重啟
不完美越獄:有兩種情況屬于手機(jī)不完美越獄的表現(xiàn)
1-手機(jī)重啟后之前已經(jīng)安裝的破解軟件都不能正常使用、出現(xiàn)閃退的情況
2-手機(jī)關(guān)機(jī)再開(kāi)機(jī)將一直停留在啟動(dòng)頁(yè)面,也就是所謂的“白蘋(píng)果”
關(guān)于越獄方法的推薦可以參考教程:越獄教程
4、關(guān)于如何查看手機(jī)是否越獄
1-界面顯示:看手機(jī)桌面上是否有Cydia

2-工具判斷:使用pp助手等軟件可以查看手機(jī)狀態(tài)信息顯示越獄狀態(tài)
3-代碼判斷:Bool類(lèi)型返回值
[[NSFileManager defaultManager] fileExistsAtPath:@"/Applications/Cydia.app"];
5、關(guān)于Cydia
1- Cydia可以認(rèn)為是越獄后的App Store,手機(jī)越獄之后可以通過(guò)Cydia來(lái)安裝各種第三方的軟件,如逆向開(kāi)發(fā)相關(guān)的各種插件、補(bǔ)丁等
2- 通過(guò)Cydia安裝軟件的步驟:
打開(kāi)Cydia--------->在軟件源中選擇編輯------->點(diǎn)擊左上角的添加按鈕------>輸入想要下載的軟件源的地址(如pp助手的為http://apr.25pp.com)-------->安裝后即可在列表中查看到自己添加的軟件源------->安裝需要的軟件
當(dāng)然,也可以選擇搜索軟件、然后進(jìn)行安裝
3- 有的軟件安裝后需要重啟手機(jī)桌面、這時(shí)候手機(jī)會(huì)出現(xiàn)“重啟 SpringBoard”的字樣,點(diǎn)擊重啟即可
6、常用必備軟件介紹
Mac端:
iFunBox:管理手機(jī)文件系統(tǒng)、電腦和手機(jī)連接后可以通過(guò)iFunBox來(lái)查看手機(jī)上的文件系統(tǒng)
PP助手:自由安裝或卸載各種app
iPhone端:
文件補(bǔ)?。?Apple File Conduct ''2'' ,可以訪問(wèn)整個(gè)iOS設(shè)備的文件系統(tǒng)
ipa補(bǔ)丁:AppSync Unified ,可以繞過(guò)系統(tǒng)驗(yàn)證、隨意安裝、運(yùn)行破解的ipa安裝包
二:逆向環(huán)境的配置
1、關(guān)于遠(yuǎn)程登錄
iOS和Mac OSX 都是基于Darwin開(kāi)源系統(tǒng)內(nèi)核的、Mac上可以使用終端來(lái)進(jìn)行操作、iOS同樣也可以。為了讓Mac終端的命令行能夠在iPhone上起作用、就要將兩者建立連接。而Mac正是通過(guò)遠(yuǎn)程登錄的方式來(lái)和iPhone建立連接的。
通常遠(yuǎn)程登錄有兩種途徑:OpenSSH、USB-SSH
2、SSH
Secure Shell 的縮寫(xiě),指安全外殼協(xié)議
使用SSH協(xié)議可以將所有的傳輸數(shù)據(jù)進(jìn)行加密、能防止DNS欺騙和IP欺騙
SSH的版本有兩種:SSH-1 和 SSH-2
較常用的是SSH-2,客戶(hù)端(Mac)和服務(wù)端(iPhone)的版本要保持一致
查看SSH版本 (配置文件的Protocol字段)
客戶(hù)端:/etc/ssh/ssh_config
服務(wù)端:/etc/ssh/sshd_config
1- OpenSSH 遠(yuǎn)程登錄步驟
Open SSH 是SSH的開(kāi)源版本,可以通過(guò)OpenSSH 的方式讓Mac遠(yuǎn)程登錄到iPhone
在iPhone上通過(guò)Cydia安裝OpenSSH工具,軟件源地址為?http://apt.saurik.com
SSH使用的是tcp協(xié)議,故而需要保證Mac和iPhone在同一局域網(wǎng)下
在Mac終端輸入指令:ssh 賬戶(hù)名@服務(wù)器ip地址
初始密碼為alpine, 退出指令為exit
登錄成功后就可以使用終端命令行來(lái)操作iPhone
2-常用賬戶(hù)root和mobile
root:最高權(quán)限的賬戶(hù),$Home是/var/root
mobile:普通權(quán)限賬戶(hù),智能操作一些普通文件,不能操作系統(tǒng)級(jí)別的文件,$Home是/var/mobile
登錄root賬戶(hù):ssh root@手機(jī)ip地址
登錄mobile賬戶(hù):ssh mobile@手機(jī)ip地址
root和mobile的初始登錄密碼均為alpine
修改密碼:root對(duì)應(yīng)命令為passwd,mobile對(duì)應(yīng)命令為passwd mobile
3- 關(guān)于USB-SSH登錄
通過(guò)端口映射實(shí)現(xiàn)登錄,具體如下:
首先下載usbmuxd工具包:地址?主要是使用python-client的tcprelay.py腳本文件
可以在下載后將版本號(hào)去掉直接存儲(chǔ)為usbmuxd文件名
然后將iPhone的22端口映射到Mac本地的自定義端口(只要不是保留端口就行)
終端輸入: cd ~/Downloads/usbmuxd/python-client
python tcprelay.py -t 22:18200 (此處的18200為我的自定義端口)
新開(kāi)終端窗口,進(jìn)行登錄:
ssh root@localhost -p 18200
在操作過(guò)程中注意要保持之前usbmuxd的終端任務(wù)一直運(yùn)行,否則將斷開(kāi)連接
4- SSH的通信過(guò)程
SSH的通信主要有三大步驟,分別是
建立安全連接-------->客戶(hù)端認(rèn)證--------->數(shù)據(jù)傳輸
建立連接的過(guò)程主要是為了確認(rèn)服務(wù)器身份信息是否正確,這個(gè)過(guò)程中服務(wù)區(qū)會(huì)把公鑰等相關(guān)信息傳輸過(guò)來(lái)、客戶(hù)端進(jìn)行存儲(chǔ) known_hosts
如果出現(xiàn)服務(wù)器地址更改,疑似有中間攻擊等,在確定連接對(duì)象正確的情況下、操作室刪除原來(lái)的公鑰文件:
ssh-keygen -R ip地址
或者是
vim known_hosts ?編輯模式下選中對(duì)應(yīng)行dd進(jìn)行刪除 :wq保存并退出 即可
客戶(hù)端認(rèn)證有兩種方式:基于密碼的驗(yàn)證和基于秘鑰的免密碼驗(yàn)證
秘鑰方式:
客戶(hù)端通過(guò) ssh-keygen -t rsa 生成公鑰、私鑰文件:id_rsa.pub 和 id_rsa?
將生成的公鑰文件追加到服務(wù)器的授權(quán)文件的尾部:ssh-copy-id 服務(wù)器地址
以上、基于秘鑰的免密碼登錄即可成功
再次輸入ssh root@手機(jī)ip地址 就可以成功登錄而不需要輸入密碼了。
以上就是本篇文章關(guān)于iOS逆向開(kāi)發(fā)的相關(guān)環(huán)境配置的內(nèi)容了。