開發不改代碼,Android7以上實現https協議的fiddler抓包


說明

以下方案必須需要root權限,如不想root,也有解決方法,請跳轉我另一遍博客 android7.0以上https抓包(無需root)

給Android7及以上的手機安裝系統級證書,實現HTTPS的抓包

Android7以后,系統不再信任用戶級的證書,只信任系統級的證書,所以要抓包就需要把我們的代理程序證書安裝至Android的系統目錄中

准備

  • 一台已root的手機
  • Openssl

證書生成

    1.將Filddler或者其他抓包程序的證書導出,一般為 xxx.cer或者 xxx.pem

    2.使用opensslx509指令進行cer證書轉pem證書 和 用md5方式顯示pem證書的hash值

    #1. 證書轉換,已經是pem格式的證書不需要執行這一步
    openssl x509 -inform DER -in xxx.cer -out cacert.pem 
    

    2. 進行MD5的hash顯示

    openssl版本在1.0以上的版本的執行這一句

    openssl x509 -inform PEM -subject_hash_old -in cacert.pem

    openssl版本在1.0以下的版本的執行這一句

    openssl x509 -inform PEM -subject_hash -in cacert.pem

    3.將第二條指令輸出的類似347bacb5的值進行復制

    tips: 查看openssl版本的指令openssl version

    4.將pem證書重命名
    使用上面復制的值(類似於347bacb5)對pem證書進行重命名

    重命名為: 347bacb5.0,切記不要忘記".0"
    
        
        
        
                

將新證書放入手機系統證書目錄

    1.手機系統目錄位置是:/system/etc/security/cacerts

    2.需要拷貝至此目錄必須擁有root權限,還要解鎖system分區

    3.解鎖system分區: 開機狀態下(打開發者選項,開啟USB調試,USB模式設為MTP),在adb工具文件夾下按住shift鍵右鍵打開CMD,輸入如下命令:

    adb root

    adb disable-verity

    adb reboot

    4.由於adb版本問題adb disable-verity可能會沒有此命令,此時需要更新adb版本即可,下載地址如下,下載好替換即可

    ADB和Fastboot for Windows

    https://dl.google.com/android/repository/platform-tools-latest-windows.zip

    ADB和Fastboot for Mac

    https://dl.google.com/android/repository/platform-tools-latest-darwin.zip

    ADB和Fastboot for Linux

    https://dl.google.com/android/repository/platform-tools-latest-linux.zip

重啟Android設備以生效

    1.拷貝證書至:adb push 證書到 /system/etc/security/cacerts之后,重啟手機就可以使證書生效了

特別注意

    開啟了root權限並解鎖了system區,則表示真正解鎖了所有權限,風險也如期而至,之后請謹慎下載任何非應用市場軟件!

    1.關閉system解鎖:adb enable-verity,重啟生效

    2.關閉后重啟后,fiddler證書則會消失,再次抓包時需要重新導入證書

--------------------------------------------------------------------------------------

部分原創鏈接: https://blog.csdn.net/djzhao627/article/details/102812783


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM