Mac下用charles:http+https抓包笔记

来源:互联网 发布:淘宝关键词热度查询 编辑:程序博客网 时间:2024/05/16 17:20

使用工具:charles

下载地址:http://www.charlesproxy.com/latest-release/download.do

(一下内容转载自:http://blog.csdn.net/jiangwei0910410003/article/details/41620363/)

今天就来看一下Mac上如何进行抓包,之前有一篇文章介绍了使用Fidder进行抓包

http://blog.csdn.net/jiangwei0910410003/article/details/19806999

不过可惜的是,Fidder使用C#开发的,所以就不能在Mac上使用了,不过还有另外一个抓包神器,就是Charles,它是Java开发的,所以跨平台,不仅可以在Mac上使用,Linux以及Window下都是可以使用的,当然需要安装JDK,才能运行,同时还有一个问题就是他是收费的。


一、下载

先到它的官网http://www.charlesproxy.com/可下载到最新版本,这个下载有点慢,我已经将它放到网盘中了:http://pan.baidu.com/s/1gdu0S4V

这个是3.9.3版本的,下载下来,安装就不多说了,很easy....打开界面:



二、破解

不过这个收费的,那么接下来就开始破解吧,其实破解很简单就是替换一个文件就可以了,可以在网上搜:Charles3.9.3破解的jar文件

这里我也是下载好了:http://pan.baidu.com/s/1i3gjEfj

下载下来之后我们就可以进行破解吧:

打开应用程序,选择Charles,选择显示包内容:


然后点击Contents->Resources->Java:


然后将我们下载下来的charles.jar替换这里的charles.jar就可以了。然后再次打开Charles,就不会太提示30天使用期限了,破解搞定


三、抓包
下面来看一下如何进行抓包

第一、HTTP抓包
1、打开Charles程序

2、查看Mac电脑的IP地址,系统偏好设置->网络就可以查看到了,比如我的ip地址是:192.168.1.7
3、打开iOS设置,进入当前wifi连接(Mac在一个局域网内),设置HTTP代理Group,将服务器填为上一步中获得的IP,即192.168.1.7,端口填8888:


4、iOS设备打开你要抓包的app进行网络操作
5、Charles弹出确认框,点击Allow按钮即可


第二、HTTPS抓包

需要下载Charles证书http://www.charlesproxy.com/ssl.zip,解压后导入到iOS设备中,这里我也是下载好了:

http://pan.baidu.com/s/1sjJiZYt,我们在iOS设备中使用safari打开这个链接:

    点击打开:    点击安装:

再次点击安装,证书就安装成功了

然后在Charles的工具栏上点击Proxy按钮,选择Proxy Settings…
切换到SSL选项卡,选中Enable SSL Proxying,别急,选完先别关掉,还有下一步
这一步跟Fiddler不同,Fiddler安装证书后就可以抓HTTPS网址的包了,Charles则麻烦一些,需要在上一步的SSL选项卡的Locations表单填写要抓包的域名和端口,点击Add按钮,在弹出的表单中Host填写域名,比如填api.instagram.com,Port填443


这时候我们打开网易app:


就可以看到数据了,至此抓包工作就搞定了。

注意:当我们不抓包的时候,会将Charles关闭,这时候iOS是访问不到网络的,因为设置了代理(就是Charles),这时候需要将iOS中的代理关闭,这个是抓包时经常犯的错。


==============   Https抓包总结   ===================================================
以上是别人人的博客copy过来的,之后自己要抓https的包 遇到很多很问题,

charles3.10以前和3.10以后版本有不同,我下载的是 3.11 版本的 

疑点1: 发现只要是https的 前面都是一把钥匙 不是那个小球形状,这个时候 我们要配置一下 ssl的enable 在 菜单 Proxy -- Proxy Settings... 把Enable transparent HTTP Proxying  这二个时候 我们的会发现 钥匙形状编程小球图标了 说明 charles已经抓到https的接口了 
疑点2:虽然抓到了https的包 但是 发现 打开接口层及目录都是 <unknow> 根本没法看接口参数 和返回来的数据,这个时候 我们需要两个步骤:
1.手机安装ssl的证书  (Charles 的 菜单 Help --->SSL Proxying --> Install Root Cer...on Mobile Device ... 他会弹出提示教我们手机打开safair 输入一个网址 就会安装了)
2 charles也要一个证书  (Charles 的 菜单 Help --->SSL Proxying --> Install Root Cer. 这时候会在钥匙串里面生成一个证书 证书是不受信任的 要 显示简介 然后修改信任 就可以了)

步骤截图:


 






最后看一下我截取到的https数据


大功告成

0 0
原创粉丝点击