5.如果是mac機型,設置macOS Proxy

6.設置代理端口,默認值8888,可根據自己需要進行修改也可以不修改,並勾選Enable transparent HTTP proxying

WLAN而不是VPNxxx),確定,完成.
看唐巧的分析支付寶客戶端的插件機制一文發現他使用了抓包工具Charles。
搜了一下,發現大多數使用者都是將Charles作為移動端抓包工具使用的,這樣可以用Charles來截取iPhone/iPad上app所發出的網絡請求來進行分析,分析支付寶客戶端的插件機制一文就是這么用的。WireShark顯然做不到這一點,優勢一下子就體現出來了。
在Mac上安裝Charles后,啟動Charles,首先彈出一個框提示是否允許Charles有自動修改網絡設置的權限,選擇允許后出現Charles主界面。Charles主界面左側有Structure和Sequence,你會發現會發現Structure這一欄里會逐步出現當前我的mac正在請求的鏈接,也就是說Charles一啟動就自動進行抓包了。不過遺憾的是Structure欄里沒有過濾選項,意味着你不能過濾特定網站。切換到Sequence欄,這個就容易懂了,按時間順序來排列的,與WireShark一致。下方的Filter可以過濾,而是還是實時過濾的,這一點就比WireShark強多了。


如何在Mac上用Charles遠程抓iPhone上app的網絡請求呢?方法相當簡單,下面就提供了HTTP和HTTPS抓包的操作步驟,簡單幾步就搞定了。
HTTP抓包
- 打開Charles程序
- 查看Mac電腦的IP地址,如192.168.1.7
- 打開iOS設置,進入當前wifi連接,設置HTTP代理Group,將服務器填為上一步中獲得的IP,即192.168.1.7,端口填8888
- iOS設備打開你要抓包的app進行網絡操作
- Charles彈出確認框,點擊Allow按鈕即可
HTTPS抓包
- 下載Charles證書http://www.charlesproxy.com/ssl.zip,解壓后導入到iOS設備中(將crt文件作為郵件附件發給自己,再在iOS設備中點擊附件即可安裝;也可上傳至dropbox之類的網盤,通過safari下載安裝)
- 在Charles的工具欄上點擊設置按鈕,選擇Proxy Settings…
- 切換到SSL選項卡,選中Enable SSL Proxying,別急,選完先別關掉,還有下一步
- 這一步跟Fiddler不同,Fiddler安裝證書后就可以抓HTTPS網址的包了,Charles則麻煩一些,需要在上一步的SSL選項卡的Locations表單填寫要抓包的域名和端口,點擊Add按鈕,在彈出的表單中Host填寫域名,比如填api.instagram.com,Port填443
我簡單試用了一下Charles的遠程抓包功能,發現Charles比WireShark還有一個優勢是能對JSON數據(在JSON Text欄)進行解析,從而讓我們可以更直觀地查看JSON串信息(在JSON 欄)。此外Charles對中文支持比較好,JSON串中的中文信息一般會顯示為一長串的\ug開頭的字符,解析之后就能顯示出中文了。平常總頭痛Wireshark對中文支持不好,用Charles就完全沒有這個問題了。
