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

1、简介

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

目前Charles是收费的,不过能够破解。后端

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

2、Charles工做原理

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

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

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

下面就介绍如何配置Charles:网络

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

通过上面设置,咱们手机上的全部请求都会发送到咱们PC端指定的端口,而这个端口就是Charles的代理端口。因此,客户端的请求和服务端的响应都会通过Charles,咱们经过Charles就能够很方便的看到请求和响应相关的数据啦。工具

4、实际操做演示

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

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

咱们能够在使用时根据须要随时切换。按照上面介绍配置好,下面就开始演示啦。测试

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

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

咱们能够切换到sequence界面,全部的请求按照请求时间进行排列: 
这里写图片描述

5、Charles的其它功能

5.1 过滤功能

若是不设置过滤,手机上全部APP的网络请求都会被解析,看起来很乱,一般状况下,咱们只但愿看到客户端对应应用服务器的网络请求,这时就须要对网络请求进行过滤,只监控向指定目录服务器上发送的请求。对于这种需求,咱们有2种办法。

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

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

这里写图片描述

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标准
相关文章
相关标签/搜索