抓包工具Charles使用

介绍:

Charles其实是一款代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的。该软件是用Java写的,能够在Windows,Mac,Linux上使用。

主要功能:

1、支持SSL代理,可以截取分析SSL的请求

2、支持流量控制,可以模拟慢速网络以及等待时间较长的请求

3、支持AJAX调试,可以自动将json或xml数据格式化,方便查看

4、支持AMF调试,可以将Flash Remoting或Flex Remoting 信息格式化,方便查看

5、支持重发网络请求,方便后端调试。

6、支持修改网络请求参数。

7、指出网络请求的截取并动态修改。

8、检查HTML、CSS和RSS内容是否符合W3C标准。

抓包:

charles的首页:

 

 

 如果返回的信息是乱码,首先看是在http请求还是https请求,如果是http请求,那么就是返回来的中文乱码;解决方案:找到软件包安装路径,Contents目录下的info.plist,打开文件找到vmoption,添加-Dfile.encoding-UTF-8即可。

如果是https请求出现乱码,如下情况:

 

 

 这时候你就需要安装Charles的CA证书了,首先到去 http://www.charlesproxy.com/ssl.zip 下载CA证书文件。双击crt文件,选择总是信任就可以了,当然如果要抓取iPhone设备上的HTTPS请求,需要在iPhone上也安装一个证书,在手机浏览器输入这个网址:http://charlesproxy.com/getssl ,点击安装即可。然后你就可以告别那烦人的乱码,可以愉快地抓包了。如果这时候你还是抓不了的话,检查一下Proxy-->SSL Proxying Settings是否设置OK,设置参考下图:

 

 

 

抓包

首先使得手机和电脑在同一个局域网内,不一定非要一个IP段,只要是同一个路由器下就可以了。按照上面说的整数安装号,然后找到电脑的IP,可以选在在中断上输入ifconfig en0来获取,也可以在charles的help-Local IP Address查看IP

 

 

 

查看端口

打开Charles的代理设置:proxy-proxy seting,设置一下端口号,默认的是8888,这个只要不和其他程序冲突即可,并且勾选Enable transparent HTTP proxying

 

 

 手机上设置

 

 

手机上随便打开一个app,这时charle会弹出框确认是否进行代理,点击allow就可以,然后在Charles上就有手机请求

 

 

 

过滤

在 Charles 的菜单栏选择 Proxy->Recording Settings,然后选择 Include 栏,选择Add,然后填入需要监控的协议,主机地址,端口号,这样就达到了过滤的目的。如下图:

 

 

另外一种方法就是在一个网址上右击选中Focus,然后其他请求就会被放到另外一个叫other Host的文件夹里面,这样达到过滤目的

 

 断点

在Charles发起一个请求的时候,我们可以给某个请求打一个断点,然后来观察或者修改请求,或者修改请求返回的内容,但是在这个过程中要注意请求超时时间问题,要针对某个请求设置断点,只要请求网址求在这个右击选Breakpoints就可以断点某个请求了。

 

 

模拟网速慢

在Proxy->Throttle Seting,选择Enable Throttling,在Throttle preset下选择网络类型即可,

 

 

请求重定向

请求重定向的作用是什么呢?开中一般都是测试环境,如果我们想对比一下和线上版本的区别,可以测试的请求重定向到正式环境,在选择Tools->Map Remote下:

 

 

 

内容替换

有时候会测试 一下请求的参数不同会带来不同的返回结果是都达到业务需求,或需要不同的返回结果来验证我们对数据处理是否正确,我们可以使用Charles可以自己把控接口返回来的内容,比如数据的空与否,数据的长短等等,在Tools->Rewrite Settings下:

 

 

 

参考:https://www.cnblogs.com/cangqinglang/p/10257550.html

posted on 2019-12-19 14:25  lovely&lucy  阅读(1592)  评论(0编辑  收藏  举报

导航