工具和資料
HTTP抓包流程
爲了實現對安卓手機或模擬器的網絡請求抓包,簡單流程爲:html
- 電腦上安裝Fiddler等抓包工具,其原理就是一個HTTP/HTTPS代理服務器。注意須要容許遠程電腦鏈接
- 確保電腦和安卓手機在同一個子網中,互相可以PING通。好比:能夠鏈接同一個WIFI熱點,或者用電腦給手機開熱點均可以
- 在手機的WLAN設置中,設置WIFI代理,指向電腦的IP和抓包工具的端口,好比:192.168.122.101:8888
- 這個時候,如一切正常,HTTP代理就已經能夠工做了,能夠在手機瀏覽器裏訪問HTTP站點,看看抓包工具中是否有反應。
HTTPS抓包原理
在Android中安裝根證書
可是在安卓系統中就要本身動手安裝根證書了,下面梳理一下整個過程:git
前提
- Android 4.4及以上
- 手機已經root,則能夠安裝爲系統證書,不然只能安裝用戶證書
區別在於:用戶證書會要求手機必須有鎖屏密碼
- adb鏈接手機正常
安裝爲用戶級別證書
- 把證書文件 .crt/.cer下載到內部存儲,好比/sdcard
- 文件管理器打開文件,會自動打開證書管理應用,給證書起個名字便可導入,另外須要設定屏幕解鎖密碼
- 打開 設置 -> 安全和隱私 ->憑據存儲 -> 用戶 能夠查看安裝的證書
-
對於Fiddler有個更簡便的辦法:github
- 打開手機瀏覽器,訪問 http://ipv4.fiddler:8888/
- 打開的頁面最下面的連接:You can download the Fiddler certificate,點擊便可下載安裝證書,步驟和從文件安裝一致
安裝爲系統級別證書
把證書文件轉換爲Android可識別格式
- 肯定文件名。我這裏安裝了兩個不一樣工具的證書,即Fiddler和LittleProxy-MITM,它們的證書格式不一樣,所以使用的命令也略有不一樣。
openssl x509 -inform DER -subject_hash_old -in FiddlerRoot.cer
openssl x509 -inform PEM -subject_hash_old -in littleproxy-mitm.pem
把輸出的第一行的8位hex字符串保存下來,好比269953fb,最終的證書文件名則爲269953fb.0
- 轉換證書文件格式
openssl x509 -inform DER -in FiddlerRoot.cer -text > 269953fb.0
openssl x509 -inform PEM -text -in littleproxy-mitm.pem > 4bb9877f.0
- 編輯輸出的文件,把"-----BEGIN CERTIFICATE-----"到文件結束這部分移動到文件首部
安裝證書
驗證
- 手機瀏覽器打開HTTPS站點,看抓包工具中是否能夠正常解析HTTPS報文。
參考