@_小沫 感覺好像沒get到點子,如下面這段話:
截獲真實客戶端的HTTPS請求,偽裝客戶端向真實服務端發(fā)送HTTPS請求
接收真實服務器響應,用Charles自己的證書偽裝服務端向真實客戶端發(fā)送數(shù)據(jù)內(nèi)容
我的意思是, 如果Charles作為中間商能代替client與服務器進行通信, 那是不是可以理解Charles==client = true? 那么Charles代替客戶端收收發(fā)消息的話, 為啥還存在Charles解析不了的包?
我猜測下, 是不是這樣的原因: 如果Android沒有root, 那么在Android執(zhí)行https請求的時候, android系統(tǒng)ssl驗證用的是系統(tǒng)證書, 而不是用戶證書(Charles證書已經(jīng)安裝在用戶證書列表里) , 然后當Android請求發(fā)出后, Charles發(fā)現(xiàn)自己識別不了, 然后原封不動的把請求包轉(zhuǎn)發(fā)給了服務器(這個時候Charles扮演純代理), 服務器返回給客戶端數(shù)據(jù)包時, Charles無法解析,一個是顯示unknown, 一個是轉(zhuǎn)發(fā)給客戶端?
請問是這樣嗎?
淺談Charles抓包原理類似Charles這樣的抓包工具,對于高效程序員是必不可少的;本文不會介紹Charles的安裝及使用,主要是淺顯的探討其抓包原理;Charles的安裝及使用相關(guān)內(nèi)容可以參考以...