手机App抓包有什么用?教你定位接口问题

2026-04-06 09:10:39发布    浏览5次    信息编号:130031

友情提醒:凡是以各种理由向你收取费用,均有骗子嫌疑,请提高警惕,不要轻易支付。

手机App抓包有什么用?教你定位接口问题

本文以App作为例子,实际应用不限于App范围。

一、为什么要抓包

定位网络接口问题

分析其他App数据接口

学习网络协议,使用抓包工具分析网络数据更直观

针对于大部分的场合而言,是能够借助程序调试这种方式来对问题进行定位的,然而,存在着一些场景,在这些场景当中,运用抓包的方式去定位接口问题会显得更为准确,也更为方便,就像是下面所列举的这些场景:

你把数据传送给后台了,然而后台却没收到,那时能够针对接口开展抓包分析,瞧瞧究竟是后台处理存在问题,还是App未能把数据发送出去,又或者是App发送数据的格式出现错误了。

你跟后台接口联调,测通了情形,然而业务数据却对不上,你觉得是后台方面的问题,后台却认定是你发出的问题,能够抓包去确认问题究竟在何处。

线上出现被称作bug的问题,这个问题需要进行定位,然而你并不在公司,并且没有代码能够用于调试,不过可以直接通过抓包来展开分析。

页面在App里进行渲染的时候显得特别缓慢,去抓包查一下接口响应所需要的时长,看看是不是后台方面出现了性能方面的问题。

想要测试在那种网络状况较弱的环境里App的体验情况吗?有一种抓包工具,它能够进行流量限制的设置,能够开展接口堵塞的设置。

是否想要去改变某一个特定接口那里的响应报文,又是否想要多次重复发送某一个请求,然而App业务流程存在着限制,那么这种情况下可以尝试去使用抓包工具所提供的功能。

二、网络抓包原理

想要达成对App的网络数据抓包,就得监控App跟服务器交互中间的网络节点,去监控其中随便一个网络节点(网卡),获取全部经过网卡里的数据,针对这些数据依照网络协议予以解析,这便是抓包的基本原理。

可是,处于中间位置的网络节点,是不受我们掌控的,因而,在实际情况当中,基本上是没有办法达成抓包这一操作的,它仅能够在处于提供服务的一端以及接收服务的一端来开展抓包行为。

通常我们监控本地网卡数据,如下图:

存在于客户端侧进行捕获数据包操作的,是手机以及本地网络,而于后台侧开展抓包行为的,则是接入设备和服务器领域,这两者之间不存在任何意义上的差异。

本地网络所指的是WIFI的路由,要是直接去抓路由器的包,那还是颇为麻烦的,所以我们会在手机跟本地路由之间增添一层代理服务,如此一来只需要抓代理服务的网络数据便行了:

尽管于手机方面同样能够达成抓包,然而如同本地路由那般,抓包颇为繁杂,要是并非不得已,尽量不在手机端进行抓包。可是存在一种情形务必要在手机端抓包,那便是处于4G网络状况之下:

4G网络状态下如何抓包,以及它的劣势,我们后面章节再细讲。

除了通过代理,直接利用网卡驱动捕获所有流经网卡的数据:

好处在于,不用去做设置代理这个操作,然而缺点显著,仅仅能够针对数据开展分析工作,没办法再做进一步的控制。

像是没办法解析https报文,(除非存在https整数的情况);不可以篡改报文数据之类的。

三、网络协议

抓包是一种分析网络协议的过程,虽说抓包任务通过抓包工具将繁琐细节劳动完成了,可我们仍得去了解基础的网络协议,如此好帮扶我们更优地分析问题。

首先,要去知晓一下经典的那个OSI七层网络模型,还要清楚每层所具备的作用,其次,得对TCP、HTTP协议开展一番简单的了解。

虚线框中的部分是需要着重了解的。

HTTPS与HTTP有什么不同?

它是基于HTTP协议的那种改进,在TCP之上的会话层增添安全处理,它就是HTTPS,对于应用层而言,它和HTTP没什么不一样,这也就意味着,它是保障网络传输的安全性,对业务数据没有侵入。

简化理解大概是这个样子:

安全传输的协议之中,SSL和TLS是其中的,这其中又涵盖了证书认证,还有加解密以及数字签名。

项目中HTTPS的链路:

所以,在客户端跟后台,于编写网络接口之际,并不需要去在意SSL或者TLS,依照HTTP协议来进行处理就行。

倘若HTTPS于网络传输期间是历经加密的情形,那么被抓包所获取到的数据便是密文状态,若不经过解密这一操作流程,是不能够看到报文内容的。针对于此问题,像上图所呈现的WIFI环境之下设置代理的这种方式能够予以解决,具体的思路是:

此情形下,整个网络链路而言,依旧是通过HTTPS进行数据传输,然而,代理服务本身,却能够获取到呈现为明文形式的数据。

四、常用抓包工具

用来抓包的工具,比较常用的大概有4个,这些常被用以互补,配合着使用下来,基本上所有的平台,所有抓包的需求,都能够被满足。

平台最受欢迎抓包工具,免费、易用

Mac平台下最佳抓包工具,易于使用,收费软件,可一直试用

老牌抓包工具,跨平台,功能齐全、强大

命令行程序,适用于手机系统和后台系统

有必要说明一下,能够把数据保存为文件,直接通过打开来进行分析,对于后台或者手机抓包而言,运用起来是非常便利的。

、属于代理类的抓包工具

、属于网卡抓包工具

几个工具间的使用关系:

如果是平台,使用

如果是Mac平台,使用

如果是linux平台(手机或后台),使用

如果抓非HTTP(S)协议的包,如TCP包,则使用

命令

把所有网络接口那儿的数据抓起来,而后保存到当前目录下的.pcap文件里头:

-p -vv -s 0 -i any -w .pcap

-p 关闭混合模式

-vv 产生更详细的输出

-s 0 抓去完整的数据包

-i any 监听任意网络接口

-w 将抓去的包保存文件

混合模式,它能够监听所有经由该网卡的数据链路呢 ,话说关了混合模式呀 就能把有些垃圾数据给过滤掉哟。

五、真机抓包

有什么缘由要进行真机抓包呢?必然是没办法去设置代理服务了呀,就像在处于4G网络的情形下会直接和移动基站进行链接,这种状况下是没办法设置代理服务的。只要不是4G网络状态的时候,都是不建议进行真机抓包的。

iOS真机抓包

iOS 5之后,apple引入了名为RVI的特性,该特性是这样操作的,先把iOS设备通过USB数据线连接到mac上,接着利用工具基于iOS设备的UDID作为参数,在Mac之中建立一个名叫rvi的虚拟网络接口,之后便可在mac设备上进行使用,那么接下来等待工具针对创建好的接口开展相关的抓包分析工作。

具体步骤:

获得iOS设备的UDID

使用USB数据线将iOS设备和MAC连接

创建RVI接口  -s

使用抓取rvi0虚拟接口

移除RVI接口  -x

在真机上进行抓包,这表明没办法获取到HTTPS的明文数据,所以呢,真机抓包所具备的意义并不是很大,它仅仅能够让用户去分析网络接口的连通性,以及网络接口的正确性,然而却没办法去分析业务报文是不是正确。

真机抓包

它是linux系统,跟后台情形相同能够运用命令去抓包,然而这得要有root权限,由于通常手机系统并未带有抓包命令,需得自己去安装。

安装:

下载版本的

adb shell

su #切换root用户

通过执行chmod 777 /data/local来将目标路径也就是/data/local的权限予以修改。

adb进行push操作,把操作对象置于/data/local 所指的当中区域,此程序具备将物件拷贝到目标路径的功能。

若命令不能执行,需要赋予该文件chmod +x

使用:

adb shell

su

将/data/local/ ,以 -p参数 , -vv模式 , -s 0设置 , -i any选项 , -w /data/local/.这样的方式来进行操作。

当处于这种状况时,已然步入抓包情形,手机方面的所有网络请求,都会被予以捕获,且会被保存于文件之中。

导出文件:

通过adb pull ,将/data/local/ ,导出到当前目录。

使用打开文件,进行浏览分析

假若开展push以及pull操作未成功,或许是由于不允许直接对/data/local等系统目录进行操作,能够先把文件pull到sd卡,接着再将该文件从sd卡拷贝至/data/local,反之这一过程也是如此。

提醒:请联系我时一定说明是从奢侈品修复培训上看到的!