轉載請注明出處
如果app有https證書驗證, 估計就不行了 , Charles是先偽裝服務器向瀏覽器發送偽造的公鑰,從而取得瀏覽器的私鑰。這樣就完成的瀏覽器端的解密。服務器端類似。(用的別人的話 )
1.下載Charles
下載地址:https://www.charlesproxy.com/download/
2.配置Mac和iPhone的證書
a.配置Mac證書:
Help->SSL Proxying->Install Charies Root Certificate
1.png
然后 會自動打開鑰匙串
把自動安裝的證書設置成始終信任
2.png
b.配置iPhone證書
Help->SSL Proxying ->Install Charies Root Certificate on a Mobile Device or Remote Browser
3.png
會彈出一個提示
4.png
注意看!!!!! 注意看 注意 !!!!!
里面有兩個部分一個是ip地址 一個是證書下載地址
1.IP地址 :fe80:0:0:0:6c07:12ff:fe01:ebcd%10 不管他, 直接去網絡偏好設置里面看自己的
B4B11F6A-252A-4A88-AF72-6E2852BE66ED.png
ip地址是:192.168.1.120 端口是8888
2.證書下載地址: chls.pro/ssl , 拷貝chls,pro/ssl 去Safari 打開 ,就會直接跳轉安裝,信任就好了
2.設置Charles和iPhone地址
a:配置iPhone 代理
1.打開設置->無線局域網
2.找到你的wifi (要求和電腦處于同一wifi環境下)
3.HTTP代理位置 -> 手動 服務器就是剛才提到的 mac的ip地址 192.168.1.120(寫你自己的...)
4.端口就是8888
IMG_0176.PNG
此時你打開手機app就會在Charles中看到請求信息了 , 比如 紅色 方格中的接口
CD9868D7-A2AC-4AA2-A021-AE2A5BE0221E.png
注意看 注意看 注意看 !!!!! 紅色圓圈中是有鎖的, 也就是說你并沒有抓到信息 , 這是https的信息, 你并沒有拿到!!!!!! 怎么辦!!! 怎么辦 !!!
b:配置Charles
1.Proxy->SSL Proxying Settings..
AE99C3D3-77BF-4D12-821B-99F9B3930011.png
2.把要抓取的接口添加進來
6B0DA30A-5807-48C8-885D-04DCFA529F19.png
再來操作app, 就可以看到數據正常抓取了
841D67E8-5458-4811-9853-36E4714B25EE.png
3.如何篡改數據呢?
1.在我的app那個請求上右鍵->Breakpoint 添加一個斷點
17F1472B-837A-45CA-A36A-8BE87E1854BC.png
2.當你再次發起這個請求的時候, 就會斷在這里, 注意下面的截圖
60A48EEC-24F0-4A3C-AD40-AABEC1293871.png
在這個位置就可以修改你的請求數據
注意 !!!! 斷點會斷兩次, 一次發起請求的斷點, 一次回調會數據的斷點, 這個斷點是在發起請求的位置
3.回調數據的時候
5EC4367F-9557-4D1B-9904-E461EAF12EEB.png
Execute 是下一步
302BDAF6-8322-4A7B-AEDC-13406F5F0858.png
這時候就可以修改返回的數據了