如何使用Charles抓包-- 入门篇
下载地址
注意:首先需要下载java的运行环境支持(一般用burp的人肯定也都有装java环境)。装好java环境后,可以直接去百度搜索并下载charles的破解版,下载到破解版之后,里面一般会有注册的jar文件,然后注册后就可以永久使用了(ps:不注册的话,每次使用30分钟,工具就会自动关闭)。
Charles for Mac OS X (uses Apple Java 6)
电脑浏览器抓包
下面是pc端的抓包使用情况 Charles支持抓去http、https协议的请求,不支持socket。
先看一下Charles的庐山真面目吧!
接下来要把电脑设置为代理
这样你会发现,你通过浏览器请求的网址都会出现在这里,iOS模拟器的所有的网络请求也会出现在这里。点击某一个网址后,你会发现右边会出现这个网址请求的大概信息,点击具体的请求后会出现request和response等信息。
如果你发现返回的是乱码,首先看是在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 ,点击安装即可。然后你就可以告别那烦人的乱码,可以愉快地抓包了。
手机设置代理
1、去自己电脑的系统偏好设置-》网络-》选中现在连着的网(大部分人应该都是WiFi吧)可以查到自己这个电脑在现在这个wifi里的IP地址,比如我现在这个就是192.168.0.105(建议最好用私人网络,用公司网络的话可能会有限制会出现没反应的问题)。
2、然后找到自己手机也连着这个同名的wifi,然后选中右边的蓝色 i 。
3、然后进入到了这个无线局域网的高级设置页面。进去之后拉到最下方,找到HTTP代理字样。然后选中手动代理,填写自己电脑查到的ip地址,然后把端口调8888,最后点击左上角返回。返回值后系统会自动设置代理重新连接。这时候你的手机上网的过程中就要经过你的电脑了。刚用手机打开一个联网的程序,你的电脑上应该会显示一个弹窗问你【allow】还是【deny】,点击allow。之后手机发出的每一个请求都会被拦截出痕迹。
抓取http包
1、打开Charles程序
2、查看Mac电脑的IP地址,如192.168.0.104
3、打开iOS设置,进入当前wifi连接,设置HTTP代理Group,将服务器填为上一步中获得的IP,即192.168.0.104,端口填8888
4、iOS设备打开你要抓包的app进行网络操作
5、Charles弹出确认框,点击Allow按钮即可
抓取https包
1、下载Charles证书。解压后导入到iOS设备中(将crt文件作为邮件附件发给自己,再在iOS设备中点击附件即可安装;也可上传至dropbox之类的网盘,通过safari下载安装)
2、在Charles的工具栏上点击设置按钮,选择Proxy Settings…
3、切换到SSL选项卡,选中Enable SSL Proxying,别急,选完先别关掉,还有下一步
4、这 一步跟Fiddler不同,Fiddler安装证书后就可以抓HTTPS网址的包了,Charles则麻烦一些,需要在上一步的SSL选项卡的 Locations表单填写要抓包的域名和端口,点击Add按钮,在弹出的表单中Host填写域名,比如填api.instagram.com,Port 填443
接下来就跟HTTP抓包一样了。
上文中的一些操作,其实是有点出入的(HTTPS)抓包 : 1、如果没有设置ssl的话,那么你看到的ssl的接口中,会有一个报错:SSL Proxying not enabled for this host: enable in Proxy Settings, SSL locations,这个时候,在左侧的域名上点右键:enable ssl,就OK了。(其实就是上面的第4部,不过这个操作是简化操作,上面的第4步太麻烦了)。 2、如果这样还是不能抓包,那么官方会有一个说明。
更改请求和返回的内容
说明:charles有一个breakpoints功能,可以截断、修改客户端的request、repsponse请求。如在charles返回repsponse请求时,我们可以修改response,从而修改返回给客户端的内容。 eg. 我们要修改返回给客户端的 http://www.charlesproxy.com/ 中的Charles is an HTTP proxy,修改为HaloCoolnull。
具体: 1、 客户端先访问 http://www.charlesproxy.com/ 看下,可以看到charles抓取了一大堆数据,ctrl+f查找看下我们需要的Charles is an HTTP proxy这段文字,在哪个请求中。
可以看到是在这个 http://www.charlesproxy.com/ 请求中出现的。
2、在 http://www.charlesproxy.com/ 这条请求上右键,选择breakpoints。这样,当我们再访问 http://www.charlesproxy.com/ 这个站点时,charles分别会在这个请求的request、response停留,除非我们excute继续。
3、再访问 http://www.charlesproxy.com/ ,可以看到IE在等待响应 这里画箭头的地方可以看到Edit request修改request请求。我们这里只要修改response,因此直接点击excute继续下去。
4、 修改response 选择Edit Response中的html,将Charles is an HTTP proxy修改为HaloCoolnull。
*效果:*可以看到已经修改成功。
附录:第2步中除了可以在选择的url右键设置breakpoints外,还可以通过proxy | Breakpoints设置更加详细的断点参数,如只breakpoints response请求。
如何使用Charles抓包-- 入门篇的更多相关文章
- IOS charles抓包HTTP
charles通常用来截取本地的网络封包,但也可以用它来截取其他设备上的网络请求.本篇以IOS为例,讲解如何进行相应的操作. 1.charles上的设置 要截取iphone上的网络请求,我们要先将ch ...
- charles抓包工具分享
今天,给大组内QA做了一次分享,主要面向移动端测试,介绍了我平时在测试工作中用到的功能,大家都积极响应,现场搭环境,现场操作,现场提问解答,最后大家都成功的利用起来了,感觉很有成就感.下面介绍我今天分 ...
- charles抓包工具的中文乱码解决方法
charles是 MAC上最好用的抓包工具.charles 网上的参考文档已经很多,我就不再赘述啦.只是说说我在安装过程遇到的问题和解决方法,仅供参考. charles抓包的数据中的中文内容显示乱码, ...
- charles抓包
charles使用教程指南 charles使用教程指南 前言 移动APP抓包 PC端抓包 查看模式 其他功能 问题汇总 1. 前言: Charles是一款抓包修改工具,相比起burp,charles具 ...
- charles抓包,打断点,连接手机抓包
写给我自己: 如果是使用charles抓包.一定要tm的保证手机和电脑连的是一个网. charles抓本地包的操作 1.打开charles, 2.打开浏览器访问某网页,就可抓到对应的包 charles ...
- Charles抓包工具使用
Charles抓包工具使用和进行接口数据模拟 打开软件,选择Tools >> Map Local >> 勾选enable >> add >> ...
- charles抓包https设置
写在前面 https抓包的实现 (一)首先,电脑得装个证书 (二)然后,移动设备上安装证书 (三)最后,Charles添加SSL Proxying 写在前面 开发时,面对各种接口数据,绝大多数时间都会 ...
- jmeter数据库,charles抓包,Python循环语句
jmeter数据库,charles抓包,Python循环语句 一.Jemeter数据库 添加jar包数据库 jemeter=>浏览 添加JDBC Connection Configuration ...
- Charles 抓包工具(新猿旺学习总结)
Charles 抓包工具安装机操作 1.Charles 抓包工具是代理服务器工具,可以拦截数据,进行更改,返回数据,以实现前端后台的请求和响应数据的测试2.Charles 菜单介绍 Charles抓包 ...
随机推荐
- C++ void*的使用
void*类型可以存储任何类型的指针,使用的时候强制转化成对应类型的指针便可. #include <iostream> #include <vector> using name ...
- 错误 java.lang.ClassCastException: com.ylpw.sms.YZZYSenderUtil cannot be cast to ResourceBundle
出现错误: java.lang.ClassCastException: com.ylpw.sms.YZZYSenderUtil cannot be cast to ResourceBundle 百度搜 ...
- int unsigned实验
create table t1(a int unsigned,b int unsigned); insert into t1 select 1,2; select 1-2 from t1; Error ...
- MySQL 5.6查询优化器新特性的“BUG” eq_range_index_dive_limit
本文转自 http://www.imysql.cn 最近碰到一个慢SQL问题,解决过程有点小曲折,和大家分享下. SQL本身不复杂,表结构.索引也比较简单,不过个别字段存在于多个索引中. CREATE ...
- web移动端资源整(1)
meta基础知识 H5页面窗口自动调整到设备宽度,并禁止用户缩放页面 <meta name="viewport" content="width=device-wid ...
- ionic 集锦
一.隐藏返回按钮 场景:登录.注册成功后,阻止返回 //方法一 $ionicHistory.currentView($ionicHistory.backView()); $state.go('home ...
- DevExpress--xtraTabbedMdiManager控件
因项目需要要实现类似jquery的Tab效果,所以要用到xtraTabbedMdiManager控件 使用xtraTabbedMdiManager一般配合navBarControl(上期已写过) 在工 ...
- Bestcoder Round 47 && 48
1.Senior's Array(hdu 5280) 题目大意:给出大小为N的数组和P,求将数组中的某个元素替换为P后的最大连续子段和.N<=1000 题解: 1.送分题,比赛的时候只想到枚举替 ...
- android 混淆导致友盟反馈出错
最近混淆应用时出现了一个错误: 打包编译没问题,但程序运行之后,点击友盟的反馈就会导致程序报错: E/AndroidRuntime(7669): java.lang.RuntimeException ...
- 手把手教你在ubuntu上安装apache和mysql和php
1:首先安装apache:打开终端(ctrl+Alt+t), 输入命令:sudo apt-get install apache2即可安装, 安装完后,打开浏览器,在地址栏输入:localhost或者h ...