iOS 抓包利器 Charles(設置代理)


1.下載安裝包地址: https://www.charlesproxy.com/download/
2.下載當前版本破解文件charles.jar包,mac端平台在/Applications/Charles.app/Contents/Java目錄下替換已有的charles.jar包
3.打開工具charles
4.安裝pc端信任證書操作如下:

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

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

 

進入設置頁面:
7.手機安裝證書
手機按提示,訪問 http://charlesproxy.com/getssl,出現安裝證書提示,隨便打個名稱,選擇WLAN(這里 Android,一定要選 WLAN而不是VPNxxx),確定,完成.
8.設置請求鏈接地址,操作如下:
 
 
進入設置:
9.手機鏈接pc端ip和charle設置的端口進行代理,查看請求,操作如下:
 
 
10.手機打開app,即可查看網絡請求日志
 

看唐巧的分析支付寶客戶端的插件機制一文發現他使用了抓包工具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就完全沒有這個問題了。

參考資料: 
使用Charles遠程調試iOS移動應用 
mac下的抓包工具Charles


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM