前言:本文讲述fiddler抓取模拟器中数据包,话不多说来看正文。
目录
环境准备:雷电模拟器、fiddler、adb
adb和fiddler下载地址:
一、Fiddler设置
1.HTTPS:解密https流量、忽略不安全证书
2.连接设置:允许远程计算机连接
3.根证书安装:导出桌面安装证书
二、模拟器设置
1.网络设置:桥接驱动安装,及开启桥接
2.WLAN设置:设置fiddler代理
3.设置信任证书:使用adb命令,将安装好的证书挪到系统目录中。
解决雷电模拟器问题直接从这开始看,以上是报错处理,供其他模拟器参考分析。
其他:
问题:fiddler 雷电模拟器 无法抓包,获取不到数据?
环境准备:雷电模拟器、fiddler、adb
adb和fiddler下载地址:fiddler+adb.zip - 蓝奏云
思路:本文章可解决99%。fiddler模拟器抓包问题,比起解决问题,让大家了解原理思路更为重要,以下是思路流程图供君参考。
一、Fiddler设置
1.HTTPS:解密https流量、忽略不安全证书
2.连接设置:允许远程计算机连接
点击允许远程计算机连接,点确定保存
3.根证书安装:导出桌面安装证书
在桌面点击导出的证书进行下一步安装即可,全部默认一直点,点到导入成功为止。
Fiddler配置完成将其关闭重启。
二、模拟器设置
1.网络设置:桥接驱动安装,及开启桥接
安装网桥驱动,出现安装成功即可。
安装完成后点保存设置自动重启。
2.WLAN设置:设置fiddler代理
打开模拟器设置-打开WiFi菜单-修改wifi配置(有些模拟器有小笔头修改键,有些模拟器是鼠标长按会出现“修改网络”大同小异,可自行参照,核心就是修改连接wifi的手动代理,ip写本机,端口写8888 对饮fiddler软件里面的,如果端口占用在fiddler里面修改此处改成一致即可)最后点击保存!
2.证书安装:物理机ip:8888
打开模拟器浏览器,地址栏输入本物理机ip跟上8888端口,就是输入代理ip和端口。会跳转证书安装页面。
为什么要这样安装证书1.简单便捷2.可以变相去检测与物理机的连接是否正常
图片有点长,耐心按步骤点击。
3.设置信任证书:使用adb命令,将安装好的证书挪到系统目录中。
使用雷电模拟器的直接看
原-用户证书目录:/data/misc/user/0/cacerts-added/
新-系统证书目录:/system/etc/security/cacerts/
如果不移动安装好的证书,此处会出现不信任的证书,频繁弹出(可以看到组织单位是我们安装fiddler)。
此处需要提前开启,模拟器的root权限,否则无法su 切换用户(具体因模拟器而异:有些root权限要在模拟器里面开启,有些不需要,遇到无法su的问题,找找模拟器原因)
--------------------------------------------------------------报错分析-------------------------------------------------------
随即我们继续操作,将/data/misc/user/0/cacerts-added/的证书文件,移动到/system/etc/security/cacerts/,使其变为信任证书。
# 进入adb shell 工具
adb shell
# 切换root用户
gracelte:/ $ su
# 查看用户证书安装的名称
127|gracelte:/ # ls /data/misc/user/0/cacerts-added/
e5c3944b.0
# 将用户证书挪至系统证书目录 /system/etc/security/cacerts/
gracelte:/ # mv /data/misc/user/0/cacerts-added/e5c3944b.0 /system/etc/security/cacerts/
mv: /system/etc/security/cacerts//e5c3944b.0: Read-only file system
在移动证书到/system/etc/security/cacerts/ 会报出问题
报错:mv: /system/etc/security/cacerts//e5c3944b.0: Read-only file system
报错原因:/system 是以只读的形式挂载上来的,所以无论你怎么chmod都无法修改其权限。
解决办法:重新挂载,挂载读写执行权限
gracelte:/ $ su
# 重新挂载/system 文件夹
:/ # mount -o rw,remount /system
mount: '/system' not in /proc/mounts
报错:mount: '/system' not in /proc/mounts
报错原因:在Android8.0以上通过以上mount命令,找不到/system代表的节点和拥有的权限信息,这是因为Android8.0之后谷歌加入了A/B system的特性,system分区跟ramdisk分区打包在一起,因此系统起来之后也就不存在system分区了,而是直接把system镜像挂载到/根目录上。所以/proc/mounts文件中没有包含/system的权限信息。
查看模拟器安卓版本:
# 进入adb shell 工具
adb shell
# 切换root用户
gracelte:/ $ su
# 查看安卓版本
gracelte:/ # getprop ro.build.version.release
9
解决办法:解锁磁盘,重新挂载
# 在windows窗口运行以下命令,不要进到adb shell 里面运行
D:\platform-tools> adb root
# 解锁分区(需要升级到最新版本adb,才有disable-verity工具)
D:\platform-tools> adb disable-verity
# 重新挂载,没加权限 表示rwx全部挂上
D:\platform-tools> adb remount
报错:如果是旧版本adb会显示如下信息
networking:
adb ppp <tty> [parameters] - Run PPP over USB.
Note: you should not automatically start a PPP connection.
<tty> refers to the tty for PPP stream. Eg. dev:/dev/omap_csmi_tty1
[parameters] - Eg. defaultroute debug dump local notty usepeerdns
adb sync notes: adb sync [ <directory> ]
<localdir> can be interpreted in several ways:
- If <directory> is not specified, both /system and /data partitions will be updated.
- If it is "system" or "data", only the corresponding partition
is updated.
environmental variables:
ADB_TRACE - Print debug information. A comma separated list of the following values
1 or all, adb, sockets, packets, rwx, usb, sync, sysdeps, transport, jdwp
ANDROID_SERIAL - The serial number to connect to. -s takes priority over this if given.
ANDROID_LOG_TAGS - When used with the logcat option, only these debug tags are printed.
原因:旧版本adb不含disable-verity 工具包
解决办法:安装最新adb工具
报错:Failed to read fstab Maybe run adb root?
原因:雷电模拟器9把,这块直接界面化了,不需要通过disable-verity 解锁磁盘,但是其他种类模拟器会用到这个功能,大同小异,自己拿捏吧
解决办法:在模拟器设置,磁盘管理开启 system.vmdk可写入
-------------------------------------------------------------------------------------------------------------------------------
解决雷电模拟器问题直接从这开始看,以上是报错处理,供其他模拟器参考分析。
# 在windows窗口运行以下命令,不要进到adb shell 里面运行
D:\platform-tools> adb root
# 雷电模拟器,直接在设置打开磁盘写入功能
# 重新挂载,没加权限 表示rwx全部挂上
D:\platform-tools> adb remount
# 进入adb shell
D:platform-tools>adb shell
# 查看用户证书位置
gracelte:/ # ls /data/misc/user/0/cacerts-added/
e5c3944b.0
# 拷贝证书到目标文件夹
gracelte:/ # mv /data/misc/user/0/cacerts-added/e5c3944b.0 /system/etc/security/cacerts/
# 雷电模拟器,直接在设置打开磁盘写入功能
将以上配置完重启模拟器和fiddler就可以抓包了
文章来源:https://www.toymoban.com/news/detail-483672.html
其他:
问题:fiddler 雷电模拟器 无法抓包,获取不到数据?
答案:有些按照我这个步骤执行的,还是无法抓包,应该是模拟器版本问题,使用adb工具将代理推上全局即可。文章来源地址https://www.toymoban.com/news/detail-483672.html
# adb.exe shell settings put global http_proxy 本机ip:fiddler端口
adb.exe shell settings put global http_proxy 192.168.0.102:8888
到了这里,关于fiddler+安卓雷电模拟器+解决无法抓包问题,看我就对了,一站式解决问题,告别到处搜文章的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!