网络数据抓包 整理总结

article/2025/8/17 7:06:08

 在开发过程中,我们经常会碰到需要抓取网络接口请求数据来进行调试或者接口对接的情况,有时候某些金融行业的前端或者APP过检也会对APP进行抓包分析,所以在这里简单做一下整理,方便日后复习。

一、常用的抓包工具

抓包工具有很多,小到最常用的web调试工具Firebug,达到通用的强大的抓包工具Wireshark。为什么使用 Fiddler?原因如下:

(1) Firebug虽然可以抓包,但是对于分析http请求的详细信息,不够强大。模拟http请求的功能也不够,且 Firebug 常常是需要“无刷新修改”,如果刷新了页面,所有的修改都不会保存。

(2) Wireshark是通用的抓包工具,但是比较庞大,对于只需要抓取http请求的应用来说,似乎有些大材小用。

(3) Httpwatch 也是比较常用的http抓包工具,但是只支持IE和 firefox浏览器(其他浏览器可能会有相应的插件),对于想要调试chrome浏览器的http请求,似乎稍显无力。

(4) Fiddler 是一个使用本地 127.0.0.1:8888 的 HTTP 代理,任何能够设置 HTTP 代理为 127.0.0.1:8888 的浏览器和应用程序都可以使用 Fiddler,Fiddler 可以将网络传输发送与接受的数据包进行截获、重发、编辑、转存等操作。

二、Fiddler抓包工具的使用

(1)原理

Fiddler是位于客户端和服务器端的HTTP代理,也是目前最常用的http抓包工具之一 。 它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是web调试的利器。

既然是代理,也就是说:客户端的所有请求都要先经过Fiddler,然后转发到相应的服务器,反之,服务器端的所有响应,也都会先经过Fiddler然后发送到客户端,基于这个原因,Fiddler支持所有可以设置http代理为127.0.0.1:8888的浏览器和应用程序。使用了Fiddler之后,web客户端和服务器的请求如下所示: 

 Fiddler 作为系统代理,当启用 Fiddler 时,IE 的PROXY 设定会变成 127.0.0.1:8888,因此如果你的浏览器在开启fiddler之后没有设置相应的代理,则fiddler是无法捕获到HTTP请求的。

下面再看下Fiddler 是怎么抓取移动端设备的数据包的,先来说说移动设备怎么去访问网络,看了下面这张图:

image

 可以看得出,移动端的数据包,都是要走wifi出去,所以我们可以把自己的电脑开启热点,将手机连上电脑,Fiddler开启代理后,让这些数据通过Fiddler,Fiddler就可以抓到这些包,然后发给路由器(如图):

image

(2)使用方法

先贴下载地址:

Fiddler 下载地址

不过这个貌似只有30天试用期,需要的可以自己找找破解版,我是用联想电脑管家上面的软件商店直接装的,好像没这个问题。

先看一下 Fiddler 抓取到的数据包:

 解释一下这些圈红的地方什么意思:

名称

含义

#

抓取HTTP Request的顺序,从1开始,以此递增

Result

HTTP状态码

Protocol

请求使用的协议,如HTTP/HTTPS/FTP等

Host

请求地址的主机名

URL

请求资源的位置

Body

该请求的大小

Caching

请求的缓存过期时间或者缓存控制值

Content-Type

请求响应的类型

Process

发送此请求的进程:进程ID

Comments

允许用户为此回话添加备注

Custom

允许用户设置自定义值

图标

含义

clip_image001[13]

请求已经发往服务器

clip_image002[4]

已从服务器下载响应结果

clip_image003[4]

请求从断点处暂停

clip_image004[4]

响应从断点处暂停

clip_image005[4]

请求使用 HTTP 的 HEAD 方法,即响应没有内容(Body)

clip_image006[4]

请求使用 HTTP 的 POST 方法

clip_image007[4]

请求使用 HTTP 的 CONNECT 方法,使用 HTTPS 协议建立连接隧道

clip_image008[4]

响应是 HTML 格式

clip_image009[4]

响应是一张图片

clip_image010[4]

响应是脚本格式

clip_image011[4]

响应是 CSS 格式

clip_image012[4]

响应是 XML 格式

clip_image013[4]

响应是 JSON 格式

clip_image014[4]

响应是一个音频文件

clip_image015[4]

响应是一个视频文件

clip_image016[4]

响应是一个 SilverLight

clip_image017[4]

响应是一个 FLASH

clip_image018[4]

响应是一个字体

clip_image019[4]

普通响应成功

clip_image020[4]

响应是 HTTP/300、301、302、303 或 307 重定向

clip_image021[4]

响应是 HTTP/304(无变更):使用缓存文件

clip_image022[4]

响应需要客户端证书验证

clip_image023[4]

服务端错误

clip_image0244

会话被客户端、Fiddler 或者服务端终止

再看一下右侧工具栏我们常用的几个地方:

 这里面,我使用最多的就是 Inspectors 和 Fiters 了,关于 Fiters 啰嗦两句:

勾选左上角的Use Filters开启过滤器,这里有两个最常用的过滤条件:Zone和Host

1、Zone 指定只显示内网(Intranet)或互联网(Internet)的内容:

2、Host 指定显示某个域名下的会话:

 如果框框为黄色(如图),表示修改未生效,点击红圈里的文字即可

修改完后可以点击右上角的 Actions ,里面有个立即生效

(3)遇到的问题

a. Android 高版本手机抓包 报SSLHandshakeException异常问题

使用Fiddler抓HTTP/HTTPS包,Android7.0以后https抓包失败问题

原因:在Android 6.0 (API level 23)及以前,APP默认信任系统自带的CA证书以及用于导入的CA证书,Android 6.0 (API level 23)以后,APP默认只信任系统自带的CA证书,对于用户导入的不予理会。Google也给出了办法,怎么在Android7.0及以后的系统中,让APP信任我们手工导入的CA证书。方案如下:

解决方案:

在编译APK之前,在你的Android项目的res文件夹下创建xml文件 [net_security_config.xml] 内容为:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config xmlns:android="http://schemas.android.com/apk/res/android"><base-config cleartextTrafficPermitted="true"><trust-anchors><certificates src="system" overridePins="true" /><certificates src="user" overridePins="true" /></trust-anchors></base-config>
</network-security-config>

然后在AndroidManifest.xml中的application标签下添加

android:networkSecurityConfig="@xml/net_security_config.xml"

编译安装,然后该APP就信任用户添加的CA证书,从而Fiddler就可以抓到它的HTTPS包并解密内容。

Fiddler 抓包详细教程(建议收藏)

Fiddler抓包工具总结(建议收藏)

Fiddler实现手机抓包——小白入门

Fiddler(一) - Fiddler简介

三、Wireshark抓包工具的使用

暂时还没详细学习,后续补充


http://chatgpt.dhexx.cn/article/2yhU69nI.shtml

相关文章

手机数据抓包的N种方法

在对移动数据业务进行质量指标分析的过程中&#xff0c;需要在手机终端侧进行抓包分析。由于Android系统是当前的主流系统之一&#xff0c;因而实现在Android系统手机端进行抓包分析对移动数据业务质量指标分析具有重要作用。 方法一&#xff1a;Tcpdump命令抓包 工具准备&a…

matlab调用函数出nan,求助:Matlab的fmincon函数出现RCOND = NaN

输出为&#xff1a; Max Line search Directional First-order Iter F-count f(x) constraint steplength derivative optimality Procedure 0 14 -0.892004 Inf Infeasible start point Warnin…

Matlab求解规划问题之 fmincon函数

Matlab规划问题之 fmincon函数 常用来求解单决策函数的规划问题 语法&#xff1a;[X,FVAL] fmincon(fun,x0,a,b,Aeq,Beq,LB,UB,nonlcon,options)&#xff1b; X 为最终解 &#xff0c; FVAL为最终解对应的函数值 注意&#xff1a;求最大值时&#xff0c;结果FVAL需要取反 fun …

fmincon函数求极值

matlab中的函数fmincon可用于求可以求取多元函数的极值&#xff0c;其约束包括五种&#xff1a;1、线性不等式 约束&#xff1b;2、线性等式约束&#xff1b;3、变量约束&#xff1b;4、非线性不等式约束&#xff1b;5、非线性等式约束。 其形式如下&#xff1a; x fmincon(…

matlab的fmincon函数如何传入额外参数或数据?

文章目录 一、关于matlab的fmincon函数二、使用匿名函数句柄传入额外参数或数据例子 一、关于matlab的fmincon函数 fmincon是matlab的带约束的非线性优化模型的求解函数&#xff0c;可以求解优化模型的局部最优解。带约束的非线性优化模型可以描述为&#xff1a;   fmincon函…

python调用matlab 性能_Python调用MATLAB实现fmincon函数

motivation&#xff1a; 1.要实现“符号几何规划”的功能&#xff0c;使用MATLAB自带的fmincon函数来实现 2.工程的代码是通过Python来完成的&#xff0c;需要Python调用MATLAB实现 思路&#xff1a; 1.使用Python直接生成约束条件&#xff0c;目标函数&#xff0c;初始值等函数…

轨迹跟踪求解Fmincon函数(2)

1.Fmincon函数介绍 在matlab中&#xff0c;fmincon函数可以求解带约束的非线性多变量函数(Constrained nonlinear multivariable function)的最小值,即可以用来求解非线性规划问题 matlab中&#xff0c;非线性规划模型的写法如下 2.基本语法 [x,fval]fmincon(fun,x0,A,b,Aeq…

matlab中fmincon函数求最大值,matlab fmincon函数用法

满意答案 ufm42724 2013.09.07 采纳率&#xff1a;55% 等级&#xff1a;12 已帮助&#xff1a;8663人 你的代码中调用fmincon函数中total1不应该是myfun目标函数吗&#xff0c;后面的那个total1应该是mycon为非线性约束 function f myfun(x) f 0.192457*1e-4*(x(2)2)*x(1)…

Matlab fmincon函数

文章目录 函数功能函数表达及用法**trust-region-reflective算法的说明 (梯度)****Hessian矩阵应用说明** 返回值 函数功能 获取约束的非线性多变量函数的最小值 样式&#xff1a; 其中,c(x), ceq(x) 分别表示非线性的约束条件&#xff0c;而A, Aeq表示的是线性约束。 函数表…

MATLAB fmincon函数 进阶资料(磕盐记录)

说明&#xff1a; 阅读本文前&#xff0c;请先阅读 参考网址1-基础使用 中的案例&#xff0c;本文适用于运行过 fmincon函数 案例的读者&#xff01;&#xff01;&#xff01; 一、fmincon函数&#xff1a;算法介绍 fmincon函数中&#xff0c;可以调用五种算法&#xff08;具…

通过matlab自带的fmincon工具箱函数实现多维目标优化仿真

目录 一、理论基础 二、核心程序 三、仿真结论 一、理论基础 fmincon是matlab自带的优化工具箱函数之一&#xff0c;用于求解具有约束条件的多维目标优化问题。本文将详细介绍fmincon的用法&#xff0c;包括函数参数、优化模型的构建、约束条件的处理、求解结果的分析等。 …

MATLAB优化函数fmincon的简介

1 需要解决的问题 能效优化问题&#xff1a; 优化目标为找到最小化J对应的u、v。 时间为从零点开始的24小时&#xff0c;每隔20分钟取一次值&#xff0c;不同时间段的u、v不同&#xff0c;最后得到的u、v为72维的向量。 2 fmincon函数 fmincon解决的是形如下面问题的最优化…

Matlab非线性规划之fmincon()函数

关于非线性规划 非线性规划问题是指目标函数或者约束条件中包含非线性函数的规划问题。 前面我们学到的线性规划更多的是理想状况或者说只有在习题中&#xff0c;为了便于我们理解&#xff0c;引导我们进入规划模型的一种情况。相比之下&#xff0c;非线性规划会更加贴近实际的…

OpenJDK各平台版本下载

开源清华大学镜像 https://mirrors.tuna.tsinghua.edu.cn/AdoptOpenJDK/ https://share.weiyun.com/pggTSFlP

如何下载OpenJDK安装版本

进入OpenJDK 官网&#xff1a; 选择需要的版本即可下载。

OpenJDK windows下安装过程

Windows下安装OpenJDK&#xff0c;需要额外配置系统环境变量(这和n年以前安装OracleJDK一样。。。) 下载OpenJDK12&#xff0c;并解压至任意文件夹 地址&#xff1a;http://jdk.java.net/12/ 配置环境变量 1.设置JAVA_HOME&#xff0c;指向openJDK目录 2.新建系统变量CLASS…

windows下载openjdk1.8

下载页&#xff1a;http://jdk.java.net/ openjdk8下载地址&#xff1a;https://jdk.java.net/java-se-ri/8-MR3&#xff08;注意是32位的&#xff0c;官网64位没找到&#xff09; 如图&#xff1a; 然后&#xff0c;1.添加环境变量&#xff1a;JAVA_HOMEF:\java-se-8-ri\bin…

windows jdk安装;windows openjdk安装

因为最近重新装了系统&#xff0c;要安装jdk环境。以前都是安装的oracle jdk&#xff0c;所以今天尝试安装下open jdk安装。 1. 下载openjdk ,我这里选择jdk8&#xff1b;jdk常用的几个版本 8 &#xff1b;11&#xff1b;18&#xff1b;下载的文件为zip解压版&#xff1b; 下载…

openJDK源码下载及阅读

完全来源于&#xff1a;openJDK源码下载 1、打开openjdk网站 打开链接&#xff1a;http://hg.openjdk.java.net/ 2、点击想要下载的jdk的版本&#xff0c;如jdk8u 3、在新页面中找到jdk8u然后点击下面的jdk连接 4、然后出现了一个我们看不懂的页面&#xff0c;不要着急&…

windows下载openjdk8(附赠安装包)

openjdk下载地址&#xff1a;https://jdk.java.net/ &#xff08;文末已经为大家下好了&#xff0c;放在网盘里&#xff09; 进去后点8&#xff0c;win。 安装好后&#xff0c;使用java -version命令如下&#xff1a; 成功安装openjdk&#xff01; 为大家提供网盘&#xff08;…