国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

iOS使用Charles(青花瓷)抓包并篡改返回?cái)?shù)據(jù)圖文詳解

2019-11-14 18:05:21
字體:
供稿:網(wǎng)友

寫本文的契機(jī)主要是前段時間有次用青花瓷抓包有一步忘了,在網(wǎng)上查了半天也沒找到寫的完整的教程,于是待問題解決后抽時間截了圖,自己寫一遍封存在博客園中以便以后隨時查閱。

charles又名青花瓷,在iOS開發(fā)中的抓包中具有重要作用。最大的三點(diǎn)用處,一就是攔截別人軟件的發(fā)送的請求和后端接口,練習(xí)開發(fā)。二是自己后端返回的response攔截修改后再接收以達(dá)到測試臨界數(shù)據(jù)的作用。三寫腳本重復(fù)攔截抓取別人的數(shù)據(jù)。(因?yàn)椴惶赖拢疚牟惶岬谌c(diǎn))

1.開始之前的準(zhǔn)備工作

首先安裝一下這個軟件

這個相信很多人電腦里應(yīng)該都安裝了,沒安裝的搜charles破解版也能很容易搜到。如果沒安裝java環(huán)境,首次進(jìn)入charles會提示讓你安裝java包得,直接給你鏈接是蘋果官網(wǎng)的,去下一個一鍵安裝就行了。

 安裝完成后先打開,在進(jìn)行下面操作。

然后去自己電腦的系統(tǒng)偏好設(shè)置-》網(wǎng)絡(luò)-》選中現(xiàn)在連著的網(wǎng)(大部分人應(yīng)該都是WiFi吧)可以查到自己這個電腦在現(xiàn)在這個wifi里的ip地址,比如我現(xiàn)在這個就是192.168.0.105(建議最好用私人網(wǎng)絡(luò),用公司網(wǎng)絡(luò)的話可能會有限制會出現(xiàn)沒反應(yīng)的問題)

注意: 這里, 如果你用的是黑蘋果, 沒有無線可以連接, 你可以把你本機(jī)ip設(shè)置和手機(jī)所連接的無線網(wǎng)為一個內(nèi)容頻段,  比如: 路由器 ip : 192.168.15.1  那么我的主機(jī)ip: 192.168.15.100 ,就可以把上面圖中的ip換為本機(jī)ip  一樣可以抓包.   

 

 

 

然后找到自己手機(jī)也連著這個同名的wifi,然后選中右邊的藍(lán)色i。

  

然后進(jìn)入到了這個無線局域網(wǎng)的高級設(shè)置頁面。進(jìn)去之后拉到最下方,找到HTTP代理字樣。然后選中手動代理,并在服務(wù)器中填自己電腦查到的ip地址,然后把端口調(diào)8888,最后點(diǎn)擊左上角返回。返回值后系統(tǒng)會自動設(shè)置代理重新連接。

這時候你的手機(jī)上網(wǎng)的過程中就要經(jīng)過你的電腦了。剛用手機(jī)打開一個聯(lián)網(wǎng)的程序,你的電腦上應(yīng)該會顯示一個彈窗問你【allow】還是【deny】肯定不能拒絕啊就點(diǎn)allow吧。這個只有第一次才彈窗,圖沒截上,你到時候看見肯定能看懂的。點(diǎn)了同意之后你手機(jī)發(fā)出的每一個請求都會被攔截出痕跡。

 

2.攔截某個軟件的接口數(shù)據(jù)

拿網(wǎng)易新聞舉例,以前就練習(xí)這寫過網(wǎng)易新聞的項(xiàng)目,其中網(wǎng)易的接口全是用charles攔截的。攔截到了網(wǎng)易發(fā)請求時發(fā)的是什么,然后在練習(xí)項(xiàng)目中需要獲取數(shù)據(jù)的地方也把這一串鏈接直接拿過來用即可。

當(dāng)然這上面攔到的比較多,如果有過開發(fā)經(jīng)驗(yàn)的話應(yīng)該能很快看出來右邊哪個是真正返回json數(shù)據(jù)的接口。或者一個一個點(diǎn)看內(nèi)容也行啊。

比如選中一個url然后右鍵點(diǎn)擊copy。

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

這就說明這個接口是對的了。可以獲取到數(shù)據(jù)。然后可以給他轉(zhuǎn)化一下看的更清楚。雖然很多人都是用bash看,但我還是推薦一個網(wǎng)址http://www.w3cschool.cc/jsontool。轉(zhuǎn)JSON之后看的非常清晰。大部分軟件json整理后都是默認(rèn)把大括號全都打開,而僅有這個網(wǎng)站是默認(rèn)全給你把大括號關(guān)上。想點(diǎn)哪個再點(diǎn)開,而且能知道字典里有多少個鍵值對,所以看著非常清晰。

到此就已經(jīng)完成了一次完整的,拉取接口,和獲得數(shù)據(jù)。

這里有兩點(diǎn)我想說下:

①就是如果這個App發(fā)的請求加密了或是RSA什么的,這個就算攔截了你也弄不到數(shù)據(jù)。網(wǎng)易是沒有做任何加密,所以可以抓取到數(shù)據(jù)。以前試了攔截百度醫(yī)生的就不行。他設(shè)置的是一分鐘內(nèi)能獲取到數(shù)據(jù),超過了1分鐘這個復(fù)制過來的接口就取不到數(shù)據(jù)了。懷疑可能是用的HMAC方法加密,并且在里面加入了時間判斷。32分和33分發(fā)出的請求經(jīng)過編碼后是不一樣的,后臺可能做了容錯,會把32分和31分都和你判斷下,只要有一個對上就讓你過,但是超過了整整一分鐘后是肯定獲取不到數(shù)據(jù)了。

②就是很多比較大型的網(wǎng)站,一般會開放一個開發(fā)者平臺,里面注冊開發(fā)者賬號后會向你公開一個接口文檔,你不用再去費(fèi)事的攔截了。像新浪微博和大眾點(diǎn)評都有開發(fā)者平臺。

 

3.更改返回?cái)?shù)據(jù)來測試臨界情況。

這個是重點(diǎn)了。因?yàn)檫@種做法可以讓一個iOS前端的開發(fā)人員獨(dú)立完成測試而不用拉過來一個后端一起聯(lián)調(diào)。并且各種特殊維度,或是臨界的賬號也不用再去辛苦找了,僅僅自己在青花瓷上改來改去就可以達(dá)到效果了。比如這個地方如果返回了nil程序會不會崩,直接改response就行了。下面是具體操作方案。

打開青花瓷切換成結(jié)構(gòu)頁面

這里可以看到斷點(diǎn)和調(diào)試信息

    

然后找一個我們公司的頁面。這個頁面本來應(yīng)該返回是這樣的:如上圖右邊

你先正常的打開這個頁面把玩幾下,這個青花瓷就會抓取很多接口和域名分類了。在這里找到你這個頁面所屬的域名分類應(yīng)該不難。然后打上斷點(diǎn)。這里要注意是在域名上打斷點(diǎn)而不是在下面的單個請求上打斷點(diǎn)。

再次用手機(jī)進(jìn)入這個頁面,就會通過你剛才打斷點(diǎn)的那個域名來請求數(shù)據(jù),就會被斷點(diǎn)攔住,如下圖所示。

右邊的信息也很清晰,一開始可以編輯請求。如果點(diǎn)擊單步執(zhí)行,等一下相應(yīng)回來了也可以編輯響應(yīng)。

這里的有好幾種查看的方式,但是推薦使用JSON Text看的比較清楚。 現(xiàn)在我們對攔截回來的數(shù)據(jù)進(jìn)行修改,我把這些統(tǒng)計(jì)數(shù)據(jù)全改成999如下圖

然后再次點(diǎn)擊下方的Execute單步執(zhí)行,更改后的數(shù)據(jù)就會像正常返回回來的數(shù)據(jù)那樣顯示到,APP的頁面上展示。

能來到這一步就說明已經(jīng)完整的掌握了用青花瓷篡改返回?cái)?shù)據(jù)測試App的技術(shù)。

 

這么做的意義:

這里只是簡單的更改了一些數(shù)字,在頁面顯示更加直觀。實(shí)際的操作中,你可以經(jīng)常用來把某些值改為臨界情況以看到App在處理這些臨界狀況時的反應(yīng),這樣比找那些臨界數(shù)據(jù)的測試賬號成本要低得多。也可以把一些可能不會反回?cái)?shù)值的字段找到,直接將里面的值刪成nil,看看會不會報(bào)異常等等。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 柳江县| 赣榆县| 和硕县| 山阳县| 田东县| 洪湖市| 绍兴县| 杂多县| 许昌县| 北流市| 丰宁| 轮台县| 彩票| 西乌珠穆沁旗| 台安县| 平南县| 玉环县| 昌都县| 佳木斯市| 海晏县| 建昌县| 炎陵县| 安泽县| 西畴县| 宿州市| 晋宁县| 民丰县| 云浮市| 青州市| 嘉义县| 柏乡县| 蓬莱市| 沈阳市| 丹东市| 泌阳县| 突泉县| 永仁县| 松溪县| 林周县| 南陵县| 玉树县|