首页 > 代码库 > iOS_青花瓷Charles抓包

iOS_青花瓷Charles抓包

使用青花瓷Charles抓取手机端的网络请求:

第一步,下载安装并打开Charles
技术分享技术分享
第二步,去掉菜单【Proxy】以下的【Mac OSX Proxy】和【Mozilla Firefox Proxy前面的"勾"
技术分享
第三步,让手机和电脑处在同一个局域网(连同一个Wifi)
技术分享
第四步,打开手机的设置(Setting),选择(无线局域网),点击所连的网络,滑动到最下方的【HTTP代理】,选择中间的手动,输入server的IP:【就是电脑的IP】port:8888
技术分享
假设mac电脑上en0的ip地址是192.168.1.56,而手机尽管连上了mac发出的wifi网络,但手机此时dhcp显示的ip地址是:192.168.2.34;rooter和DNS都是192.168.2.1,那么。此时http代理填入的ip地址就是192.168.2.1,例如以下图所看到的:
技术分享
第五步,回到电脑,点击Charles的【Start Recording】
技术分享
第六步。手机打开app应用,或者浏览器訪问网络,就能够被抓包了,尤其是返回JSON数据
技术分享

2016-06-10补充破解补丁和HTTPS抓包

今天就来看一下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....打开界面:

技术分享


二、破解

只是这个收费的,那么接下来就開始破解吧。事实上破解非常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。将server填为上一步中获得的IP。即192.168.1.7,port填8888:

技术分享

4、iOS设备打开你要抓包的app进行网络操作
5、Charles弹出确认框。点击Allowbutton就可以


第二、HTTPS抓包

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

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

技术分享    点击打开:技术分享    点击安装:技术分享

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

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

技术分享

这时候我们打开网易app:

技术分享

就能够看到数据了。至此抓包工作就搞定了。

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























































iOS_青花瓷Charles抓包