Network 【Charles 抓包(原理篇)】

来源:互联网 发布:外观设计用什么软件 编辑:程序博客网 时间:2024/05/20 06:51

目前网上提供了很多篇文章是用来介绍在mac上使用Charles抓取手机App的网络包(简而言之就是——抓包)。抓包操作是我们必须掌握的一项技能,但是我发现网上整理的抓包方法不是太详细,所以我在此重新写一下抓包的步骤。


(1)抓包首先是要安装mac端的Charles。(Charles是在Mac下常用的截取网络封包的工具,在做iOS开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。Charles通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。)

对于下载和安装在这里不多介绍,网上有太多这样的帖子了。大家记得安装完软件之后需要破解一下(否则是30天试用期),在应用程序中显示包内容然后在Java文件夹中替换charles.jar这个文件。

(2)其次要将mac和iPhone连接在同一个局域网内。在同一个局域网内是可以相互连接到对方的广播的,也可以冒认接收端来截取数据。或者混乱arp数据包,进行全部抓取。那么如何将mac和iPhone连接到同一个局域网呢?方法一,将两个设备都连接一个wifi路由器;方法二,将mac连接以太网,然后在 系统偏好设置——共享 中设置共享以太网来源的连接,然后用wifi端口共享给电脑(手机)。然后再将手机去连接电脑发散出的wifi。

(3)接着在Mac上打开Charles Proxy,菜单栏操作:Proxy→Proxy Setting,检查端口,一般保持默认,HTTP Proxy 端口号为8888。

★在这里要着重解释说明一下,什么是端口?我们这里所指的端口不是指物理意义上的端口,而是特指TCP/IP协议中的端口,是逻辑意义上的端口。在网上我查询到这么一个有趣的比喻:如果把IP地址比作一间房子,端口就是出入这间房子的门。真正的房子只有几个门,但是一个IP地址的端口可以有65536个之多(255*255)!端口是通过端口号来标记的,端口号只有整数,范围是从0到65535。(如果超出这个范围,就会抓包失效)

另外我们知道,一台拥有IP地址的主机可以提供许多服务,比如Web服务、FTP服务、SMTP服务等,这些服务完全可以通过1个IP地址来实现。那么,主机是怎样区分不同的网络服务呢?显然不能只靠IP地址,因为IP地址与网络服务的关系是一对多的关系。实际上是通过 “IP地址+端口号” 来区分不同的服务的。所以说我们设置好端口号为8888后再去设置iPhone端。

(4)最后设置iPhone端的IP地址和端口号,打开网络,然后查看你连接mac的wifi信息,在最下面HTTP代理的手动设置中设置服务器为mac端IP地址,端口号和刚刚第三步中的端口号保持一致。这样一来我们就可以进行抓包操作了。

2 0
原创粉丝点击