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

一、简介

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标准
时间: 2024-08-01 11:31:03

使用Charles进行移动APP抓包分析的相关文章

GO语言实现的http抓包分析工具pproxy介绍_Golang

引言 web 开发和 API 开发中难免要详细分析 http 请求和响应信息.web 开发的话,浏览器提供了便利的工具,比如 chrome 和 IE 都带了 develop tool,而 firefox 更是有十分强大的 firebug,可以让 http 请求的所有秘密一览无遗.目前是 app 大流行的时代,想要观察 app 中得 http 请求的秘密,浏览器的工具和插件都无能为力,有不少本地化的软件可以很好的解决这个问题,Windows 平台下有大名鼎鼎的 Fiddler 和 HttpWatc

移动终端抓包分析

  网页抓包分析 支持平台:iOS 1. 从appstore中安装httpwatch basic(高富帅的同学可以装一个pro版本) 2. 运行httpwatch,输入目标URL [图一]运行启动界面 [图二]Web访问界面 [图三]切换到记录界面 注:basic版本不能查看响应数据 综合抓包分析 一.环境准备 1. 在PC上安装HttpAnalyzer或Fiddler 2. 在PC上安装Android Develop Tool 二.抓包示例 1. 创建SDCARD镜像.用于下载安装APP 1)

抓包技术-关于在镜像端口抓包分析问题

问题描述 关于在镜像端口抓包分析问题 30C 实验中若是使用具备镜像端口功能的路由器,将流经实际网卡的所有数据包都镜像到另一个端口,请问可以用哪些方法捕获该镜像端口上的数据包并进行解析分析.各种方法的优缺点??急急急 解决方案 http://wenku.baidu.com/link?url=pvyFRbVOfcOBW2QrAMWA7_3HpfJarLPn46KMlko5vWStybqRRxgIyozPgs_gWC5st2YRH-4nzRioAu8n2zeZuKUi4AzHhe1Z4cbaxl6s

sniffer抓包分析实验

抓包分析 本机IP地址:192.168.2.93 FTP服务器:192.168.2.212 TCP连接(三次握手) TCP第一次握手:192.168.2.93向192.168.2.212发送请求连接(SYN=1) P第二次握手:192.168.2.212回应192.168.2.93确认连接(ACK=1,SYN=1) TCP第三次握手:192.168.2.93回应192.168.2.212(ACK=1)

DHCP过程抓包分析

通过抓包分析,DHCP四个包都为广播包,并且DHCP服务器为了防止地址冲突,在分配给DHCP客户端地址前,还发出arp包,如果是DHCP中继情况,则发出icmp包. 1.DHCP客户端发出DHCP Discover广播包: 二层:源MAC---客户端的mac,目标MAC---FFFF.FFFF.FFFF 三层:源 IP---0.0.0.0,      目标 IP---255.255.255.255 2.DHCP收到DHCP Discover广播包,从地址池中选出从低到高选出地址,并发出arp包:

Linux网络抓包分析工具Tcpdump基础篇[参数说明]

很多故障排除或者网络分析的时候都需要进行抓包分析,windows下可以通过sniffer或者wireshark,科来等工具: linux下原生已经有了一个很强大的分析工具tcpdump,今天来测试一下这个工具的一些常用方法或者参数 首先需要查看设备上有哪些设备可以抓取,通过tcpdump -D会列出可以抓取的网络设备名以及编号 1 [root@localhost ~]# tcpdump -D 2 1.eth0 3 2.usbmon1 (USB bus number 1) 4 3.usbmon2

使用WinPcap抓包分析网络协议

创建一个使用wpcap.dll的应用程序 用 Microsoft Visual C++ 创建一个使用 wpcap.dll 的应用程序,需要按一下步骤: 在每一个使用了库的源程序中,将 pcap.h头文件包含(include)进来. 如果你在程序中使用了WinPcap中提供给Win32平台的特有的函数, 记得在预处理中加入WPCAP的定义. (工程->设置->c/c++->预处理程序定义      中添加WPCAP) 如果你的程序使用了WinPcap的远程捕获功能,那么在预处理定义中加入H

browser-求助wireshark 抓包分析问题

问题描述 求助wireshark 抓包分析问题 抓到包中含有大量的BROWSER包,请个位大神帮忙分析一下 17131 14.797453000 10.61.139.41 10.61.139.255 BROWSER 247 Host Announcement ╨φ▓?, Workstation, Server, Print Queue Server, NT Workstation, Potential Browser17131 14.797453000 10.61.139.41 10.61.13

stm32 usb-STM32 USB Bus_Hound抓包分析

问题描述 STM32 USB Bus_Hound抓包分析 我在Main函数丽定义了一个数组发送了三个数据,我能不能在抓到的数据包里找到我发的数据.