美文网首页
IOS工具(一)抓包工具

IOS工具(一)抓包工具

作者: 孔雨露 | 来源:发表于2019-08-11 07:05 被阅读0次

    @[toc]

    抓包工具 分析

    移动端抓包工具有:

    1. Charles, Fidder 这两款软件都是在电脑上面允许,通过设置IP设置,网络包路由到电脑上抓取。
    2. Replica是移动端app ,可以直接在这款app中抓取手机其他App发送的http请求包。

    1. IOS抓包工具 Repica app使用

    1.1 安装Repica app

    app store搜索 repica下载:


    在这里插入图片描述

    首次运行需添加VPN配置:

    上传抓包示例:

    1.打开Replica App,点击Start开始抓包(注意免费版只能记录20条)


    在这里插入图片描述

    2.返回Replica ,点击Stop停止抓包-->然后点击屏幕下方Analytics按钮

    此时可以看到抓包信息,点击最上面的进入本次抓包:


    在这里插入图片描述

    2. IOS抓包工具 Charles mac抓包软件使用

    2.1 Charles 安装

    在iOS开发过程中,抓包是常见的必备技能之一。官方dmg下载地址:点击此处下载Charles

    安装完成后需要注意:

    1. 添加 SSL 配置
      Charles -> Proxy -> SSL Proxying Settings -> SSL Proxying
      添加对应的域名和端口,为了方便起见,可以直接添加, 通配符配置,端口号为。
    2. 配置手机代理
      手机和 Mac 连接到同一个 WIFI 网络。
      Android -> Settings -> Wi-Fi -> 长按当前 Wi-Fi -> Modify network
      Advanced options
      Proxy -> Manual
      Proxy hostname -> Mac 的 IP
      Proxy port -> 8888
      Save
    3. 安装 Charles 证书
      在手机浏览器地址栏输入:http://www.charlesproxy.com/getssl/,下载证书,点击安装。

    2.2 charles 工具介绍

    工具介绍:

    Charles 是在 Mac 下常用的网络封包截取工具,在做
    移动开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。

    Charles 通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。

    除了在做移动开发中调试端口外,Charles 也可以用于分析第三方应用的通讯协议。配合 Charles 的 SSL 功能,Charles 还可以分析 Https 协议。

    Charles 是收费软件,可以免费试用 30 天。试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过 30 分钟,并且启动时将会有 10 秒种的延时。因此,该付费方案对广大用户还是相当友好的,即使你长期不付费,也能使用完整的软件功能。只是当你需要长时间进行封包调试时,会因为 Charles 强制关闭而遇到影响。

    Charles 主要的功能包括:

    截取 Http 和 Https 网络封包。
    支持重发网络请求,方便后端调试。
    支持修改网络请求参数。
    支持网络请求的截获并动态修改。
    支持模拟慢速网络。
    Charles 4 新增的主要功能包括:

    支持 Http 2。
    支持 IPv6。

    配置:
    将 Charles 设置成系统代理
    之前提到,Charles 是通过将自己设置成代理服务器来完成封包截取的,所以使用 Charles 的第一步是将其设置成系统的代理服务器。

    启动 Charles 后,第一次 Charles 会请求你给它设置系统代理的权限。你可以输入登录密码授予 Charles 该权限。你也可以忽略该请求,然后在需要将 Charles 设置成系统代理时,选择菜单中的 “Proxy” -> “Mac OS X Proxy” 来将 Charles 设置成系统代理。如下所示:

    在这里插入图片描述

    之后,你就可以看到源源不断的网络请求出现在 Charles 的界面中。

    需要注意的是,Chrome 和 Firefox 浏览器默认并不使用系统的代理服务器设置,而 Charles 是通过将自己设置成代理服务器来完成封包截取的,所以在默认情况下无法截取 Chrome 和 Firefox 浏览器的网络通讯内容。如果你需要截取的话,在 Chrome 中设置成使用系统的代理服务器设置即可,或者直接将代理服务器设置成 127.0.0.1:8888 也可达到相同效果。

    Charles 主界面介绍:

    在这里插入图片描述

    Charles 主要提供两种查看封包的视图,分别名为 “Structure” 和 “Sequence”。

    Structure 视图将网络请求按访问的域名分类。
    Sequence 视图将网络请求按访问的时间排序。
    大家可以根据具体的需要在这两种视图之前来回切换。请求多了有些时候会看不过来,Charles 提供了一个简单的 Filter 功能,可以输入关键字来快速筛选出 URL 中带指定关键字的网络请求。

    对于某一个具体的网络请求,你可以查看其详细的请求内容和响应内容。如果请求内容是 POST 的表单,Charles 会自动帮你将表单进行分项显示。如果响应内容是 JSON 格式的,那么 Charles 可以自动帮你将 JSON 内容格式化,方便你查看。如果响应内容是图片,那么 Charles 可以显示出图片的预览。

    过滤网络请求
    通常情况下,我们需要对网络请求进行过滤,只监控向指定目录服务器上发送的请求。对于这种需求,以下几种办法:

    方法一:在主界面的中部的 Filter 栏中填入需要过滤出来的关键字。例如我们的服务器的地址是:http://yuantiku.com , 那么只需要在 Filter 栏中填入 yuantiku 即可。

    方法二:在 Charles 的菜单栏选择 “Proxy”->”Recording Settings”,然后选择 Include 栏,选择添加一个项目,然后填入需要监控的协议,主机地址,端口号。这样就可以只截取目标网站的封包了。如下图所示:

    在这里插入图片描述

    通常情况下,我们使用方法一做一些临时性的封包过滤,使用方法二做一些经常性的封包过滤。

    方法三:在想过滤的网络请求上右击,选择 “Focus”,之后在 Filter 一栏勾选上 Focussed 一项,如下图所示:

    在这里插入图片描述

    这种方式可以临时性的,快速地过滤出一些没有通过关键字的一类网络请求。

    截取 iPhone 上的网络封包
    Charles 通常用来截取本地上的网络封包,但是当我们需要时,我们也可以用来截取其它设备上的网络请求。下面我就以 iPhone 为例,讲解如何进行相应操作。

    Charles 上的设置

    要截取 iPhone 上的网络请求,我们首先需要将 Charles 的代理功能打开。在 Charles 的菜单栏上选择 “Proxy”->”Proxy Settings”,填入代理端口 8888,并且勾上 “Enable transparent HTTP proxying” 就完成了在 Charles 上的设置。如下图所示:

    在这里插入图片描述

    Phone 上的设置

    首先我们需要获取 Charles 运行所在电脑的 IP 地址,Charles 的顶部菜单的 “Help”->”Local IP Address”,即可在弹出的对话框中看到 IP 地址,如下图所示:

    在 iPhone 的 “ 设置 “->” 无线局域网 “ 中,可以看到当前连接的 wifi 名,通过点击右边的详情键,可以看到当前连接上的 wifi 的详细信息,包括 IP 地址,子网掩码等信息。在其最底部有「HTTP 代理」一项,我们将其切换成手动,然后填上 Charles 运行所在的电脑的 IP,以及端口号 8888,如下图所示:

    在这里插入图片描述

    2.3 charles 工具使用

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

    2.3.1 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按钮即可

    2.3.2 HTTPS抓包

    需要下载Charles证书点击这下载,解压后导入到iOS设备中

    在这里插入图片描述 点击安装 在这里插入图片描述

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

    然后在Charles的工具栏上点击Proxy按钮,选择Proxy Settings…
    切换到SSL选项卡,选中Enable SSL Proxying,别急,选完先别关掉,还有下一步,需要在上一步的SSL选项卡的Locations表单填写要抓包的域名和端口,点击Add按钮,在弹出的表单中Host填写域名,比如填api.instagram.com,Port填443


    ssl

    2.3.3 常用设置

    2.3.3.1 过滤请求
    1. Filter 栏–>过滤关键字
    2. 在 Charles 的菜单栏选择Proxy –> Recording Settings –>Include –> add( 依次填入协议+主机地址+端口号,实现只截取目标网站的封包 )
    在这里插入图片描述
    1. 在想过滤的网络请求上右击,选择 “Focus”,在 Filter 栏勾选上 Focussed


      在这里插入图片描述
    2.3.3.2 截取 iPhone 上的网络封包
    1. 先设置Charles : Charles 上的设置
      Proxy –> Proxy Settings –>端口填 8888 –>勾选 Enable transparent HTTP proxying .


      在这里插入图片描述
    2. 设置ios设备:
      首先,你的iphone链接的wifi要和电脑一样
      然后,选择你连接的WiFi,划到底部,配置代理,IP选择你电脑的IP,端口就是上面配置的8888
      比如:
    在这里插入图片描述
    1. 电脑上打开Charles, iPhone 上的任意连网的程序,
      然后,Charles 就会弹出 iPhone 请求连接的确认菜单,点击 “Allow” 即可完成设置。


      在这里插入图片描述
    2.3.3.3 模拟慢速网络
    1. 选择 Proxy –> Throttle Setting –>勾选上 Enable Throttling –> 选择Throttle Preset 类型


      在这里插入图片描述
    2. 若只想模拟指定网站的慢速网络,再勾选图中的 Only for selected hosts 项,然后在对话框的下半部分设置中add指定的 hosts 项。

    3. Android 抓包工具使用 Fidder 使用

    3.1 工具介绍

    ios android app都可以通过Fidder抓包分析。

    Fidder下载地址:点击这里下载Fidder

    1. 打开Fiddler, Tools-> Fiddler Options (配置完后记得要重启Fiddler)
      选中"Decrpt HTTPS traffic", Fiddler就可以截获HTTPS请求
      选中"Allow remote computers to connect". 是允许别的机器把HTTP/HTTPS请求发送到Fiddler上来


      在这里插入图片描述
    在这里插入图片描述

    记住这个端口号是:8888

    1. 设置手机
      首先获取PC的ip地址:命令行中输入:ipconfig,获取ip地址


      在这里插入图片描述
    2. 确定一下手机和PC是连接在同一个局域网中:进入手机的设置->点击进入WLAN设置->选择连接到的无线网,长按弹出选项框:如图所示: 在这里插入图片描述
      选择修改网络配置: 在这里插入图片描述

    选择显示高级选项,将代理设置成手动,将上面获取到的ip地址和端口号填入,点击保存。这样就将我们的手机设置成功了

    1. 下载Fiddler的安全证书

      使用Android手机的浏览器打开:http://10.2.145.187:8888, 点"FiddlerRoot certificate" 然后安装证书,如图: 在这里插入图片描述
    2. Fiddler抓包如下: 在这里插入图片描述

    ios 常见问题分析:

    参考技术大牛:
    牛人

    相关文章

      网友评论

          本文标题:IOS工具(一)抓包工具

          本文链接:https://www.haomeiwen.com/subject/hckjjctx.html