使用Charles进行移动APP抓包分析

本文详细介绍Charles抓包工具的功能及应用场景,包括基本配置步骤、移动端抓包分析、过滤功能及其它高级特性。适用于APP开发与测试人员。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、简介

Charles是目前最强大最流行的http抓包调试工具,Mac、Unix、Windows各个平台都支持。特别是做APP开发,调试与服务端的通信,Charles是必备工具。

目前Charles是收费的,不过可以破解。

  1. Charles下载地址:http://share.weiyun.com/6bbfc169f56589052957eae710a8612a
  2. 破解方式
    解压charles_3.11.4_Crack.rar,将其中的charles.jar替换掉Charles安装路径中的charles.jar即可

二、Charles工作原理

Charles本质是就是一个http抓包分析工具,在工作的时候需要先把charles设置成代理服务器,这样所有的网络请求都会经过charles了。

三、对移动端进行抓包分析

我们在进行APP开发或测试时,经常需要知道APP的每一步操作调用的是哪个接口,请求参数是什么,返回值是什么,作为服务端,有时还需要对APP的某一个操作进行debug。通过简单配置,我们就可以将我们手机APP上所有请求发送到PC端Charles代理中,Charles会自动抓取http网络包分析请求和返回值,当然这些只是Charles最基本的功能。

下面就介绍如何配置Charles:

  1. 手下手机和电脑必须在一个局域网内,不一定非要是一个ip段,只要是同一个路由器下就可以了
  2. 在PC端安装Charles,关掉防火墙,打开Charles,进入Proxy->Proxy Setting,设置http proxy代理端口:8888(一般默认设置为这个)
    这里写图片描述
  3. 在移动端,进入无线网络->点击当前连接的wifi->代理设置->设置服务器地址和端口(各手机配置不太一样),这里的服务器地址就是PC端的IP地址,端口就是上面设置PC端的代理端口8888
    这里写图片描述

经过上面设置,我们手机上的所有请求都会发送到我们PC端指定的端口,而这个端口就是Charles的代理端口。所以,客户端的请求和服务端的响应都会经过Charles,我们通过Charles就可以很方便的看到请求和响应相关的数据啦。

四、实际操作演示

Charles提供了两种查看封包的视图,分别是StructureSequence

1. Structure视图将网络请求按访问的域名分类。
2. Sequence视图将网络请求按访问的时间排序。

我们可以在使用时根据需要随时切换。按照上面介绍配置好,下面就开始演示啦。

第一步,我们打开我们的APP,输入用户名密码,点击登录
这里写图片描述

第二步(初次使用可能要求我们给予权限,点击允许即可),再看我们的Charles主界面,structure视图中可以看到这次操作的http请求响应信息,并且请求按域名进行了分组
这里写图片描述

我们可以切换到sequence界面,所有的请求按照请求时间进行排列:
这里写图片描述

五、Charles的其它功能

5.1 过滤功能

如果不设置过滤,手机上所有APP的网络请求都会被解析,看起来很乱,通常情况下,我们只希望看到客户端对应应用服务器的网络请求,这时就需要对网络请求进行过滤,只监控向指定目录服务器上发送的请求。对于这种需求,我们有2种办法。

1. 在主界面的中部的Filter栏中填入需要过滤出来的关键字。例如我们的服务器的地址是:`http://*.zitech.com`,那么只需要在`Filter`栏中填入`zitech.com`即可。

2. 在Charles的菜单栏选择`"Proxy"->"Recording Settings"`,然后选择`Include`栏,选择添加一个项目,然后填入需要监控的协议,主机地址,端口号。这样就可以只截取目标网站的封包了。如下图所示:

这里写图片描述

5.2 其它功能

1. 支持SSL代理。可以截取分析SSL的请求。
2. 支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。
3. 支持AJAX调试。可以自动将json或xml数据格式化,方便查看。
4. 支持AMF调试。可以将Flash Remoting 或 Flex Remoting信息格式化,方便查看。
5. 支持重发网络请求,方便后端调试。
6. 支持修改网络请求参数。
7. 支持网络请求的截获并动态修改。
8. 检查HTML,CSS和RSS内容是否符合W3C标准
### 使用 Charles 进行 App 抓包 #### 准备工作 为了成功使用 Charles 对应用程序进行抓包,需先完成软件的安装与基本配置。确保已下载并安装 Charles 工具,并按照官方指南完成了 SSL 证书的信任设置[^2]。 #### 配置设备网络环境 使目标移动设备和运行 Charles 的计算机处于同一 Wi-Fi 网络下至关重要。对于 Android 设备而言,在无线网络设置中手动指定代理服务器地址为电脑 IP 地址,端口设为8888(默认情况下),这一步骤确保了所有来自该设备的数据流量都会被重定向到 Charles 中接受监控[^1]。 #### 设置 Charles 捕捉规则 启动 Charles 后,默认会自动捕捉所有经过本机浏览器发出的 HTTP 请求;但对于特定的应用程序或 URL,则可能需要自定义过滤条件来聚焦关注点。可以通过菜单栏中的 "Proxy" -> "Recording Settings..." 来调整哪些主机名应该被捕获或是忽略不计[^3]。 #### 处理 HTTPS 流量 当涉及到加密通信时,Charles 提供了一个简便的方法——SSL 代理功能。开启此选项后,Charles 可以充当中间人角色解密并重新封装 HTTPS 数据流以便于观察其内部结构。需要注意的是,在首次尝试访问某个新的安全站点之前,应当确认已在客户端操作系统里导入了由 Charles 自动生成的安全根证书文件[^4]。 ```bash # 在 Mac 上安装 Charles 自签名 CA 证书命令示例 sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ~/Downloads/charles-ssl-proxy-ca.der ``` #### 开始分析 一旦上述准备工作全部就绪,就可以打开想要测试的应用程序开始正常操作了。此时返回至 Charles 主界面即可看到实时更新的日志列表展示着每一次交互过程及其携带的信息体内容。利用左侧树状视图可以方便快捷地定位感兴趣的条目进一步探究细节之处。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值