背景
7.0之后Android默認(rèn)不相信用戶自己安裝的證書,需要程序自己實(shí)現(xiàn)是否相信用戶證書。在此背景下,fiddler無法抓包https加密的報(bào)文瞬沦,這種情況下解決辦法只有兩個(gè),一個(gè)是不用android7.0以上的設(shè)備雇锡。逛钻。通常模擬器都是6.0目前,所以還可以锰提。還有一個(gè)方法就是安裝系統(tǒng)的根證書曙痘。我們這里就采用的第二個(gè)方法。
條件
一臺root的手機(jī)立肘,這里使用的是nexus6p
方式
1.先從fiddler中下載需要的證書边坤,即在本地8888端口下載即可。我這里下載到的證書名字為:fiddlerRoot.cer
2.得到證書的哈希值:
openssl x509 -inform DER -subject_hash_old -in fiddlerRoot.cer | head -1
得到類似字符串:e5c3944b
(網(wǎng)上看到谅年,如果是crt格式證書茧痒,命令為:openssl x509 -inform PEM -subject_hash_old -in CA_Name.crt | head -1)
3.重命名文件,將證書命名為e5c3944b.0 #這個(gè)后面的數(shù)字就是為了防止重復(fù)的融蹂,如果存在同樣hash的話旺订,0可以改成1,一次類推
4.拷貝文件到手機(jī)存放根證書的目錄:我這里不知道為什么直接adb進(jìn)行root操作不行超燃,所以是先拷貝到sdcard区拳,然后再mv到存放根證書的目錄
1)adb push?e5c3944b.0 /sdcard/tmp/e5c3944b.0
2)? adb shell
3)? root權(quán)限 :su
4)重新掛載system分區(qū)為可讀寫:mount -o rw,remount /system
5)? mv /sdcard/tmp/e5c3944b.0 /system/etc/security/cacerts/e5c3944b.0
6)? cd?/system/etc/security/cacerts
6)? chmod 644 e5c3944b.0
5.重啟設(shè)備即可
上述一頓操作之后,就可以實(shí)現(xiàn)大多數(shù)應(yīng)用的ssl解密了淋纲,還不行的試試xposed插件劳闹,justtrustme院究,可以破解ssl pining