Charles是一個HTTP代理服務器,HTTP監視器,反轉代理服務器,當程序連接Charles的代理訪問互聯網時,Charles可以監控這個程序發送和接收的所有數據。它允許一個開發者查看所有連接互聯網的HTTP通信,這些包括request, response和HTTP headers (包含cookies與caching信息)。
Charles主要功能:
-
支持SSL代理。可以截取分析SSL的請求。
-
支持流量控制。可以模擬慢速網絡以及等待時間(latency)較長的請求。
-
支持AJAX調試。可以自動將json或xml數據格式化,方便查看。
-
支持AMF調試。可以將Flash Remoting 或 Flex Remoting信息格式化,方便查看。
-
支持重發網絡請求,方便后端調試。
-
支持修改網絡請求參數。
-
支持網絡請求的截獲並動態修改。
-
檢查HTML,CSS和RSS內容是否符合W3C標准。
下面是過濾騰訊視頻廣告的步驟
1.首先在Proxy-->Proxy Settings中設置代理服務器的端口並允許所使用http代理
可以把Proxy下面的Windows Proxys關掉,不然會監控電腦的http請求.會有很多請求.
2.在手機wifi中使用代理,代理為使用charles電腦的ip和剛才配置的端口(888),這個操作必須讓電腦和手機在同一局域網內,不然手機找不到ip。
這樣子電腦就可以監控手機的請求了.
3.下面用手機上的騰訊視頻隨便點擊一個視頻,charles監控到這幾個請求.
4.點開每一個請求查看數據
最終找個一個返回json數據的請求,這個請求返回了adList以及一系列的廣告url,復制這些url在瀏覽器中就可以看到廣告啦,但是我們並不是來看廣告的.
5.過濾廣告的方法有兩種
方法一
第一種是右鍵那條請求-->Map Remote,然后配置如下
將這條請求轉發到127.0.0.1:12345上,實際上12345端口沒有開.所以請求一定會出錯就會出現這種狀況
發現不是請求而是請求
,請求轉發到請求不到的ip和端口上,這樣就無法獲取廣告的鏈接也就無法播放廣告,而強大的播放器自然不會因為廣告請求不到就崩掉了,它會選擇繼續播放視頻,然后這個就可以了.
方法二
選擇Tools-->Rewrite
配置一下要重寫的請求路徑
再配置一下要重寫的內容重寫response里面adList為adList111,這樣是為了請求到這個json數組后找不到adList這個屬性從而無法解析。
最后發現請求的結果從這個
變成了這個
其他抓包工具
WireShark是根據網卡抓包,抓的是走網卡發送的所有包,Charles只能抓Http協議和HTTPS協議的包,而Wireshark可以抓任何包。
Burp也是針對web的,同樣是Http和Https協議