修改Android源码,解放HTTPS抓包

欢迎访问我的个人网站:https://coderyuan.com

为什么HTTPS不能抓包了?

Google在Android 7.0以后的版本中,添加了“网络安全配置(Network security configuration)”的相关配置项。其旨在增强App的安全性,可以避免TargetSDK版本>=N的App内部网络请求在非测试环境下被恶意抓包。

Network Sercurity Configuration对安全性的保证,主要是通过以下几个途径:是否允许明文HTTP请求(非HTTPS)、HTTPS证书(区分系统、用户)信任设置、域名以及App的Debug或Release配置,只有符合Manifest中配置的NetworkConfig字段内容下的条件,才可以进行正常的HTTP请求,如果需要使用Charles、Fiddler等工具进行抓包,也需要利用NetworkConfig来配置可以信任的证书,否则HTTPS请求在CONNECT阶段,就会返回错误,同时LogCat会打印出类似以下的错误信息:

     Caused by: java.security.cert.CertificateException: xxx.
        at com.android.org.conscrypt.TrustManagerImpl.verifyChain(TrustManagerImpl.java:661)
        at com.android.org.conscrypt.TrustManagerImpl.checkTrustedRecursive(TrustManagerImpl.java:539)
        at com.android.org.conscrypt.TrustManagerImpl.checkTrustedRecursive(TrustManagerImpl.java:605)
        at com.android.org.conscrypt.TrustManagerImpl.checkTrusted(TrustManagerImpl.java:495)
        at com.android.org.conscrypt.TrustManagerImpl.checkServerTrusted(TrustManagerImpl.java:321)
        at android.security.net.config.NetworkSecurityTrustManager.checkServerTrusted(NetworkSecurityTrustManager.java:113)
        at android.security.net.config.NetworkSecurityTrustManager.checkServerTrusted(NetworkSecurityTrustManager.java:87)
        at android.security.net.config.RootTrustManager.checkServerTrusted(RootTrustManager.java:116)
        at com.huawei.secure.android.common.ssl.SecureX509TrustManager.checkServerTrusted(:105)
        at com.android.org.conscrypt.Platform.checkServerTrusted(Platform.java:212)
        at com
  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
抓包是指在网络通信中截取和分析数据包的过程。要在Android源码中进行抓包,可以使用一些工具和技术来实现。 首先,可以使用虚拟设备或物理设备来进行抓包操作。如果使用虚拟设备,可以通过Android Studio自带的Android虚拟设备管理器来创建和启动虚拟设备。如果使用物理设备,需要确保设备已连接到计算机,并且已开启调试模式。 其次,可以使用一些第三方工具来进行抓包操作,如Wireshark、Charles、Fiddler等。这些工具需要在计算机上进行安装和配置,以便与Android设备进行连接和通信。 在Android源码中,可以通过以下方式来实现抓包操作: 1.使用网络调试工具:Android源码提供了一些网络调试工具,如adb命令行工具和DDMS(Dalvik Debug Monitor Server)。通过adb命令行工具,可以连接到设备,并使用adb shell命令查看设备的网络通信情况。通过DDMS,可以在设备和计算机之间建立连接,并通过其网络选项卡来查看设备的网络数据流量。 2.添加抓包功能:如果需要更详细的网络数据包信息,可以在源码中添加抓包功能。具体方式是,在网络通信的相关类或方法中添加代码,以截取和保存数据包的内容和元数据。通过这种方式,可以自定义抓包选项,如抓取特定应用程序的数据包或特定类型的数据包。 3.使用网络分析工具:在源码中集成一些网络分析工具,如tcpdump、tcpflow等。这些工具可以用于捕获设备的网络流量,然后通过PCAP(Packet Capture)格式保存,并可以使用Wireshark等工具进行分析和解析。 总之,通过以上方法,我们可以在Android源码中实现抓包操作,以便分析和调试设备的网络通信。这有助于开发人员解决网络通信问题和优化应用程序的网络性能。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值