Charles應用

監控APP 封包使用, 就是一個簡便的代理服務器工具

Charles 是在電腦上運行的 Web Proxy (HTTP Proxy / HTTP Monitor),很多時候我們會需要去監控有關Network的相關資訊 如果是透過瀏覽器去使用的那還比較好處理,但是透過非瀏覽器就會需要透過代理服務器,來協助我們去做監控. 通過將自己設置為系統的網絡訪問代理服務器,這樣所有的 network請求都會通過它,從而實現截獲和分析。

Charles 主要的功能包括

  • 截取 Http 和 Https 網絡封包

  • 支持重發網絡請求,方便後端調試

  • 支持修改網絡請求參數

  • 支持網絡請求的截獲並動態修改

  • 支持模擬慢速網絡

結果

就連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 直接丟到模擬器

結果

完成安裝證書及模擬器相關證書安裝設定後,你就可以開心的抓取封包了。

Last updated