iOS使用Charles(青花瓷)抓包並篡改返回資料圖文詳解,

來源:互聯網
上載者:User

iOS使用Charles(青花瓷)抓包並篡改返回資料圖文詳解,

寫本文的契機主要是前段時間有次用青花瓷抓包有一步忘了,在網上查了半天也沒找到寫的完整的教程,於是待問題解決後抽時間截了圖,自己寫一遍封存在部落格園中以便以後隨時查閱。

charles又名青花瓷,在iOS開發中的抓包中具有重要作用。最大的三點用處,一就是攔截別人軟體的發送的請求和後端介面,練習開發。二是自己後端返回的response攔截修改後再接收以達到測試臨界資料的作用。三寫指令碼重複攔截抓取別人的資料。(因為不太道德,本文不提第三點)

1.開始之前的準備工作

首先安裝一下這個軟體

這個相信很多人電腦裡應該都安裝了,沒安裝的搜charles破解版也能很容易搜到。如果沒安裝java環境,首次進入charles會提示讓你安裝java包得,直接給你連結是蘋果官網的,去下一個一鍵安裝就行了。

 安裝完成後先開啟,在進行下面操作。

然後去自己電腦的系統喜好設定-》網路-》選中現在連著的網(大部分人應該都是WiFi吧)可以查到自己這個電腦在現在這個wifi裡的IP地址,比如我現在這個就是192.168.0.105(建議最好用私人網路,用公司網路的話可能會有限制會出現沒反應的問題)

 

 

 

 

然後找到自己手機也連著這個同名的wifi,然後選中右邊的藍色i。

  

然後進入到了這個無線區域網路的進階設定頁面。進去之後拉到最下方,找到HTTP代理字樣。然後選中手動代理,並在伺服器中填自己電腦查到的ip地址,然後把連接埠調8888,最後點擊左上方返回。傳回值後系統會自動化佈建代理重新串連。

這時候你的手機上網的過程中就要經過你的電腦了。剛用手機開啟一個連網的程式,你的電腦上應該會顯示一個彈窗問你【allow】還是【deny】肯定不能拒絕啊就點allow吧。這個只有第一次才彈窗,圖沒截上,你到時候看見肯定能看懂的。點了同意之後你手機發出的每一個請求都會被攔截出痕迹。

 

2.攔截某個軟體的介面資料

拿網易新聞舉例,以前就練習這寫過網易新聞的項目,其中網易的介面全是用charles攔截的。攔截到了網易發請求時發的是什麼,然後在練習項目中需要擷取資料的地方也把這一串連結直接拿過來用即可。

當然這上面攔到的比較多,如果有過開發經驗的話應該能很快看出來右邊哪個是真正返回json資料的介面。或者一個一個點看內容也行啊。

比如選中一個url然後右鍵點擊copy。

放到瀏覽器地址欄裡打一下。能看到

這就說明這個介面是對的了。可以擷取到資料。然後可以給他轉化一下看的更清楚。雖然很多人都是用bash看,但我還是推薦一個網址http://www.w3cschool.cc/jsontool。轉JSON之後看的非常清晰。大部分軟體json整理後都是預設把大括弧全都開啟,而僅有這個網站是預設全給你把大括弧關上。想點哪個再點開,而且能知道字典裡有多少個索引值對,所以看著非常清晰。

到此就已經完成了一次完整的,拉取介面,和獲得資料。

這裡有兩點我想說下:

①就是如果這個App發的請求加密了或是RSA什麼的,這個就算攔截了你也弄不到資料。網易是沒有做任何加密,所以可以抓取到資料。以前試了攔截百度醫生的就不行。他設定的是一分鐘內能擷取到資料,超過了1分鐘這個複製過來的介面就取不到資料了。懷疑可能是用的HMAC方法加密,並且在裡面加入了時間判斷。32分和33分發出的請求經過編碼後是不一樣的,後台可能做了容錯,會把32分和31分都和你判斷下,只要有一個對上就讓你過,但是超過了整整一分鐘後是肯定擷取不到資料了。

②就是很多比較大型的網站,一般會開放一個開發人員平台,裡面註冊開發人員帳號後會向你公開一個介面文檔,你不用再去費事的攔截了。像新浪微博和福士點評都有開發人員平台。

 

3.更改返回資料來測試臨界情況。

這個是重點了。因為這種做法可以讓一個iOS前端的開發人員獨立完成測試而不用拉過來一個後端一起聯調。並且各種特殊維度,或是臨界的帳號也不用再去辛苦找了,僅僅自己在青花瓷上改來改去就可以達到效果了。比如這個地方如果返回了nil程式會不會崩,直接改response就行了。下面是具體操作方案。

開啟青花瓷切換成結構頁面

這裡可以看到斷點和調試資訊

    

然後找一個我們公司的頁面。這個頁面本來應該返回是這樣的:如右邊

你先正常的開啟這個頁面把玩幾下,這個青花瓷就會抓取很多介面和網域名稱分類了。在這裡找到你這個頁面所屬的網域名稱分類應該不難。然後打上斷點。這裡要注意是在網域名稱上打斷點而不是在下面的單個請求上打斷點。

再次用手機進入這個頁面,就會通過你剛才打斷點的那個網域名稱來請求資料,就會被斷點攔住,如所示。

右邊的資訊也很清晰,一開始可以編輯請求。如果點擊逐步執行,等一下相應回來了也可以編輯響應。

這裡的有好幾種查看的方式,但是推薦使用JSON Text看的比較清楚。 現在我們對攔截回來的資料進行修改,我把這些統計資料全改成999如

然後再次點擊下方的Execute逐步執行,更改後的資料就會像正常返回回來的資料那樣顯示到,APP的頁面上展示。

能來到這一步就說明已經完整的掌握了用青花瓷篡改返回資料測試App的技術。

 

這麼做的意義:

這裡只是簡單的更改了一些數字,在頁面顯示更加直觀。實際的操作中,你可以經常用來把某些值改為臨界情況以看到App在處理這些臨界狀況時的反應,這樣比找那些臨界資料的測試帳號成本要低得多。也可以把一些可能不會反回數值的欄位找到,直接將裡面的值刪成nil,看看會不會報異常等等。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.