Charles 抓包工具的簡單使用
當我們看到一些APP做的非常棒的時候,常常會有一種想要仿寫的衝動,但是往往人家的介面文件咱拿不到,所以沒法實現。
在這裡我想介紹一個軟體叫Charles,本軟體是專門用來抓包分析包的軟體,我們可以通過這個軟體拿到我們想要的一些資料進而實現,下面就簡單介紹一下這個軟體以及使用方法:
1、Charles 又叫青花瓷,在IOS 開發中常常用來抓包使用。我們可以用來攔截別人的軟體的傳送和請求的後端埠,欄位等,方便自己私下學習。
而且在自己開發的時候可以根據後端返回的response 攔截修改後再接收以便達到測試臨界資料的作用,其實如果你夠牛逼,還可以寫指令碼重複攔截抓取別人的資料進行分析。
2、安裝
安裝Charles 軟體的時候需要我們的mac首先是安裝了Java環境的,安裝完成後開啟,會自動預設監控我們本地計算機的網路活動的資料,但是我們需要做的是檢測移動端的資料所以需要把這兩項勾選去掉(Mac OS X Proxy , Mozilla Firefox Proxy)。
3、監測資料
首先我們需要手機和電腦在同一個網段下,也就是說我們需要在同一個路由器下,或者可以電腦分享無線給手機用,我們在mac的偏好設定網路中找到本級的ip,然後在iPhone中的無線網設定中找到HTTP 代理手動,在伺服器中輸入mac的iP,在埠中輸入8888,這樣我們開啟手機上的軟體就能看到Charles軟體提示allow 和 deny ,選擇allow 後就可以看到有資料了。我們可以通過每次上拉下拉重新整理獲得更多的資料資訊。
4、這裡我們就拿頭條作為實驗吧,先點選垃圾桶,刪除裡面的資料,然後重新整理首頁我們就能看到攔截到很多的資料,找到我們需要的資料(這個過程可能比較麻煩,自己根據經驗可以很輕鬆找到,也可以一個一個的看找到自己需要的),找到連結後貼上到瀏覽器就可以看到我們拿到的json資料,然後去網上找一個json解析器,就能看到我們需要的資料了,然後自己很據每一個欄位的進行仿寫一下軟體了。
注:有的APP的資料的進行了加密的,就算我們攔截到了也拿不到資料,所以一般不是資料特別敏感的的APP的資料我們都是能拿到的。
5、更改返回資料來進行測試臨界的情況:
通過Charles軟體可以讓我們一個iOS前端的開發人員獨立完成測試而不用拉過來一個後端進行一起的聯調,並且各種特殊的維度,或者是臨界賬號也不用辛苦去找了,僅僅在自己的青花瓷上改改就能達到效果了。比如我們這個地方返回了nil 程式會不會崩潰,直接修改response就可以了,下面可以簡單看一下操作過程:
把軟體切換到結構頁面(Structure),這裡可以看到斷點和除錯資訊:
然後找一個頁面。這個頁面本來應該返回是這樣的:如上圖上圖 你先正常的開啟這個頁面把玩幾下,這個青花瓷就會抓取很多介面和域名分類了。在這裡找到你這個頁面所屬的域名分類應該不難。然後打上斷點。這裡要注意是在域名上打斷點而不是在下面的單個請求上打斷點。
再次用手機進入這個頁面,就會通過你剛才打斷點的那個域名來請求資料,就會被斷點攔住,如下圖所示。
右邊的資訊也很清晰,一開始可以編輯請求。如果點選單步執行,等一下相應回來了也可以編輯響應。
這裡的有好幾種檢視的方式,但是推薦使用JSON Text看的比較清楚。 現在我們對攔截回來的資料進行修改,我把這些統計資料全改成999如下圖
然後再次點選下方的Execute單步執行,更改後的資料就會像正常返回回來的資料那樣顯示到,APP的頁面上展示。
這裡只是簡單的更改了一些數字,在頁面顯示更加直觀。實際的操作中,你可以經常用來把某些值改為臨界情況以看到App在處理這些臨界狀況時的反應,這樣比找那些臨界資料的測試賬號成本要低得多。也可以把一些可能不會反回數值的欄位找到,直接將裡面的值刪成nil,看看會不會報異常等等。