只能抓 http(s) 的包,不能抓自定義協(xié)議的包,如果要分析到更底層的包,像TLS handShake 這種就沒辦法了

創(chuàng)新互聯(lián)建站是一家專業(yè)提供望都企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計、網(wǎng)站制作、H5技術(shù)、小程序制作等業(yè)務(wù)。10年已為望都眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進行中。
功能相對強大一些,可以針對某個網(wǎng)卡抓到所有的的數(shù)據(jù)包,類似于 tcpdump, 也可以抓自定義協(xié)議的包,可以分析到 TLS handShake 包
iOS 5 之后, iPhone 帶了一個 Remote Virtual Interface (RVI) 功能,我們可以通過 RVI 把數(shù)據(jù)從 iOS 設(shè)備上轉(zhuǎn)發(fā)到我們 Mac 機器上的一個虛擬網(wǎng)卡
連接手機到電腦上, 獲取到設(shè)備的 UUID,Xcode-Window- Devices And simulators
在命令行中查看當(dāng)前已有網(wǎng)絡(luò)接口
接下來使用 rvictl 創(chuàng)建虛擬網(wǎng)絡(luò)接口
再次查看網(wǎng)絡(luò)接口
可以看到虛擬接口已經(jīng)創(chuàng)建成功。
虛擬網(wǎng)絡(luò)接口已經(jīng)創(chuàng)建完畢,接下來使用抓包工具抓到原始包分析
RVI 設(shè)置好以后,我們可以在 Mac 上直接利用 tcpdump 查看數(shù)據(jù)包。
輸入完密碼后可以,抓包已經(jīng)可以開始
按下 Ctrl + G 可以結(jié)束抓包
tcpdump 很強大,但是可讀性不太高,我們嘗試用Wireshark 分析原始數(shù)據(jù)包。
AirPlay 是Apple 私密協(xié)議,但也被很多商業(yè)破解收費,但每個版本 Apple 都有可能再加密一次,這邊有一份 non-official AirPlay 協(xié)議,大致描述了 AirPlay 的一個過程, non-official AirPlay protocol , 接下來看一下 iOS 12 上 AirPlay 協(xié)議
工具: airServer 可以將 手機通過 AirPlay 投到 mac 上
以下分析過程都采用 wireShark
啟動 wireShark
選擇抓 rvi0 網(wǎng)絡(luò)接口數(shù)據(jù),點擊開始
airplay 非正式版的協(xié)議
發(fā)送端 :30.40.200.4
接收端:30.40.202.17
我們在 wireShark 上看下具體原始數(shù)據(jù)包:
30.40.200.4 -- 30.40.202.17
發(fā)送端向接收端查詢AirPlay 和 RAOP 的信息,拿到數(shù)據(jù)包原文如下:
接收端回復(fù)數(shù)據(jù)包:
30.40.202.17 -- 30.40.200.4
里面包含了很的信息我們都可以解析。
實現(xiàn)iOS應(yīng)用底層所有網(wǎng)絡(luò)請求攔截(如ajax請求攔截),包含http-dns解決方法,有效防止DNS劫持,用于分析http,https請求,禁用/允許代理,防抓包
用到第三方庫 ZXRequestBlock
1,安裝
通過CocoaPods安裝
手動導(dǎo)入
將ZXRequestBlock拖入項目中。
導(dǎo)入頭文件
使用方法
攔截全局請求
禁止網(wǎng)絡(luò)代理抓包(開啟后將無法通過網(wǎng)絡(luò)代理抓包,通過Thor,Charles,Burp等均無法抓取此App的包,且在代理網(wǎng)絡(luò)下App內(nèi)部請求不受任何影響)
允許網(wǎng)絡(luò)代理抓包【默認為允許】
啟用HTTPDNS(將會直接從本地或 進行DNS解析,是一種避免DNS劫持的措施)
關(guān)閉HTTPDNS【默認為關(guān)閉】
禁止所有網(wǎng)絡(luò)請求
恢復(fù)所有網(wǎng)絡(luò)請求
本地開發(fā)項目的時候,我們可以通過谷歌瀏覽器的debug模式來看request以及response的數(shù)據(jù),但是如果我們開發(fā)移動端真機項目呢?或者真機線上出現(xiàn)問題如何抓取數(shù)據(jù)查看接口入?yún)⒑统鰠⒛兀窟@就需要用到“抓包”
抓包就是通過工具抓取應(yīng)用的接口數(shù)據(jù)然后通過分析數(shù)據(jù)得出問題結(jié)論的一種常用的工作方法。下面簡述一下在iOS上面安裝Charles并且實現(xiàn)抓包的過程,抓取范圍包括web/APP內(nèi)嵌web/小程序原生/小程序內(nèi)嵌web等
【1】獲取PC的IP地址和端口
在Charles菜單欄 - Help - Local IP Address中可以查看PC的IP地址。
一般Charles端口是默認的8888,可以從Charles菜單欄 - Proxy - Proxy Settings查看
【2】配置iPhone代理
設(shè)置 - 無線局域網(wǎng) - 局域網(wǎng)信息(i) - 配置代理 - 手動
在配置iPhone代理完畢后,就可以通過Structure或者Sequence窗口預(yù)覽HTTP請求的數(shù)據(jù)了。但由于HTTPS請求被加密過,預(yù)覽請求時只能預(yù)覽到亂碼數(shù)據(jù)。要預(yù)覽到HTTPS請求的數(shù)據(jù)明文,需要PC和iPhone安裝證書授權(quán)。
【1】PC安裝證書
在Charles菜單欄 - Help - SSL Proxying - Install Charles Root Certificate中可以為PC安裝證書
這樣,就可以使用Charles中抓包iPhone發(fā)出的HTTPS請求并預(yù)覽明文數(shù)據(jù)了。
【3】 啟動抓包SSL權(quán)限
在Charles菜單欄 - Proxy - SSL Proxying Settings中勾選Enable SSL Proxying,然后在Locations中添加需要抓包的Host和Port即可。或者直接寫*端口寫443圖示如下:
可以抓取對應(yīng)添加的域名的Https的接口的數(shù)據(jù)
app開發(fā)中會遇到接口抓包的需求,可以使用三方抓包工具charles、mitmproxy 進行抓包。
抓包前,請做一下設(shè)置。
mitmproxy
4.安裝證書,手機瀏覽區(qū)訪問 mitm.it
我先擇apple 安裝,安裝完成后需要信任證書。通用-關(guān)于本機-證書信任設(shè)置 信任mimtproxy證書。
charles
實現(xiàn)iOS應(yīng)用底層所有網(wǎng)絡(luò)請求攔截(如ajax請求攔截),包含http-dns解決方法,有效防止DNS劫持,用于分析http,https請求,禁用/允許代理,防抓包
用到第三方庫 ZXRequestBlock
1,安裝
通過CocoaPods安裝
pod 'ZXRequestBlock'
手動導(dǎo)入
將ZXRequestBlock拖入項目中。
導(dǎo)入頭文件
使用方法
攔截全局請求
[ZXRequestBlock handleRequest:^NSURLRequest *(NSURLRequest *request) {
//攔截回調(diào)在異步線程
NSLog(@"攔截到請求-%@",request);
dispatch_async(dispatch_get_main_queue(), ^{
self.blockTv.text = [self.blockTv.text stringByAppendingString:[NSString stringWithFormat:@"攔截到請求--%@\n",request]];
});
//在這里可以將request賦值給可變的NSURLRequest,進行一些修改(例如根據(jù)request的url過濾單獨對一些請求的請求體進行修改等)然后再return,達到修改request的目的。
return request;
}];
禁止網(wǎng)絡(luò)代理抓包(開啟后將無法通過網(wǎng)絡(luò)代理抓包,通過Thor,Charles,Burp等均無法抓取此App的包,且在代理網(wǎng)絡(luò)下App內(nèi)部請求不受任何影響)
[ZXRequestBlock disableHttpProxy];
允許網(wǎng)絡(luò)代理抓包【默認為允許】
[ZXRequestBlock enableHttpProxy];
啟用HTTPDNS(將會直接從本地或 進行DNS解析,是一種避免DNS劫持的措施)
[ZXRequestBlock enableHttpDns];
關(guān)閉HTTPDNS【默認為關(guān)閉】
[ZXRequestBlock disableHttpDns];
禁止所有網(wǎng)絡(luò)請求
[ZXRequestBlock cancelAllRequest];
恢復(fù)所有網(wǎng)絡(luò)請求
[ZXRequestBlock resumeAllRequest];
iOS是由蘋果公司開發(fā)的移動操作系統(tǒng)。蘋果公司最早于2007年1月9日的Macworld大會上公布這個系統(tǒng),最初是設(shè)計給iPhone使用的,后來陸續(xù)套用到iPod touch、iPad以及Apple TV等產(chǎn)品上。下面是我收集整理的ios開發(fā)用Charles進行抓包的方法,歡迎閱讀。
ios開發(fā)用Charles進行抓包的方法
首先,我們可以去一些網(wǎng)站下載安裝一下這個軟件。安裝完畢后, 我們能看到這個漂亮的青花瓷。
現(xiàn)在,我們需要將我們的電腦配置成手機的.代理服務(wù)器,這樣才能讓我們的 MAC 順利的攔截到手機軟件的網(wǎng)絡(luò)接口。我們先看一下自己的電腦ip。
在系統(tǒng)偏好設(shè)置 -- 網(wǎng)絡(luò) -- 查看當(dāng)前 IP。
然后我們來配置一下手機網(wǎng)絡(luò)設(shè)置,前提是你要確保你的手機和你的電腦在同一個局域網(wǎng)中。打開手機無線網(wǎng)的配置。就是點擊這個圖標(biāo)。
接著,我們就看到配置頁面啦,找到到代理這個欄目,選擇“手動”,在服務(wù)器一項,填寫剛才查看的電腦的ip,這里就是10.930.93.115,端口添加8888,然后返回就行了。
接著,我們在電腦上打開 Charles。然后配置一下,主要是配置端口,按照圖示點擊。
然后,在彈出框中找到端口,輸入8888,和你手機輸入的端口號保持一致。
到這里,配置就完成了。現(xiàn)在你可以打開你的手機進行上網(wǎng),這是會看到Charles 在刷刷的顯示數(shù)據(jù),并在右側(cè)面板中以黃色字體顯示出來。
分享文章:ios開發(fā)抓包,ios軟件抓包教程
文章分享:http://chinadenli.net/article49/dsggeeh.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、品牌網(wǎng)站制作、、微信小程序、定制開發(fā)、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)