当前位置: 首页 > news >正文

python使用mitmproxy和mitmdump抓包在手机上抓包(三)

现在手机的使用率远超过电脑,所以这篇记录用mitmproxy抓手机包,实现手机流量监控。

环境:win10 64位,Python 3.10.4,雷电模拟器4.0.78,android版本7.1.2(设置-拉至最底部-关于平板电脑),雷电模拟器自带adb版本(cmd进入相应路径后adb version)1.0.31

 一、对手机模拟器进行代理设置

将被监控的手机和安装mitmproxy的PC使用同一个WIFI(同一个路由器或者同一个热点)。
获取PC的内网IP,比如:192.168.31.71(cmd下运行ipconfig)


真机上,找到手机和pc公共的这个wifi,设置代理 手动
192.168.31.71
端口为8080(mitm默认的监控的端口,友情提示fiddler默认端口是8888

本文对于雷电模拟器的操作:得到电脑的IP地址如192.168.31.71后,然后将模拟器内的wifi高级--代理设置为:电脑的IP,端口为8080。
(设置--点击WLAN---长按WiredSSID--修改网络--勾选高级选项--代理--手动--填入IP和端口,保存)

 

手机(模拟器)代理设置完毕。 

在PC上运行mitmweb或者mitmdump。(打开后,中转代理服务器已运行,默认监控端口8080)

然后用手机浏览器访问 mitm.it,结果出现下图,说明有问题:数据没有流经mitmproxy。

在PC上运行已经设置好代理127.0.0.1:8080的360极速浏览器,可以抓包,说明mitmweb没问题。 

那就是雷电模拟器的代理设置出现了问题。经过搜索和研究,确实是手机模拟器代理出现问题。

怎么设置才能有效呢?参考这篇文章有效:

雷电模拟器设置在WiFi设置代理不生效_雷电模拟器设置代理_sql1122的博客-CSDN博客

而且经过我的测试,对于手机模拟器,根本无需我之前上图中的繁琐的设置方式,adb连通模拟器后,直接运行指令就可以,非常方便,强烈推荐。

上图中的命令行汇总如下: 

d:
cd D:/leidian/LDPlayer4/
adb.exe kill-server
adb connect 127.0.0.1:5555雷电模拟器的默认端口是5555
adb devices
adb.exe kill-server
adb devices
# 给模拟器设置代理
# ip是电脑的ip如192.168.31.71,port是抓包工具设置的端口如mitm默认是8080,fiddler是8888
adb shell settings put global http_proxy ip:port

运行完命令,即设置好了手机模拟器的代理。  

BTW:顺便测试了下解除代理的命令如下:

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

经测试,解除代理的命令也是好用的,不过运行完命令后,必须重启手机模拟器才能生效

注意:一定要首先在电脑上先运行mitmweb或者mitmdump -s xxx.py默认端口是8080,如果这里端口为8889,手机上的端口也要为8889],根据是安卓还是苹果下载并安装证书。还有,手机有必须锁屏密码才能安装证书。

若没有在PC上运行mitmweb或者mitmdump,即中转站没有开启,手机模拟器上不了网。如下图:

在PC上运行mitmweb,然后在模拟器上访问网址,发现可以了,但不能抓https流量:

原因是手机模拟器上没有安装证书。

解决方法:手机浏览器访问mitm.it,下载对应的证书(雷电模拟器下载Android版)

下载完毕后,安装证书,给证书起个名称(需要手机有锁屏密码)。 

安装完成后,就可以正常访问https了。

  

在PC端的127.0.0.1:8081地址的页面上,就能看到流经手机上的数据包了。 

http://www.lryc.cn/news/178864.html

相关文章:

  • react create-react-app v5 从零搭建(使用 npm run eject)
  • 在微信小程序中跳转到另一个小程序(多种实现方式)
  • beanstalkd 启动跟停止【经常使用 nohup 和 配合来启动程序,如: nohup ./test 同时免疫SIGINT和SIGHUP信号】
  • 企业年报API的应用:从金融投资到市场研究
  • 基于Matlab实现评价型模型求解方法(附上源码+数据)
  • Prettier - Code formatter格式化规则文件
  • 用C++实现文件读写操作
  • 【我的创作纪念日】使用pix2pixgan实现barts2020数据集的处理(完整版本)
  • 背包算法(Knapsack problem)
  • “童”趣迎国庆 安全“童”行-柿铺梁坡社区开展迎国庆活动
  • 常用压缩解压缩命令
  • 第四十一章 持久对象和SQL - Storage
  • 【Java接口性能优化】skywalking使用
  • 大学各个专业介绍
  • linux 列出网络上所有活动的主机
  • 基于vue+Element Table Popover 弹出框内置表格的封装
  • 机器人过程自动化(RPA)入门 4. 数据处理
  • java导出word(含图片、表格)
  • MySQL数据库记录的修改与更新
  • 开具数电票如何减少认证频次?
  • 【进阶C语言】动态内存分配
  • 手机上记录的备忘录内容怎么分享到电脑上查看?
  • LeetCode 2251. 花期内花的数目:排序 + 二分
  • 【3】贪心算法-最优装载问题-加勒比海盗
  • JavaScript 的 for 循环应该如何学习?
  • C++核心编程--对象篇
  • 安装php扩展XLSXWriter,解决php导入excel表格时获取日期变成浮点数的方法
  • Vue+element开发Simple Admin后端管理系统页面
  • 源码编译安装pkg-config
  • 游览器找不到服务器上PHP文件的一种原因