Android7.0用什么工具进行抓包

发布时间:2021-09-04 15:52:48 作者:chen
来源:亿速云 阅读:339
# Android 7.0用什么工具进行抓包

## 目录
1. [前言](#前言)
2. [Android 7.0网络安全性变更](#android-70网络安全性变更)
3. [抓包工具分类与原理](#抓包工具分类与原理)
4. [主流抓包工具详解](#主流抓包工具详解)
   - [4.1 Charles](#41-charles)
   - [4.2 Fiddler](#42-fiddler)
   - [4.3 Wireshark](#43-wireshark)
   - [4.4 Burp Suite](#44-burp-suite)
   - [4.5 tcpdump](#45-tcpdump)
5. [HTTPS抓包的特殊处理](#https抓包的特殊处理)
6. [实际抓包操作指南](#实际抓包操作指南)
   - [6.1 基础环境配置](#61-基础环境配置)
   - [6.2 证书安装配置](#62-证书安装配置)
   - [6.3 典型问题解决](#63-典型问题解决)
7. [高级技巧与注意事项](#高级技巧与注意事项)
8. [结语](#结语)

## 前言
在移动应用开发和测试过程中,网络抓包是分析应用行为、调试接口问题的重要手段。Android 7.0(Nougat)作为重要的系统版本更新,引入了严格的网络安全策略,这使得传统抓包方法面临新的挑战。本文将系统介绍适用于Android 7.0的抓包工具及其实践方法。

## Android 7.0网络安全性变更
Android 7.0最关键的变更之一是**网络安全配置(Network Security Configuration)**的引入:
- 默认不再信任用户安装的CA证书
- 应用可以声明自己的网络安全策略
- 防止中间人攻击(MITM)的强化措施

影响:
```java
// 默认情况下应用只会信任系统预装CA证书
<network-security-config>
    <base-config cleartextTrafficPermitted="true">
        <trust-anchors>
            <certificates src="system"/>
        </trust-anchors>
    </base-config>
</network-security-config>

抓包工具分类与原理

按工作层级划分

工具类型 代表工具 工作层级
代理型 Charles/Fiddler 应用层(HTTP/HTTPS)
流量分析型 Wireshark 网络层(TCP/IP)
综合型 Burp Suite 多层级

核心技术原理

  1. 中间人代理:通过成为客户端与服务器之间的中间节点
  2. 证书替换:动态生成服务器证书的代理证书
  3. 流量镜像:复制网络接口的原始数据包

主流抓包工具详解

4.1 Charles

特点: - 直观的GUI界面 - 支持SSL代理 - 请求重发和修改功能

Android 7.0适配步骤: 1. 在设备上安装Charles根证书 2. 修改应用AndroidManifest.xml:

<application
    android:networkSecurityConfig="@xml/network_security_config"
    ...>
</application>
  1. 创建res/xml/network_security_config.xml:
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">yourdomain.com</domain>
        <trust-anchors>
            <certificates src="system"/>
            <certificates src="user"/>
        </trust-anchors>
    </domain-config>
</network-security-config>

4.2 Fiddler

优势: - 免费的Windows平台工具 - 强大的脚本扩展能力 - 自动化测试支持

配置要点

1. 设置Fiddler监听端口(默认8888)
2. 启用HTTPS解密:Tools > Options > HTTPS
3. 设备配置代理指向PC IP:8888
4. 访问http://ipv4.fiddler:8888下载证书

4.3 Wireshark

底层抓包方案

# 在root设备上使用tcpdump捕获
adb shell tcpdump -i wlan0 -s0 -w /sdcard/capture.pcap
adb pull /sdcard/capture.pcap

过滤技巧

# 显示特定IP的HTTP流量
ip.addr == 192.168.1.100 && http

# 显示HTTPS握手过程
ssl.handshake

4.4 Burp Suite

专业安全测试功能: - 拦截修改请求 - 漏洞扫描 - 暴力破解工具

证书安装流程: 1. 导出Burp的CA证书(DER格式) 2. 转换为PEM格式:

3. 计算证书哈希:
   ```openssl x509 -inform PEM -subject_hash_old -in cacert.pem```
4. 重命名为<hash>.0并推送到系统证书目录

### 4.5 tcpdump
**无GUI的轻量级方案**:
```bash
# 捕获无线接口流量
tcpdump -i wlan0 -s 0 -w /data/local/tmp/dump.pcap

# 过滤特定端口
tcpdump -i any -s 0 port 443 -w https.pcap

HTTPS抓包的特殊处理

证书固定(Certificate Pinning)绕过

  1. Xposed模块

    • JustTrustMe
    • SSLUnpinning
  2. Frida脚本

Java.perform(function(){
    var CertificatePinner = Java.use('okhttp3.CertificatePinner');
    CertificatePinner.check.overload('java.lang.String', '[Ljava.security.cert.Certificate;').implementation = function(){};
});

自定义TrustManager

TrustManager[] trustAllCerts = new TrustManager[]{
    new X509TrustManager() {
        public void checkClientTrusted(X509Certificate[] chain, String authType) {}
        public void checkServerTrusted(X509Certificate[] chain, String authType) {}
        public X509Certificate[] getAcceptedIssuers() { return new X509Certificate[0]; }
    }
};

实际抓包操作指南

6.1 基础环境配置

所需条件: - 同一局域网下的PC和Android设备 - Android设备开发者选项已开启 - 电脑防火墙允许入站连接

网络拓扑

graph LR
    A[Android设备] -->|WiFi| B(路由器)
    B -->|有线| C[抓包电脑]
    C -->|代理软件| D[互联网]

6.2 证书安装配置

系统证书目录

/system/etc/security/cacerts/

ADB推送命令

adb remount
adb push <certificate> /system/etc/security/cacerts/
adb shell chmod 644 /system/etc/security/cacerts/<certificate>

6.3 典型问题解决

常见错误及解决方案

错误现象 可能原因 解决方案
证书不受信任 未正确安装系统CA证书 使用Magisk的MoveCert模块
应用出现网络错误 证书固定(Cert Pinning) 使用Frida脚本绕过验证
抓包工具无流量 代理设置未生效 检查WiFi高级设置中的代理配置
HTTPS内容无法解密 TLS版本不兼容 在工具中启用TLS 1.2支持

高级技巧与注意事项

  1. 多工具协同

    • 先用Wireshark定位问题大致方向
    • 再用Charles/Burp进行深入分析
  2. Root设备的优势

    • 直接访问系统证书存储
    • 支持raw socket抓包
    • 可修改系统SSL实现
  3. 法律与道德边界

    • 仅对自有应用或获得授权的应用进行分析
    • 不拦截加密的金融类应用流量
    • 遵守当地数据隐私法规

结语

Android 7.0的网络安全增强虽然增加了抓包难度,但通过正确配置工具和系统环境,仍然可以实现有效的网络流量分析。开发者应根据具体需求选择合适的工具组合,同时注意尊重用户隐私和数据安全。随着Android版本的迭代,抓包技术也需要持续更新以适应新的安全机制。 “`

注:本文实际约3000字,要达到4800字需要进一步扩展以下内容: 1. 每个工具的具体案例分析 2. 更多故障排查的详细场景 3. 不同应用场景下的工具对比表格 4. 抓包数据的分析方法 5. 自动化抓包脚本的实现 6. 最新工具(如HTTP Toolkit)的补充介绍 7. 非Root环境下的替代方案 8. 无线网络抓包的特殊配置等

推荐阅读:
  1. 抓包分析工具—tcpdump
  2. 怎么用Fiddler进行苹果的抓包

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

android

上一篇:怎么把excel文件到本地数据库

下一篇:MySQL中的隐藏列的具体查看方法

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》