使用Proxyman抓取Android的https請(qǐng)求
有時(shí),您可能需要測(cè)試您的移動(dòng)應(yīng)用程序并檢查與其關(guān)聯(lián)的所有網(wǎng)絡(luò)請(qǐng)求。在網(wǎng)絡(luò)上,此任務(wù)非常簡(jiǎn)單,只需按Ctrl + Shift + I
打開(kāi)開(kāi)發(fā)人員工具即可。從那里,您可以導(dǎo)航到網(wǎng)絡(luò)選項(xiàng)卡并檢查與網(wǎng)頁(yè)相關(guān)的所有 HTTP 請(qǐng)求,如下所示:
然而,在移動(dòng)開(kāi)發(fā)方面,過(guò)程并不那么簡(jiǎn)單。與網(wǎng)絡(luò)不同,沒(méi)有內(nèi)置機(jī)制可以通過(guò)打開(kāi)開(kāi)發(fā)人員工具輕松檢查 HTTP 請(qǐng)求。
在這篇博文中,我們將探索通過(guò)使用代理來(lái)攔截網(wǎng)絡(luò)請(qǐng)求的迷人世界。我們將指導(dǎo)您逐步設(shè)置和配置代理服務(wù)器,該服務(wù)器將充當(dāng)您的設(shè)備和網(wǎng)絡(luò)之間的中介。
通過(guò)利用代理服務(wù)器的功能,我們能夠攔截、檢查和分析所有傳入的網(wǎng)絡(luò)請(qǐng)求。這為應(yīng)用程序的調(diào)試、性能優(yōu)化和安全分析開(kāi)辟了無(wú)限可能。
為了更容易理解,我將這個(gè)過(guò)程分為五個(gè)步驟。這些都是:
- 設(shè)置 Android 模擬器
- 代理設(shè)置
- 準(zhǔn)備證書(shū)
- 部署證書(shū)
- 在 Android 模擬器上設(shè)置代理
讓我們?cè)敿?xì)探討每個(gè)步驟。
1. 設(shè)置Android模擬器
要開(kāi)始此過(guò)程,您需要安裝 Android Studio。
成功安裝后,啟動(dòng) Android studio。在窗口頂部的工具欄上,找到并單擊菜單Tools。之后Device Manager從下拉菜單創(chuàng)建所需要的設(shè)備并運(yùn)行設(shè)備。
首先,使用該命令emulator -list-avds
顯示系統(tǒng)上所有已安裝模擬器的列表。此命令將為您提供可用設(shè)備的名稱(chēng)。從列表中確定您要運(yùn)行的設(shè)備的名稱(chēng)。
一旦確定了要啟動(dòng)的設(shè)備,就可以使用該emulator -avd deviceName
命令。deviceName
將命令中的名稱(chēng)替換為所需設(shè)備的實(shí)際名稱(chēng)。該命令將使用指定的設(shè)備啟動(dòng)模擬器。
確保您已設(shè)置模擬器命令正常工作所需的所有環(huán)境變量非常重要。這將確保命令被識(shí)別并成功執(zhí)行。
列出設(shè)備
設(shè)置 Android 模擬器后,您可以選擇從APKMirror下載并安裝所需應(yīng)用程序的 APK 文件。APKMirror 是一個(gè)信譽(yù)良好的網(wǎng)站,您可以在其中找到各種 Android 應(yīng)用程序的各種 APK 文件。下載 APK 文件后,您可以繼續(xù)將其安裝在 Android 模擬器上。您可以將下載的 APK 文件拖放到模擬器窗口中,也可以使用模擬器的文件傳輸機(jī)制導(dǎo)入 APK 文件。
2. 代理設(shè)置
在繼續(xù)安裝代理之前,必須確保 OpenSSL 和 Android 調(diào)試橋 (ADB) 已正確設(shè)置。以下是您應(yīng)該遵循的步驟:
如果您尚未安裝OpenSSL ,請(qǐng)先在您的系統(tǒng)上安裝OpenSSL 。有關(guān)安裝過(guò)程,請(qǐng)參閱特定于您的操作系統(tǒng)的文檔。openssl version安裝后,您可以通過(guò)在終端或命令提示符中運(yùn)行命令來(lái)驗(yàn)證安裝。如果安裝正確,這將顯示 OpenSSL 版本。
檢查 OpenSSL 版本
接下來(lái),確認(rèn)您可以從終端或命令提示符訪問(wèn) Android 調(diào)試橋 (ADB),這一點(diǎn)很重要。使用該命令adb version
檢查 ADB 是否可訪問(wèn)且配置正確。如果命令返回ADB版本,則表示設(shè)置正確。
成功設(shè)置 OpenSSL 并確認(rèn)對(duì) ADB 的訪問(wèn)權(quán)限后,您可以繼續(xù)安裝代理。在本教程中,我們將下載并使用Proxyman
作為示例工具。但是,您可以將相同的原則應(yīng)用于其他類(lèi)似的工具,例如Charles Proxy
或mitmProxy
。
https://proxyman.io/
https://www.charlesproxy.com/
3. 準(zhǔn)備證書(shū)
為了解密應(yīng)用程序請(qǐng)求,Proxyman 生成自定義 SSL 證書(shū)。要獲取此證書(shū)并將其配置為與 Android 操作系統(tǒng)一起使用,請(qǐng)執(zhí)行以下步驟:
打開(kāi)您的網(wǎng)絡(luò)瀏覽器并訪問(wèn)以下鏈接。您可以通過(guò)此鏈接下載 Proxyman SSL 證書(shū)。下載證書(shū)后,找到保存證書(shū)的文件夾:
http://proxy.man/ssl
- 為了確保證書(shū)文件具有 Android 操作系統(tǒng)所需的正確格式,您需要對(duì)其進(jìn)行重命名。打開(kāi)命令提示符并導(dǎo)航到證書(shū)所在的文件夾。之后運(yùn)行此命令:
hashed_name=`openssl x509 -inform PEM -subject_hash_old -in proxyman-ca.pem | head -1` && cp proxyman-ca.pem $hashed_name.0This command uses OpenSSL to generate a hashed name for the certificate and then renames the file accordingly. By following these steps, you obtain the custom SSL certificate from Proxyman and rename it to the format expected by Android OS. This certificate is essential for decrypting app requests and enabling Proxyman to intercept and analyze the network traffic.
此命令使用 OpenSSL生成證書(shū)的哈希名稱(chēng), 然后相應(yīng)地重命名文件。通過(guò)執(zhí)行以下步驟,您可以從Proxyman獲取自定義SSL 證書(shū),并將其重命名為Android 操作系統(tǒng)所需的格式。此證書(shū)對(duì)于解密應(yīng)用程序請(qǐng)求并使Proxyman能夠攔截和分析網(wǎng)絡(luò)流量至關(guān)重要。
此命令在 Windows Power shell 上不起作用,因此我在 Git Bash 終端上運(yùn)行了此命令:
命令執(zhí)行成功,并.0在同一文件夾中生成了一個(gè)擴(kuò)展名的文件:
4. 部署證書(shū)
我們?cè)谏弦徊街猩傻奈募?0是將要添加到 Android 模擬器中的證書(shū)。為此,我們首先打開(kāi)終端并列出可用的 AVD:
emulator -list-avds
從可用的 AVD 中,我們將使用以下命令運(yùn)行所需的 AVD:
emulator -avd <avd_name_here> -writable-system
請(qǐng)注意,我們使用-writable-system
標(biāo)志來(lái)啟動(dòng)具有可寫(xiě)系統(tǒng)權(quán)限的 AVD,從而允許修改。之后我們需要打開(kāi)另一個(gè)終端并運(yùn)行以下命令:
adb root
此命令以 root 權(quán)限重新啟動(dòng) ADB 守護(hù)進(jìn)程。之后,我們運(yùn)行此命令以禁用設(shè)備上的安全啟動(dòng)驗(yàn)證:
adb shell avbctl disable-verification
接下來(lái)我們使用以下命令重新啟動(dòng)設(shè)備:
adb reboot
設(shè)備重新啟動(dòng)后,運(yùn)行以下命令以 root 身份重新啟動(dòng) ADB:
adb root
通過(guò)執(zhí)行以下命令將分區(qū)重新掛載為讀寫(xiě):
adb remount
如果 ADB 提示您重新啟動(dòng)設(shè)備,請(qǐng)adb reboot
再次運(yùn)行,然后運(yùn)行adb root??
和adb remount
。現(xiàn)在我們準(zhǔn)備.0
使用以下命令將重命名的 SSL 證書(shū)文件(我們之前生成的文件)推送到設(shè)備,并替換<path_to_certificate>
為證書(shū)文件的實(shí)際路徑:
adb push <path_to_certificate> /system/etc/security/cacerts
此命令將證書(shū)文件復(fù)制到設(shè)備上的相應(yīng)目錄?,F(xiàn)在我們將通過(guò)運(yùn)行以下命令為證書(shū)文件設(shè)置正確的權(quán)限:
adb shell chmod 664 /system/etc/security/cacerts/<name_of_pushed_certificate>
現(xiàn)在我們需要使用以下命令最后一次重新啟動(dòng)設(shè)備:
adb reboot
設(shè)備將重新啟動(dòng),并將部署 SSL 證書(shū)。我們已成功將 SSL 證書(shū)部署到您的 Android 模擬器中。這將允許模擬器識(shí)別并信任該證書(shū),從而使 Proxyman 能夠攔截和分析來(lái)自設(shè)備的網(wǎng)絡(luò)流量。
現(xiàn)在要驗(yàn)證 Android 設(shè)備上的證書(shū),您可以導(dǎo)航到Android 設(shè)備設(shè)置Trusted Credentials
中的System
部分,您可以找到選項(xiàng)卡下列出的證書(shū)。這確認(rèn)證書(shū)已成功安裝并被您的 Android 設(shè)備識(shí)別:Encryption & CredentialsProxyman
LLCSystem
5. 在Android模擬器上設(shè)置代理
最后一步涉及我們配置 Android 模擬器以使用我們?cè)O(shè)置的 Proxyman 代理。為此,請(qǐng)?jiān)谀挠?jì)算機(jī)上啟動(dòng) Proxyman。在 Proxyman 中,導(dǎo)航至Certificate菜單。Install Certificate on Android從下拉列表中選擇。Physical Devices從子菜單中選擇。請(qǐng)注意,您無(wú)需擔(dān)心該術(shù)語(yǔ)Physical Devices,因?yàn)槲覀儾粫?huì)遵循該特定指南。我們只需要此菜單中的一些基本細(xì)節(jié):
在Android setup guide
中,確保復(fù)制 IP 地址和端口號(hào)。該過(guò)程的后續(xù)步驟將需要這些詳細(xì)信息:
接下來(lái)是轉(zhuǎn)到 Android 模擬器并單擊菜單圖標(biāo),如屏幕截圖所示:
單擊Settings側(cè)欄中的選項(xiàng)。單擊后,Settings,您可以繼續(xù)導(dǎo)航到該P(yáng)roxy選項(xiàng)卡:
在代理選項(xiàng)卡中,選中該Manual proxy configuration
選項(xiàng)。之后粘貼我們從 Proxyman
Android setup guide步驟復(fù)制的 IP 地址和端口并點(diǎn)擊apply按鈕:
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-762792.html
我們已經(jīng)成功完成了攔截來(lái)自 Android 設(shè)備的 HTTP 請(qǐng)求的所有必要設(shè)置步驟?,F(xiàn)在,我們可以啟動(dòng) Proxyman
并在 Android 模擬器上運(yùn)行應(yīng)用程序。當(dāng)我們使用應(yīng)用程序時(shí),Proxyman
將捕獲并顯示與網(wǎng)絡(luò)請(qǐng)求相關(guān)的所有相關(guān)詳細(xì)信息和數(shù)據(jù),為我們提供有關(guān)應(yīng)用程序通信的寶貴見(jiàn)解和可見(jiàn)性。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-762792.html
到了這里,關(guān)于使用Proxyman抓取Android的https請(qǐng)求的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!