現(xiàn)在手機(jī)的使用率遠(yuǎn)超過電腦,所以這篇記錄用mitmproxy抓手機(jī)包,實(shí)現(xiàn)手機(jī)流量監(jiān)控。
環(huán)境:win10?64位,Python 3.10.4,雷電模擬器4.0.78,android版本7.1.2(設(shè)置-拉至最底部-關(guān)于平板電腦),雷電模擬器自帶adb版本(cmd進(jìn)入相應(yīng)路徑后adb?version)1.0.31
?一、對(duì)手機(jī)模擬器進(jìn)行代理設(shè)置
將被監(jiān)控的手機(jī)和安裝mitmproxy的PC使用同一個(gè)WIFI(同一個(gè)路由器或者同一個(gè)熱點(diǎn))。
獲取PC的內(nèi)網(wǎng)IP,比如:192.168.31.71(cmd下運(yùn)行ipconfig)
在真機(jī)上,找到手機(jī)和pc公共的這個(gè)wifi,設(shè)置代理 手動(dòng)
192.168.31.71
端口為8080(mitm默認(rèn)的監(jiān)控的端口,友情提示fiddler默認(rèn)端口是8888)
本文對(duì)于雷電模擬器的操作:得到電腦的IP地址如192.168.31.71后,然后將模擬器內(nèi)的wifi高級(jí)--代理設(shè)置為:電腦的IP,端口為8080。
(設(shè)置--點(diǎn)擊WLAN---長按WiredSSID--修改網(wǎng)絡(luò)--勾選高級(jí)選項(xiàng)--代理--手動(dòng)--填入IP和端口,保存)
?
手機(jī)(模擬器)代理設(shè)置完畢。?
在PC上運(yùn)行mitmweb或者mitmdump。(打開后,中轉(zhuǎn)代理服務(wù)器已運(yùn)行,默認(rèn)監(jiān)控端口8080)
然后用手機(jī)瀏覽器訪問 mitm.it,結(jié)果出現(xiàn)下圖,說明有問題:數(shù)據(jù)沒有流經(jīng)mitmproxy。
在PC上運(yùn)行已經(jīng)設(shè)置好代理127.0.0.1:8080的360極速瀏覽器,可以抓包,說明mitmweb沒問題。?
那就是雷電模擬器的代理設(shè)置出現(xiàn)了問題。經(jīng)過搜索和研究,確實(shí)是手機(jī)模擬器代理出現(xiàn)問題。
怎么設(shè)置才能有效呢?參考這篇文章有效:
雷電模擬器設(shè)置在WiFi設(shè)置代理不生效_雷電模擬器設(shè)置代理_sql1122的博客-CSDN博客
而且經(jīng)過我的測(cè)試,對(duì)于手機(jī)模擬器,根本無需我之前上圖中的繁瑣的設(shè)置方式,adb連通模擬器后,直接運(yùn)行指令就可以,非常方便,強(qiáng)烈推薦。
上圖中的命令行匯總?cè)缦拢?
d:
cd D:/leidian/LDPlayer4/
adb.exe kill-server
adb connect 127.0.0.1:5555雷電模擬器的默認(rèn)端口是5555
adb devices
adb.exe kill-server
adb devices
# 給模擬器設(shè)置代理
# ip是電腦的ip如192.168.31.71,port是抓包工具設(shè)置的端口如mitm默認(rèn)是8080,fiddler是8888
adb shell settings put global http_proxy ip:port
運(yùn)行完命令,即設(shè)置好了手機(jī)模擬器的代理。??
BTW:順便測(cè)試了下解除代理的命令如下:
adb shell settings delete global http_proxy&adb shell settings delete global global_http_proxy_host&adb shell settings delete global global_http_proxy_port
經(jīng)測(cè)試,解除代理的命令也是好用的,不過運(yùn)行完命令后,必須重啟手機(jī)模擬器才能生效。
注意:一定要首先在電腦上先運(yùn)行mitmweb或者mitmdump -s xxx.py默認(rèn)端口是8080,如果這里端口為8889,手機(jī)上的端口也要為8889],根據(jù)是安卓還是蘋果下載并安裝證書。還有,手機(jī)有必須鎖屏密碼才能安裝證書。
若沒有在PC上運(yùn)行mitmweb或者mitmdump,即中轉(zhuǎn)站沒有開啟,手機(jī)模擬器上不了網(wǎng)。如下圖:
在PC上運(yùn)行mitmweb,然后在模擬器上訪問網(wǎng)址,發(fā)現(xiàn)可以了,但不能抓https流量:
原因是手機(jī)模擬器上沒有安裝證書。
解決方法:手機(jī)瀏覽器訪問mitm.it,下載對(duì)應(yīng)的證書(雷電模擬器下載Android版)
下載完畢后,安裝證書,給證書起個(gè)名稱(需要手機(jī)有鎖屏密碼)。?
安裝完成后,就可以正常訪問https了。
??文章來源:http://www.zghlxwxcb.cn/news/detail-714795.html
在PC端的127.0.0.1:8081地址的頁面上,就能看到流經(jīng)手機(jī)上的數(shù)據(jù)包了。?文章來源地址http://www.zghlxwxcb.cn/news/detail-714795.html
到了這里,關(guān)于python使用mitmproxy和mitmdump抓包在手機(jī)上抓包(三)內(nèi)有雷電模擬器設(shè)置在WiFi設(shè)置代理不生效的命令行解決辦法(超推薦)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!