作為目前Android平臺最強大的抓包工具,HttpCanary從設計之初就規劃了外掛功能(2.6.0版本之前稱為‘模組’)。基於NetBare框架的虛擬閘道器-攔截器設計,HttpCanary可以實現非常多的擴充套件功能,比如Host遮蔽、IP遮蔽等。我將一些擴充套件功能都以外掛的形式,整合到HttpCanary中,既互相獨立又相互作用,最典型的就是靜態注入器。
這篇文章將詳細介紹下HttpCanary內建的各種神奇外掛,包括如何使用以及使用場景。
使用條件
HttpCanary版本 v2.6.0+
複製程式碼
外掛安裝
HttpCanary -> 設定 -> 外掛管理 -> 右上角+號 -> 外掛倉庫
複製程式碼
外掛1:Host遮蔽
利用Host遮蔽外掛,我們可以遮蔽對指定Host或者伺服器IP的Http請求,比如遮蔽廣告請求等。
1.1 使用方式
建立一個名為hosts.txt的文字檔案,將需要遮蔽的Host或者IP以一行一行的格式新增進去,然後複製到/HttpCanary/plugins/HostBlock/目錄下。比如:
www.hello.com
www.work.com
www.bug.com:8080
複製程式碼
除了Host,也可以加入IP地址:
10.11.12.13
10.10.10.10
123.123.123.123
複製程式碼
當然,還可以Host和IP混著寫:
www.hello.com
10.11.12.13
10.10.10.10
www.work.com
123.123.123.123
www.bug.com:8080
複製程式碼
1.2 注意事項
Host後面有些情況下需要加入埠號,具體可以到抓包內容總覽中檢視Host後面是否有埠號。
外掛2:MimeType遮蔽
和Host遮蔽類似,MimeType遮蔽外掛可以用來遮蔽指定型別的Mime-Type,但不同的是MimeType遮蔽外掛的遮蔽功能分為上行遮蔽和下行遮蔽,即可以配置遮蔽請求或者遮蔽響應。
什麼是MimeType?它是一種包含在Http頭部的Content-Type中的資料,用來標識資料型別,比如圖片、Json、Html等,各種MimeType的定義請點這裡!
2.1 使用方式
如果要遮蔽包含指定MimeType的請求,建立一個名為req-mimes.txt的文字檔案,將需要遮蔽的MimeType以一行一行的格式新增進去,然後複製到/HttpCanary/plugins/MimeTypeBlock/目錄下。如果是要遮蔽響應,則文字檔名應為res-mimes.txt。
比如說我要遮蔽一些視訊廣告,可以在res-mimes.txt中新增如下:
video/mp4
複製程式碼
這樣,所有mp4型別的資料響應都被HttpCanary遮蔽了,包括視訊廣告等。
2.2 外掛應用
下面以企鵝家的視訊應用為例,看一下視訊廣告的攔截效果。
首先,配置好外掛並啟用。簡單步驟如下:
- 開啟/HttpCanary/plugins/MimeTypeBlock目錄,編輯res-mimes.txt。
- 加入一行:video/mp4,然後儲存。
- 啟動首頁抓包開關按鈕。
準備好之後,開啟企鵝視訊應用,注意先把快取清理下,防止有本地廣告視訊快取。
來個效果圖:
開著HttpCanary的時候廣告已經load不出來了,遮蔽生效!
外掛3:圖片、音訊和視訊下載器
有的時候,我們希望能儲存某些圖片、視訊等媒體檔案並分享到微信好友或朋友圈,比如一段精彩的電影預告片等。但是一般情況下,網站或者應用只提供瀏覽的功能,不會提供下載或者儲存功能。這個時候HttpCanary的下載器外掛就派上用場了。
HttpCanary的下載器一共有三個,分別是圖片下載、音訊下載、視訊下載。原理都是通過檢測Http響應資料頭部中的Content-Type,從而判斷是否需要儲存響應資料。
下面以圖片下載器外掛為例。
3.1 使用方式
安裝好外掛後,直接在首頁開啟抓包按鈕。然後所有的圖片請求檔案都會自動儲存到/HttpCanary/plugins/ImageDownloader目錄下。
連任何Icon都不會放過!
外掛4:請求統計表
如果希望將所有抓包到的請求資訊,以Excel表的形式匯出,這個外掛就派上用場了!
請求資料統計的維度包括:
- Url
- 伺服器IP
- 協議
- 請求方法
- 響應碼
- 請求開始時間
- 請求響應時間
- 請求結束時間
- 請求資料大小(B)
- 響應資料大小(B)
- 耗時1(ms)
- 耗時2(ms)
其中包括一些請求時間維度,可以用來計算網路請求的平均耗時,是效能測試一款利器。
4.1 使用方式
安裝好外掛後,直接在首頁開啟抓包按鈕。當停止抓包後,會自動在/HttpCanary/plugins/StatsOverview目錄下生成本次抓包的Excel表格。
外掛5:微信定位漂移
微信定位漂移外掛是用來修改定位經緯度的,實現“蒙多想去哪兒就去哪兒”的功能。包括:聊天時傳送的地理位置,發朋友圈的地理位置。
5.1 使用方式
將經緯度按照 經度,緯度 的格式複製到貼上板上,比如可以利用百度地圖座標拾取系統獲取指定地點的經緯度(右上角直接複製即可)。完成後啟動首頁抓包按鈕。
測試效果的話,也可以使用長按上圖描述文案中的經緯度,然後複製。我們以116.41667,39.91667(北京王府井)為例,當然開發者本人是遠在深圳。
微信中傳送位置,顯示如下:
成功漂移!
再來看朋友圈的地理位置:
成功漂移!
外掛須知
由於每個外掛都是獨立的攔截器,且每個攔截器都會對網路流量進行分析探測,所以如果啟用的外掛過多,對效能是有一定的影響的,比如卡頓,訪問網路慢等。
另外,如果說只需要用到外掛功能,而不需要關心具體抓包內容,比如下載器、廣告遮蔽等。強烈建議在設定中開啟效能模式!
最後,關於外掛的啟用、禁用、刪除,均可以在設定->外掛管理->長按外掛來管理。
結語
如果您對HttpCanary有任何疑問或者建議,可以訪問HttpCanary Github並建立issue!
外掛的使用指南到此結束,感謝您的閱讀!