工程师必备APP抓包技能

工程师必备APP抓包技能奇技·指南一台上网电脑就能完成APP抓包分析一条龙服务。这是一篇APP抓包分析总结性文章,采用APP模拟器与Web调试代理工具组合玩法。从此APP抓包分析能力变得…

大家好,又见面了,我是你们的朋友全栈君。

奇技 · 指南

一台上网电脑就能完成 APP 抓包分析一条龙服务。这是一篇 APP 抓包分析总结性文章,采用 APP 模拟器与 Web 调试代理工具组合玩法。从此 APP 抓包分析能力变得游刃有余,告别脚忙手乱。

本篇文章在 macOS 10.15.7 和 Windows 10 专业版环境测试通过,文章素材大部分以 Mac 环境为主。您只需要拥有一台能上网的电脑就能实现 APP 抓包分析,连实物手机都 可以不需要了。适用于 APP 功能测试、APP 安全测试、APP 开发、后端开发、以及对 APP 抓包感兴趣的人员。

1

第一步:安装 Android 模拟器

国内 Android 模拟器数量有很多,我们需要挑选支持 WiFi 代理设置的模拟器,以下两款 是我个人常用的(排序乱序):

工程师必备APP抓包技能

本文随机选择的是网易 MuMu 模拟器,两款模拟器都在多环境下测试通过。本文也分享了一种在 Android 7.0 以上正确抓取 HTTPS 数据包方法。

安装 MuMu 模拟器

由于 MuMu 模拟器安装非常简单,所以省略掉安装过程。

工程师必备APP抓包技能

启动 MuMu 模拟器

工程师必备APP抓包技能

2

在模拟器上安装 APP

界面化方式安装 APP

网易 MuMu 模拟器,安装 APP 非常简单,安装过程支持全界面化操作。APP 安装途径有 MuMu 模拟器内置的 “应用中心” 和 “本机 APK 安装”,当然也支持 “adb” 命令行方式进行安装。比如:安装了一款新应用,桌面上会新增一个应用图标,并且在图标的左边会有一个小红点。

工程师必备APP抓包技能

命令行方式安装 APP

安装 adb

首先安装 adb (Android Debug Bridge)命令行工具,adb 用户指南 https://developer.android.google.cn/studio/command-line/adb。在 Mac 环境下,安装 android-platform-tools。

工程师必备APP抓包技能

在 Windows 环境下,安装 Android 命令行工具,下载地址: http://tools.androidstudio.org/index.php/sdk,在这里省略掉了 adb 安装过程。 

连接 MuMu

以下 adb 命令在 Mac、Windows 环境下通用。

Windows 查看 TCP 端口监听状态

工程师必备APP抓包技能

Mac、Linux 查看 TCP 端口监听状态

工程师必备APP抓包技能

在 Mac 环境下,连接 MuMu 模拟器

工程师必备APP抓包技能

查看已连接的所有设备

工程师必备APP抓包技能

本地安装APK

$ adb -s emulator-5554 install /Users/fanjiapeng/Downloads/360freewifi_beta.apk

工程师必备APP抓包技能

3

安装 Web 调试代理工具

推荐两款常用 Web Debugging Proxy Tool(排序乱序):

工程师必备APP抓包技能

抓包工具1:Charles

由于软件安装非常简单,所以省略掉安装过程。不得不称赞一下,Charles 软件图标非常 漂亮,打开 Charles 界面如下图所示。

工程师必备APP抓包技能

模拟器设置 Charles 代理

代理设置步骤:

打开 MuMu 模拟器 → 系统设置 → 选择 WLAN →(长按出弹框)选择修改网络 → 填写 代理服务器信息 → 保存。

下图例子注解:

红框 1,填写的是本机的内网 IP 地址。

红框 2,填写的是 Charles 默认的端口号 8888。

工程师必备APP抓包技能

开启 Charles HTTPS 抓包

首先在模拟器里,安装 Charles 根证书。操作步骤如下:1. 通过浏览器访问 “chls.pro/ssl” ,下载 Charles 根证书。

工程师必备APP抓包技能

2. 点击左上角的 “下载箭头” 图标,安装 Charles 根证书。某些手机需要更改证书后缀名称。

工程师必备APP抓包技能

3. 设置锁屏PIN码或密码才能使用凭证存储。

工程师必备APP抓包技能

4. 证书安装成功。

工程师必备APP抓包技能

其次在 Charles 软件操作 SSL 代理设置。配置步骤: Proxy →SSL Proxying Settings → Add 。 

图示操作如下所示:

工程师必备APP抓包技能

Andorid 7.0+ 抓取 HTTPS 包

Android 7.0 版本以下请跳过此小节,不需要多此一举了。

1. Android 系统需要 root 权限 

2. 下载 Charless 根证书:charles-ssl-proxying-certificate.pem Help → SSL Proxying → Save Charles Root Certificate… 。

3. OpenSSL 命令行工具计算 pem 文件 hash 值

工程师必备APP抓包技能

4. 把 pem 文件重命名,Android 系统证书格式:.0 

工程师必备APP抓包技能

5. (先连接模拟器)把本地证书上传到手机目录中:/system/etc/security/cacerts

工程师必备APP抓包技能

如果出现错误提示:adb: error: failed to copy ‘xxx’ to ‘xxx’: remote couldn’t create file: Read-only file system。增加以下两步操作,再重新执行步骤 5

工程师必备APP抓包技能

访问控制设置

第一种自动设置方式:首次从 Android 设备建立连接时,Charles 软件会出现 IP 授权提示框。点击 “Allow”, Android 设备 IP 地址将添加到 Charles 中的 “访问控制” 列表中(由于这里使用的是 Android 模拟器,也就是本机 IP 地址)。

工程师必备APP抓包技能

第二种手动设置方式:点击右上角小图标 “Settings”,在弹出的下拉菜单项中选择 “Access Control Settings”,点击按钮 “Add”,完成白名单 IP 地址添加。

工程师必备APP抓包技能

开始 Charles 抓包

注意: 若抓取 HTTPS 包显示<unknow>,则说明证书配置不正确

工程师必备APP抓包技能

抓包工具2:Fiddler Everywhere

由于软件安装方式非常简单化,所以省略掉安装过程。打开 Fiddler Everywhere 界面如下图所示。

工程师必备APP抓包技能

Live Traffic Columns 功能区说明

工程师必备APP抓包技能

模拟器设置 Fiddler Everywhere 代理

代理设置步骤:

打开 MuMu 模拟器 → 系统设置 → 选择 WLAN →(长按出弹框)选择修改网络 → 填写 代理服务器信息 → 保存。

下图例子注解: 

红框 1,填写的是本机的内网 IP 地址。 

红框 2,填写的是 Fiddler Everywhere 默认的端口号 8866。

工程师必备APP抓包技能

开启 Fiddler Everywhere HTTPS 抓包

1. 点击右上角小图标 “Settings”,选择菜单项 “HTTPS”,勾选 “Capture HTTPS traffic”。

工程师必备APP抓包技能

2. 在模拟器里,通过浏览器下载 Fiddler Everywhere 根证书,剩余的安装步骤请参考 Charles 根证书安装:

工程师必备APP抓包技能

Andorid 7.0+ 抓取 HTTPS 包

Fiddler Everywhere 工具导出的根证书格式为 crt,需要把 crt 证书格式转换成 pem 格 式。其它配置步骤请参考 Charles 这章设置。

工程师必备APP抓包技能

开启远程连接

选择菜单项 “Connections”,勾选 “Allow remote computers to connect”,其它项保留默认设置即可。

工程师必备APP抓包技能

开始 Fiddler Everywhere 抓包

在 MuMu 模拟器中,操作需要被抓包的 APP,在 Fiddler Everywhere 中 “Live Traffic” 区域显示抓取到的所有 API 请求,点击其中一条 API,在 Fiddler 界面右边区域可以查看 Request、Response 详细信息。

工程师必备APP抓包技能

总结

虽然文章取材以 Mac 环境为主,若没有特殊注明,则说明在 Windows 和 Mac 环境下安 装步骤同质化,只是在安装过程中某些界面显示上会有一些差异,但并不影响整体的安装 流程。

本篇文章言简意赅介绍了 MuMu 模拟器安装,adb 工具的安装及使用,APK 多种安装方 式,两款抓包工具 Fiddler Everywhere、Charles 的安装及基础性配置。 

虽然 APP 抓包还有其它的方式,但 APP 抓包工具这两款依然是首选工具。调试代理工具 的介绍不是本章的重点,因为它们的能力远不止于此。篇幅有限,本章只讲解了 Android APP 抓包,iOS APP 抓包方式是相同的。 

延伸话题:关于 APP 抓包与反抓包策略,这是人与人之间的较量,这是一个长期博 弈的过程。

往期精彩回顾

MQTT协议之发布订阅

一种通过云配置处理应用权限弹框的方案

360Stack裸金属服务器部署实践

工程师必备APP抓包技能

工程师必备APP抓包技能

360技术公众号

技术干货|一手资讯|精彩活动

扫码关注我们

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/139134.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 小白勿进!安卓版java游戏盒下载「建议收藏」

    小白勿进!安卓版java游戏盒下载「建议收藏」为什么要分库分表?首先回答一下为什么要分库分表,答案很简单:数据库出现性能瓶颈。用大白话来说就是数据库快扛不住了。数据库出现性能瓶颈,对外表现有几个方面:大量请求阻塞在高并发场景下,大量请求都需要操作数据库,导致连接数不够了,请求处于阻塞状态。SQL操作变慢如果数据库中存在一张上亿数据量的表,一条SQL没有命中索引会全表扫描,这个查询耗时会非常久。存储出现问题业务量剧增,单库数据量越来越大,给存储造成巨大压力。从机器的角度看,性能瓶颈无非就是CPU、内存、磁盘、网络这些,要解决性能瓶颈

    2022年7月8日
    28
  • sm4算法加密解密

    sm4算法加密解密一、基本知识分组加密(英语:Blockcipher),又称分块加密或块密码,是一种对称密钥算法。它将明文分成多个等长的模块(block),使用确定的算法和对称密钥对每组分别加密解密。 对称加密、加密算法主要可以分为两种,一个是非对称加密算法,另一个就是对称加密算法。对称加密简单来说就是有一个明文,通过一个密钥加密之后得到一个密文,这个密文可以通过相同的密要解密得出和原来相同的明文二、sm…

    2022年10月6日
    2
  • vs2013下载及安装教程_VS2013下载

    vs2013下载及安装教程_VS2013下载1、下载vs2013http://download.microsoft.com/download/0/7/5/0755898A-ED1B-4E11-BC04-6B9B7D82B1E4/VS2013_RTM_ULT_CHS.iso2、安装使用工具:虚拟光驱(安装文件下载地址:http://pan.baidu.com/s/1jCqNZ)2.1将下

    2025年9月5日
    22
  • ostaskcreate函数_freertos

    ostaskcreate函数_freertosOSTaskCreate()函数原型:INT8UOSTaskCreate(void(*task)(void*pd),void*pdata,OS_STK*ptos,INT8Uprio)调用者:任务或者是初始化代码。作用:建立一个新任务,任务的建立可以在多个任务环境启动之前,也可以在正在运行的任务中建立,中断处理程序中不能建立任务,一个任务必须为无限循环结构,且不能有返…

    2025年8月26日
    7
  • c语言和java哪个有前途_Java和C语言哪个好就业?

    c语言和java哪个有前途_Java和C语言哪个好就业?编程语言多达600余种,有畅行多年的,有逐渐被人遗忘的,还有发展迅速的后起之秀。Java和C语言作为使用者较多的两大语言,受到很多编程初学者的青睐,很多人在Java和C语言之间不知道该选哪个,想从事软件开发工作的话,究竟学哪个好呢?从两者的起源来看,Java是C语言的后辈,它是在C语言的基础上发展得来,抛弃了难懂的指针概念,和C完全不同的是Java是一门面向对象的语言,因为Java的跨平台和可移植…

    2022年7月16日
    16
  • 用html语言编写一个简单的网页_html做网页

    用html语言编写一个简单的网页_html做网页最近学习了一点HTML,闲来无事写个网页看看,欢迎、改进、留言。演示地点:跳转到演示地点一、初始化页面body,button,dd,dl,dt,form,h1,h2,h3,h4,h5,h6,hr,input,legend,li,ol,p,pre,td,textarea,th,ul,a,div,span{margin:0;padding:0;}ul{list-style:none;}a{text-decoratio.

    2022年10月13日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号