㈠ 安卓9无法安装fiddler的ca证书,无法抓包,求大神解救
这个可以去找售后,,如果真的是系统问题就让他们给你找或者推荐专门的软件工程师来处理,不要自己胡乱尝试。
㈡ 记一次android模拟器安装系统证书
用到的工具
1、雷电模拟器android5.1版本,开启root
2、openssl
3、adb
4、fiddler
生成证书
1、打开fiddler - options - https - actions
2、选择Export Root Certificate to Desktop,将证书保存到桌面
3、我生成的证书名是FiddlerRoot.cer(证书名称后面会用到
#1. 证书转换,已经是pem格式的证书不需要执行这一步
In:openssl x509 -inform DER -in FiddlerRoot.cer -out cacert.pem
#2. 进行MD5的hash显示
#openssl版本在1.0以上的版本的执行这一句
openssl x509 -inform PEM -subject_hash_old -in cacert.pem
#openssl版本在1.0以下的版本的执行这一句
openssl x509 -inform PEM -subject_hash -in cacert.pem
# window重命名 为符合android规范名称
ren cacert.pem 269953fb.0
# 或 linux重命名
cp cacert.pem 269953fb.0
#传入手机
adb push 269953fb.0 /sdcard
#获取手机的root权限
adb shell
#挂载系统目录为可写
mount -o rw,remount /system
mv /sdcard/269953fb.0 /system/etc/security/cacerts
#修改证书权限
chmod 644 /system/etc/security/cacerts/269953fb.0
如果没有意外的话,运行结束后,证书就已经安装到系统证书中了,可以在模拟器中查看到。
遇到的问题
adb devices offline
adb版本太低
升级adb
㈢ 如何用Fiddler对Android应用进行抓包
1.场景还原之Fliddler
Fiddler是一款抓包神器,近日,由于项目中要嵌入H5页面,公司又没专门的UI设计师,所以你懂得,这个任务就要给我喽!可怜的我并没有艺术细胞,所以我想到求助抓包神器---Fliddler.话说Fliddler非常强大,是程序猿必备工具,好吧,今天我就跟大家分享一下如何使用Fliddler对Android应用进行抓包处理。
2.Fliddler以及手机端的配置工作
1.老套路,官网下载Fliddler:https://www.telerik.com/download/fiddler/fiddler4;
2.next到底安装Fliddler;
3.打开Fliddler进行如下配置,如图:
①点击Tools-->Telerik Fliddler Options
②配置Https
③配置connections:
ok,你的PC端的Fliddler环境就搭好了。
4.手机端的配置(主要配置IP以及端口号,必须保证PC端与移动端在同一个网段中)
①打开手机的设置页面:
②长按已连接的WiFI位置:(警告:此wifi必须是你电脑发出的,可以下载360wifi供应热点,让手机连接,这个非常重要,不然前功尽弃)
③查询PC端ip:
那么本地Ip:192.168.0.107,端口号为刚在Fliddler手动设置的8888(个人喜欢设置)
④点击手机端的修改网络,然后点击高级设置,如图,保证参数一致:
好了,点击连接,然后打开手机浏览器,在网址栏输入:http://192.168.0.107:8888,安装Fiddler证书
安装完成后开始抓包吧!
3.Fiddler抓包处理流程
这里我以"开眼”App为例:
1.打开app,照常浏览界面,然后你的Fliddler会出现:
2.点击图片按钮,在右下边点击TextView,j就会显示你浏览手机的当前图片:
你的移动端:
Fliddler端:
3.点击左边的额json,再点击右下边的json,然后会出现你手机端的数据:
你的移动端:
Fliddler显示:
㈣ 如何用Fiddler对Android应用进行抓包
用Fiddler对Android应用进行抓包的方法:
1、启动Fiddler,打开菜单栏中的 Tools > Fiddler Options,打开“Fiddler Options”对话框。
㈤ Android 配置Fiddler抓包
将浏览器的代理设置成Fiddler能够实现Fiddler抓取浏览器的请求。同理,Android手机配置Fiddler作为代理服务器,从而让Fiddler能够截获Android的流量来实现抓包。
可以通过ipconfig命令等查看,最简单的就是将鼠标移到Fiddler窗口右上角的online字样上面,会自动提示当前电脑IP地址。
比如,我当前PC IP地址为172.20.224.63
打开Fiddler上Tools-->Options,选择Connections选项卡,可以查看到代理端口地址。默认为8888。你可以自行配置成其他端口号。
还有,请勾选“Allow remote computers to connect”(这是允许Android手机通过代理进行网络访问)。
手机连接和PC位于同一局域网的wifi,连接成功后,进入到高级选项中。(不同手机有不同的进入方法,早期手机是长按已经连接上的wifi,现在有些手机直接提供了进入配置的箭头按钮。)
将代理服务器主机名修改为第一步获取的IP地址,端口号为第一步获取的端口号。然后保存。
以上配置OK,打开手机进行网络访问吧,看看Fiddler上有没有HTTP请求包。
实际测试,如果发现没有数据包,你需要检查Fiddler是否打开,是否允许远程电脑访问,以及端口号和IP地址是否配置正确,然后重启试试看(重启Fidder、手机重连Wifi,重新配置等)。
以上配置的仅仅是抓取HTTP请求,对于HTTPS请求,你还是看不到。下面介绍下,HTTPS抓包配置。
HTTPS也是需要通过Fiddler代理来抓取的,所以呢,前面的配置代理的过程不变。下面介绍其他涉及到证书安装方面的。
打开Tools->Options,选择HTTPS选项卡,按照下图进行勾选。
PC上安装好了根证书之后,还需要在手机上安装根证书,才能保证Fiddller能够正确解析出HTTPS包。(原理是,手机通过Fiddler做了代理后,HTTPS请求进行握手时候获取的证书就是Fiddler自己生成的证书,这个证书在手机上默认不受信任,这样会导致手机端认为服务端非法从而断开HTTPS握手,导致请求失败。所以,我们需要让手机信任Fiddler的根证书。)
手机在配置好HTTP代理后,打开浏览器,输入: http://ipv4.fiddler:8888/ 。实际上 ipv4.fiddler 会引导到Fiddler所在PC的IP地址上。所以,你输入http://<pc ip>:<port>也是可以的。(题外话, ipv4.fiddler 这个域名不是外网通用域名,你知道为啥会正确解析不?猜想是Fiddler自己提供了本地DNS解析服务)
OK,以上是所有的配置。
配置成功后,观察Fiddler,手机进行一些操作,看看HTTPS的请求能解析不。如果你遇到下面的异常:
很大可能是由于手机上没有安装Fiddler的根证书。当然,还有例外,如果手机Android系统为7.0以上,即便安装了Fiddler的根证书,也会出现这个异常。原因请参考 https://www.jianshu.com/p/0711ca1121e9