Charle抓包与wireshark使用
今天就來看一下Mac上如何進行抓包,之前有一篇文章介紹了使用Fidder進行抓包
http://blog.csdn.net/jiangwei0910410003/article/details/19806999
不過可惜的是,Fidder使用C#開發的,所以就不能在Mac上使用了,不過還有另外一個抓包神器,就是Charles,它是Java開發的,所以跨平臺,不僅可以在Mac上使用,Linux以及Window下都是可以使用的,當然需要安裝JDK,才能運行,同時還有一個問題就是他是收費的。
一、下載
先到它的官網http://www.charlesproxy.com/可下載到最新版本,這個下載有點慢,我已經將它放到網盤中了:http://pan.baidu.com/s/1gdu0S4V
這個是3.9.3版本的,下載下來,安裝就不多說了,很easy....打開界面:
二、破解
不過這個收費的,那么接下來就開始破解吧,其實破解很簡單就是替換一個文件就可以了,可以在網上搜:Charles3.9.3破解的jar文件
這里我也是下載好了:http://pan.baidu.com/s/1i3gjEfj
下載下來之后我們就可以進行破解吧:
打開應用程序,選擇Charles,選擇顯示包內容:
然后點擊Contents->Resources->Java:?
然后將我們下載下來的charles.jar替換這里的charles.jar就可以了。然后再次打開Charles,就不會太提示30天使用期限了,破解搞定
三、抓包 下面來看一下如何進行抓包
第一、HTTP抓包 1、打開Charles程序 2、查看Mac電腦的IP地址,系統偏好設置->網絡就可以查看到了,比如我的ip地址是:192.168.1.7 3、打開iOS設置,進入當前wifi連接(Mac在一個局域網內),設置HTTP代理Group,將服務器填為上一步中獲得的IP,即192.168.1.7,端口填8888:?
4、iOS設備打開你要抓包的app進行網絡操作 5、Charles彈出確認框,點擊Allow按鈕即可
第二、HTTPS抓包
需要下載Charles證書http://www.charlesproxy.com/ssl.zip,解壓后導入到iOS設備中,這里我也是下載好了:
http://pan.baidu.com/s/1sjJiZYt,我們在iOS設備中使用safari打開這個鏈接:
?點擊打開:??點擊安裝:
再次點擊安裝,證書就安裝成功了
然后在Charles的工具欄上點擊Proxy按鈕,選擇Proxy Settings… 切換到SSL選項卡,選中Enable SSL Proxying,別急,選完先別關掉,還有下一步 這一步跟Fiddler不同,Fiddler安裝證書后就可以抓HTTPS網址的包了,Charles則麻煩一些,需要在上一步的SSL選項卡的Locations表單填寫要抓包的域名和端口,點擊Add按鈕,在彈出的表單中Host填寫域名,比如填api.instagram.com,Port填443
這時候我們打開網易app:?
就可以看到數據了,至此抓包工作就搞定了。
注意:當我們不抓包的時候,會將Charles關閉,這時候iOS是訪問不到網絡的,因為設置了代理(就是Charles),這時候需要將iOS中的代理關閉,這個是抓包時經常犯的錯。
?
?
Wireshark
rvictl -s afe72bbebab036ae562f1f3e392f22cfd350455f 對應生成的接口是 rvi0mac系統版本:mac 10.10 Yosemite
xcode版本:6.3.1
在追蹤bug或者分析借鑒其他公司的app通訊思路時,抓包這件事是非常有必要的。下面說說Wireshark怎么截獲iphone的數據包。
安裝wireshark
wireshark是依賴x11的,所以首先確認安裝了x11,mac自帶,可以打開升級一下。
前往-實用工具-x11,打開后點擊菜單欄上的x11,檢查更新 即可。中間提取包內容過程比較長,耐心等待。
下載Wireshark最新版,盡量去官網下載:
https://www.wireshark.org/download.html?(需要翻..)
安裝,安裝過程很簡單,一路下一步。
我這里下載的Wireshark 1.12.4 Intel 64,安裝后無法運行,網上說x11位置不對。控制臺執行:
sudo ln -s /opt/X11 /usr/X11
問題依舊。
沒辦法下載了一個XQuartz-2.7.7:
http://xquartz.macosforge.org/landing/
安裝,運行Wireshark。點完wireshark圖標等了10多分鐘,終于算是打開了,之后再打開就不需要等了。
抓iphone數據
想抓iphone的數據,首先需要讓iphone數據通過mac才行。看到網上很多設代理什么的方法,比較復雜,有的還要越獄。其實沒必要。只要鏈上數據線,然后在mac的終端執行:
rvictl -s iphone設備id
這時,所有iphone網絡流量都會經過iphone所鏈接的mac,并且iphone數據還是走自己的網絡,比如iphone鏈接在3g網絡,數據還是會通過3G收發,而不是通過mac的網絡。斷開連接:
rvictl -x iphone設備id
設備連接后,mac會出現一個對應的虛擬網絡接口,名字是rvi0(如果有多個iphone則累加,rvi1,rvi2…)
只要啟動Wireshark,監聽rvi接口就能抓到iPhone數據了,當然,也可以使用Wireshark以外的工具抓取或分析。
關于獲取iphone設備ID,可以使用xcode-windows-devices,選擇相應設備,右面設備信息的identifier里就是了。
?
轉載于:https://www.cnblogs.com/graveliang/p/5682299.html
總結
以上是生活随笔為你收集整理的Charle抓包与wireshark使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: keepalive的 nopreempt
- 下一篇: 向textarea元素输入限制长度的字符