网络抓包工具Charles的介绍与使用

转载:http://blog.csdn.net/chenyufeng1991/article/details/50370248

在复杂的App开发过程中,我们会涉及各种复杂的网络操作,各种API的调用和数据接收。如果我们只是通过控制台来查看网络的输入输出,就会非常麻烦。在Mac上有一款非常优秀的网络抓包工具——Charles,在iOS开发中也是常常用到。今天我们就来介绍如何安装使用Charles。关于Charles安装包、破解包和证书我已经上传至网盘:http://pan.baidu.com/s/1numMoTr    。大家可以下载直接安装。操作步骤如下:

(1)直接安装dmg文件,安装过程很简单,就不赘述了。由于Charles是收费的,安装后只有30天的试用期。我们就需要破解。

(2)打开Finder中的应用程序-->Charles-->右键显示包内容-->Contents-->Java,然后使用我破解包中的charles.jar替换原有的charles.jar文件。这样就能破解Charles了。破解成功后的Help显示如下:



(3)下面就是来使用Charles进行抓包。抓包分为Http抓包和Https抓包。下面分别讲解:

【Http抓包】

1.现在我们默认是在进行iOS开发,首先确保iPhone和Mac是在同一个局域网下(连同一个WiFi)。然后查看Mac的IP地址(打开网络偏好设置即可看到),假设我的IP地址为:192.168.1.2.    然后进入iPhone,进行HTTP代理设置,从关闭改为手动,在服务器位置输入刚才Mac的IP地址。在端口位置输入8888.如图:



2.然后就可以开始进行抓包了。打开Charles,会弹出是否允许,选择Allow即可。然后在iPhone上打开你要抓包的App,在Charles上就会看到抓包结果:




【Https抓包】

Https抓包配置比Http抓包配置麻烦一点点。首先把证书(在压缩包中的crt文件)安装到iPhone上。安装完成以后,其他配置都和http抓包一样。额外的配置如下(我是最新的3.11版本,配置可能与其他网上3.x版本的配置稍有不同):

小建议:由于在iPhone上安装crt证书文件比较麻烦,我这里给出比较简单的方式安装crt文件。单独的crt文件我也已经上传至网盘: http://pan.baidu.com/s/1bnZ9Eer   。安装步骤如下:

大家打开iPhone上的Safari浏览器,直接输入链接:http://pan.baidu.com/s/1bnZ9Eer     。出现如下界面:



然后直接点击打开,出现如下界面:直接点击安装即可,中途可能会让你输入你手机的密码,输入即可。



忽略以下警告,继续安装:



经过以上步骤,证书就已经安装到iPhone上了,当然你也可以随时删除它。下面进行的是在Charles上的配置。


1.点击Proxy-->SSL Proxying Settings ,就会出现如下界面。

 。


(2)选中Enable SSL Proxying。并在Locations处进行如下配置,点击Add,出现如下界面,Host处可以填一个主机名(也就是你想要抓包链接的主机名),然后在Port端口处填你想要的端口.这里相当于是起一个过滤的作用。只抓包你想要的主机地址和端口。当然,这里也可以使用通配符,如果你不确定,也不知道,或者你想要抓包所有的https包,这里也可以直接都为空,表示抓包所有的主机和端口;或者都分别填“*”星号,匹配所有的字符,抓包所有的https。

如图:

 。




(3)经过以上步骤,就可以进行Https抓包了。其他操作过程同http抓包。


    总结,当你抓包结束后,就要去iPhone里把网络的HTTP代理关闭,否则可能会造成无法上网的情况。这里只是对抓包的配置进行简单的介绍,抓包本身还是博大精深的,我接下去会继续进行详细的讲解。



github主页:https://github.com/chenyufeng1991  。欢迎大家访问!

最近极客学院Wiki正在进行IT职业技能图谱的制定,我主要负责iOS方向,大家感兴趣的可以一起参加,有问题或者修改可以直接给我发issues或者pull request。https://github.com/chenyufeng1991/skillmap  。

阅读更多

扫码向博主提问

喜欢雨天的我

博客专家

非学,无以致疑;非问,无以广识
  • 擅长领域:
  • java
  • cloud
  • android
  • ios逆向
  • angular
去开通我的Chat快问

没有更多推荐了,返回首页