Android 7.0解决抓取不到https包的问题

问题:Android7.0系统,使用fiddler不能抓取https包

解决方法: 

1.在源码res目录下新建xml目录,增加network_security_config.xml文件

(工程名/app/src/main/res/xml/network_security_config.xml)

network_security_config.xml文件内容为:

<network-security-config>
    <base-config cleartextTrafficPermitted="true">

        <trust-anchors>
            <certificates src="system" overridePins="true" />
            <certificates src="user" overridePins="true" />
        </trust-anchors>

    </base-config>

</network-security-config>

说明:certificates说明的src=“system"表示信任系统的CA证书,src=“user"表示信任用户导入的CA证书

2.修改项目的AndroidManifest.xml文件,在application中增加android:networkSecurityConfig="@xml/network_security_config"

<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
    <application android:networkSecurityConfig="@xml/network_security_config"
                    ... >
        ...
    </application>
</manifest> 

说明:android:networkSecurityConfig的值指向的就是上一步创建的xml文件

3.然后再打包安装apk即可

前提手机已经要安装了fiddler等CA证书哈

问题原因:

Android7系统,默认不信任用户导入的CA证书,所以需要配置文件,来信任用户导入的证书

参考文档:

https://developer.android.com/training/articles/security-config.html#CustomTrust

时间: 2024-11-09 15:24:44

Android 7.0解决抓取不到https包的问题的相关文章

fiddler 抓取 安卓模拟器 https包

2017-12-12 16:47:45 星期二 需要材料: 1. fiddler 2. 逍遥模拟器 步骤: 1. fiddler->tool->Optiions...->connections 选定监听的端口号, 允许远程访问 2. fiddler->tool->Optiions...->HTTPS ->  选中抓取并解码 https -> 同意弹窗内容 3. 打开模拟器-> 设置WiFi-> 手动 -> 端口跟第1步设定的一致 ->

fiddler 抓取手机http/https包

测试需求: 安装有 fiddler  的电脑台  博主fiddler 4: 手机系统不限制智能手机就行,能连接wifi即可: 首先在fiddler这边配置一下(请不要问我为什么没有汉化毕竟free) 这边是设置允许https,不需要课不用设置,忽略证书错误,导出证书然后加入google这边证书信任: 在设置-高级设置-证书管理  导入证书---->直到导入成功. 设置端口并且允许电脑远程连接,其实翻译一下即可. 然后查看自己电脑的ip地址,确保手机跟电脑在同一个局域网! 搜索cmd--ipcon

【Fiddler】使用fiddler抓取指定浏览器的包

使用fiddler抓取不到浏览器的包时常用的解决办法: 1.必须先打开Fiddler,再打开浏览器 2.Fiddler只能截取网页与服务器间的通信,无法截取游戏封包 3.Fiddler没有打开捕捉模式 其他问题的解决方法: 1.这种是chrome浏览器抓不到的情况:实际上fiddler是可以抓chrome的请求的. 由于可能chrome安装了代理管理的插件SwitchySharp,无论选择直接连接还是选择使用代理连接,插件都会屏蔽fiddler的设置. fiddler会自动给浏览器设置一个代理1

tcpdump教程 - 从命令行抓取和分析数据包

前言 在介绍和使用tcpdump之前,请确保您已经掌握或者了解如下几个关键概念,否则后面的内容让你有点痛苦. 能够在Linux命令行下工作 理解OSI七层网络协议的概念 熟悉各层的协议头部,重点是IP/TCP/UDP 交换机和路由器对应于OSI的协议层 另外还需要注意的是: tcpdump是基于Unix系统的命令行式的数据包嗅探工具.如果要使用tcpdump抓取其他主机MAC地址的数据包,必须开启网卡混杂模式,所谓混杂模式,用最简单的语言就是让网卡抓取任何经过它的数据包,不管这个数据包是不是发给

使用Fiddler抓取手机APP数据包--360WIFI

使用Fiddler抓取手机APP流量--360WIFI 操作步骤:1.打开Fiddler,Tools-Fiddler Options-Connections,勾选Allow remote computers to connect,端口为8888:2.防火墙开放端口8888:2.在电脑上查看360wifi无线网卡IP地址,运行命令ipconfig /all,查看无线局域网适配器的IP信息192.168.1.100:3.手机wifi中设置代理为步骤2中的IP地址192.168.1.100,端口为步骤

Android MaoZhuaWeiBo开发Service抓取个人信息-2

前面把主要的东西讲完了,之后就是数据的获取和解析显示出来了,那接下来我们就负责抓取数据的这块吧,首先我们需要 在清单文件里加载服务和活动 添加:. <activity android:name="com.neweriweibo.activity.OAuthActivity"/> <activity android:name=".MainActivity"/> <activity android:name="com.neweri

fiddler4如何只抓取指定浏览器的包

在实际工作中,常常会抓取浏览器的数据,其加载的数据较多,不好区分,不知道其是哪个是需要抓取的数据,所以就需抓取指定浏览器的数据,这样就能很清晰知道数据的来源. 步骤一: 打开fiddler4,再打开浏览器 步骤二: 点击下图中的捕捉按钮,按钮处的文案将显示成"pick target",拖动鼠标至特定浏览器页面并放开鼠标,此时浏览器名称及占用端口号将显示在捕捉按钮之后 其他问题的解决方法: 1.这种是chrome浏览器抓不到的情况:实际上fiddler是可以抓chrome的请求的. 由于

fiddler抓取app的https的包

线上问题的排查有时候需要抓包,但是是https协议的,则需要安装证书 在Android 6.0 (API level 23)及以前,APP默认信任系统自带的CA证书以及用于导入的CA证书,Android 6.0 (API level 23)以后,APP默认只信任系统自带的CA证书,对于用户导入的不予理会. 也就是说目前只能使用6.0以下的安卓系统进行抓包了,当然也有其他办法,会比较麻烦一点 目录 1.设置fiddler 2.设置手机 3.抓包 1.设置fiddler 第一步:设置允许远程连接 参

Fiddler捕获抓取 App端数据包

最近项目设计到App抓包,所以采用Fiddler工具来采集获取APP数据包,但是fiddler对有些app是无法捕获到数据包的,以下是我的处理方法: 1. 我默认代理端口使用的是自定义的端口而不是默认的8888端口: 2. 手机端安装Fiddler证书,电脑端关闭防火墙 对我采集的app来说亲测有效能获取到数据包,记录一下操作过程: 以下是我对安卓App进行抓取的步骤: 1.   Fiddler下载地址(http://fiddler2.com/) 2.  安装到电脑,我的电脑系统是Win10 3