Charles 是在電腦上運行的 Web Proxy (HTTP Proxy / HTTP Monitor),很多時候我們會需要去監控有關Network的相關資訊 如果是透過瀏覽器去使用的那還比較好處理,但是透過非瀏覽器就會需要透過代理服務器,來協助我們去做監控.
通過將自己設置為系統的網絡訪問代理服務器,這樣所有的 network請求都會通過它,從而實現截獲和分析。
Charles 主要的功能包括
結果
就連https 也都可以正常看到Network資訊
開始建置監控機制
預計會有10個步驟,跟著步驟走,Bug遠離我.
1.下載並安裝Charles
Charles 官網: https://www.charlesproxy.com/
2.下載並安裝夜神模擬器
下載夜神模擬器 or genymotion(下載你可以安裝apk的模擬器,並且有修改proxy功能的既可)
我是使用夜神模擬器作為本次文章的範例
3.確認你要安裝的apk 是否需要超過Android 7+版本(後續操作會不同)
是不是很快,馬上就被我水了3個步驟,接下來的步驟絕對會更輕鬆的.
4.啟動Charles & proxy setting & install CA
Port 基本上不需要修改,除非你有衝突。
這樣設定基本上就可以滿足需求,後續可再透過incloud & exclouded 來做篩選
Host : *
Port: *
牽涉到Https 就會扯到證書,開始設定吧
路由 >>> HELP > SSL Proxying
大約經過這些一系列的安裝證書後, 就可以進行攔截封包的主要工作了。
夜神模擬器相關設定
Android 因為安全性的關係, 以前只要到上一個步驟就可以完成封包攔截,但現在沒辦法,還需要將證書安裝模擬器裡面,Https才有辦法正常攔截及分析封包內容。
附上之前調整的筆記
nox 模擬器 & charles 通關紀錄
1.下載Charles程式
2.下載夜神模擬器 or genymotion(下載你可以安裝apk的模擬器,並且有修改proxy功能的既可)
3.確認你的android 版本(7+ 會有不一樣的操作)
4.Charles proxy & SSL proxy setting(install CA 證書, 並下載下來)
1.三個install CA 都做
2.APP 端 開啟網址觸發下載>> (http://chls.pro/ssl) 本機開啟網址也會觸發下載證書.(記得把proxy開啟 SSL功能才有作用)
3.APP 安裝證書.想辦法通過系統就可以, 照著按.
4.APP可到路徑>> 設定 > 安全性與位置資訊 > 加密和憑證 > 信任的憑證 使用者Tab 找到 charles 的證書
5.模擬器開啟Root權限(夜神為範例)
6.使用openssl指令查看 hash值(指令>> openssl x509 -subject_hash_old -in <Certificate_File> )
本機沒安裝openssl 可以利用在線工具 >> openssl 線上工具: https://www.cryptool.org/en/cto/openssl
7.備份一份下載下來的證書, 修改檔名 android檔案格式>> [hash值].0
準備將改名後的證書上傳至android系統裡面 快結束了~
8.找到 夜神模擬器檔案目錄 /bin 開啟cmd
9.準備執行adb 指令 (詳細指令可自行餵關鍵字查詳細說明)
將證書導入android system 指令以下四個指令:
9-1. adb devices
9-2. adb root
9-3. adb remount
9-4. adb push C:\Users\caster.hsu\Downloads\(你的hash檔案) /system/etc/security/cacerts/
會出現success 訊息, 沒有則將錯誤訊息餵谷歌大神或chatGPT 都會找到答案.
指令簡單說明:
1.取得目前連線裝置清單>> adb devices
2.取得root權限(前提要線將模擬器開啟root模式)>> adb root
3.將 '/system' 部分置於可寫入的模式,默認情況下 '/system' 部分是只讀模式的>> adb remount
4.將檔案丟到手機裡>> adb push C:\Users\caster.hsu\Downloads\(你的hash檔案) /system/etc/security/cacerts/
10.進模擬器查詢證書是否上傳成功
路徑>> 設定 > 安全性與位置資訊 > 加密和憑證 > 信任的憑證 > (查看系統及使用者是否已添加成功CA證書)
排查參考網站:
https://blog.csdn.net/qq_29022265/article/details/124453836
https://zhuanlan.zhihu.com/p/565327085
IOS >> https://ithelp.ithome.com.tw/articles/10307882?sc=iThelpR
亂碼設定 >> https://blog.csdn.net/u014722022/article/details/103701480
openssl 線上工具: https://www.cryptool.org/en/cto/openssl
device info app: https://play.google.com/store/apps/details?id=com.ytheekshana.deviceinfo&hl=en_US&pli=1
可以去找現成的APK 直接丟到模擬器
結果
完成安裝證書及模擬器相關證書安裝設定後,你就可以開心的抓取封包了。