Charles是mac上的抓包神器,对于android和iOS的抓包分析很强大,真机和虚拟机都可以抓到。他是用Java开发的,所以跨平台,不仅可以在Mac上使用,Linux以及Window下都是可以使用的,当然需要安装JDK,才能运行,同时还有一个问题就是他是收费的。
下载
先到它的官网可下载到最新版本,这个下载有点慢,我已经将它放到网盘中了:http://pan.baidu.com/s/1kT6fFDl-
破解
破解很简单就是替换一个文件就可以了,破解文件:http://pan.baidu.com/s/1c0odimO
然后找到应用程序,右键show package contents(显示包内容)
然后点击Contents->Resources->Java:
然后将我们下载下来的charles.jar替换这里的charles.jar就可以了。然后再次打开Charles,就不会太提示30天使用期限了,破解搞定
另一种方式:用注册码破解
Help-Register to
注册码:
Registered Name: http://ninjasaga.cheat.center
Licence Key: 18e69f6d5bc820d4d3 -
抓包
下面来看一下如何进行抓包
- HTTP抓包
- 打开Charles程序
- 查看Mac电脑的IP地址,系统偏好设置->网络就可以查看到了,比如我的ip地址是:192.168.1.7
-
打开iOS设置,进入当前wifi连接(Mac在一个局域网内),设置HTTP代理Group,将服务器填为上一步中获得的IP,即192.168.1.7,端口填8888:
- iOS设备打开你要抓包的app进行网络操作5、Charles弹出确认框,点击Allow按钮即可
-
第二、HTTPS抓包
需要下载Charles证书,解压后导入到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中的代理关闭,这个是抓包时经常犯的错。
附上一篇更加详细的教程 iOS开发工具-网络封包分析工具Charles --- By 唐巧