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,看看會不會報異常等等。

發佈了84 篇原創文章 · 獲贊 23 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章