Android逆向fiddler抓包工具——理解HTTP协议

news2024/10/6 8:35:11

HTTP协议格式

HTTP协议是一种应用非常广泛的应用层协议,当我们在浏览器中输入一个URL(“网址”)时,浏览器就会给客户端发送一个HTTP请求,服务器收到请求之后,就会返回一个HTTP响应。

为了能够看到HTTP请求和响应的详细内容,我们需要使用抓包工具,本文以Fiddler为例。

http工作过程

当我们在浏览器发送一个请求的时候,这个时候就会用到http协议,其实我们发送的就是一个http请求,服务器也会给我们返回http响应.

在这里我们发送一次请求,可能有许多次http请求与响应的交互过程.

在http协议通过网络交互的过程中,我们了解到一些关键字.

客户端:就是发送请求的一方(我们在浏览器查询事件的时候我们就是客户端)

服务器:返回响应的一方(我们向百度发送请求后,百度会给我们返回一个响应,百度可以理解为服务器)

请求:客户端向服务器发送的数据.

响应:服务器向客户端.

抓包工具的原理

Fiddler抓包工具相当于一个“代理程序”:客户端向服务器发送的HTTP请求时,客户端会先把请求交给Fiddler,Fiddler再把请求转交给服务器;当服务器返回HTTP响应时,会先把响应交给Fiddler,Fiddler再把响应交给客户端。

因此,Fiddler就会很清楚客户端和服务器之间交互的数据细节。

简单理解就是,Fiddler相当于一个给客户端跑腿儿的小弟~

代理分为两种:

正向代理:给客户端提供服务的代理程序,此时正向代理就相当于把真实的客户端隐藏起来了,服务器不知道真实的客户端是谁。

反向代理:给服务器提供服务的代理程序,此时反向代理就相当于把真实的服务器隐藏起来了,客户端不知道真实的服务器是谁。

使用fiddler抓包

fiddler工具页面介绍

抓到包的列表

fiddler左边是抓到包的列表,列表的内容是不断的变化,这是很正常的,因为只要你的电脑与网络进行一次交互,就会进行http抓包.

包的详情

双击左侧的某个包就会进入该包的详情页.

右边上方是http的请求报文.

右边下方是http响应的报文.

包的详细数据

raw翻译为原生的,也就是http最原始的请求数据.

点击右下角的view in notepad就会以记事本的形式打开数据,可以更清楚的看到数据.

定位自己需要的包

我们抓包后,如何快速定位自己发的包呢?

黑色的包表示普通数据;蓝色的包响应是html.

看域名,根据域名定位,像百度,百度一下,你就知道

看响应的数据长度,一般是找长的.

抓包数据分析

http请求

首行

GET https://mbd.baidu.com/newspage/api/getpcvoicelist?callback=JSONP_0& HTTP/1.1

请求报头header

从首行结束开始到空行结束,空行是header的结束标记.

正文

header结束后,下面的内容就是正文,有时候没有正文.

http响应

首行

HTTP/1.1 200 OK

响应报头header

从首行结束开始到空行结束,空行是header的结束标记.

正文

空行后面的内容.

一般来说,在上网的时候,页面显示的内容,哪怕是一个简单的页面,都是服务器作为响应返回来的结果.

这就是Android逆向开发中的使用fiddler抓包工具,进行抓包。更多有关逆向开发的学习大家可以参考《Android逆向文档》点击就可以查看详细类目了。

最后:下载抓包工具fiddler

抓包工具有很多,我们在这里主要研究http,因此我们简单的下载一个http的抓包工具即可.

  1. 进fiddler官网

直接在浏览器搜索fiddler即可,记住一定要进官网.

怎么辨别官网呢?右下角会有官网网站显示,比如fiddler,页面上会显示与fiddler相关的东西.

  1. 点进去下载经典版

经典版是免费的版本,有这一款

  1. 填写相关信息进行下载

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1193425.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SQL触发器

触发器是与表有关的数据库对象。 在insert/update/delete之前(BEFORE)或之后(AFTER),触发并执行触发 器中定义的SQL语句集合。 触发器的这种特性可以协助应用在数据库端确保数据的完整性, 日志记录 , 数据校验等操作 。 使用别名OLD和NEW来引用触发器中发生变化的…

linux系统中查看防火墙开放的端口状态 开放端口和禁用端口号操作命令

一、查看防火墙状态 查看防火墙状态:systemctl status firewalld 开启防火墙:systemctl start firewalld 关闭防火墙:systemctl stop firewalld 若遇到无法开启 先用:systemctl unmask firewalld.service 然后:s…

1.3数据结构之复杂度 力扣题目移除元素

移除元素首先我们可能会想到内存的释放,但是内存的释放是一次性的,不能断断续续,所以不能直接free掉。 思路1:时间复杂度是:O(n) 空间复杂度是:O(n) 思路2:时间复杂度:O(n) 空间复…

TortoiseSVN 状态图标不显示的两种解决办法

文章目录 TortoiseSVN 方式解决注册表方式解决 TortoiseSVN 方式解决 在桌面或者资源管理器中鼠标右键打开 TortoiseSVN 设置选择 Icon Overlays (图标覆盖)Status cache(状态缓存) 选择 ‘Shell’ 选择 Icon Overlays(图标覆盖)…

在软件测试过程中如何有效的开展接口自动化测试!

一.简介 接口自动化测试是指使用自动化测试工具和脚本对软件系统中的接口进行测试的过程。其目的是在软件开发过程中,通过对接口的自动化测试来提高测试效率和测试质量,减少人工测试的工作量和测试成本,并且能够快速发现和修复接口错误&…

ARMday04(开发版简介、LED点灯)

开发版简介 开发板为stm32MP157AAA,附加一个拓展版 硬件相关基础知识 PCB PCB( Printed Circuit Board),中文名称为印制电路板,又称印刷线路板,是重要的电子部件,是电子元器件的支撑体,是电子…

JVM虚拟机-虚拟机性能监控、故障处理工具

1基础故障处理工具 jps(JVM Process Status Tool)是:虚拟机进程状况工具 作用:可以列出正在运行的虚拟机进程,并显示虚拟机执行主类(Main Class,main()函数所在的类)名称以及这些进…

人工智能数学基础3:用Python 编程求极限

求极限,并用Python 编程求极限 使用洛必达法则来求解 利用泰勒展开的方法来求解这个极限 import sympyx sympy.Symbol(x) f (sympy.sin(x) - x * sympy.cos(x)) / (sympy.sin(x) ** 3)limit_value sympy.limit(f, x, 0) print(limit_value)

【QT】qt打包程序后无法正常启动

本人在自己电脑上打包Qt程序后可以正常运行,但换了个电脑就无法运行了,显示应用程序无法正常启动(0xc000007b)。 造成这种情况的原因是因为系统变量的原因,我用的win10自带的cmd。 应该采用Qt自带的cmd,打开…

人工智能基础——python:Pandas与数据处理

人工智能的学习之路非常漫长,不少人因为学习路线不对或者学习内容不够专业而举步难行。不过别担心,我为大家整理了一份600多G的学习资源,基本上涵盖了人工智能学习的所有内容。点击下方链接,0元进群领取学习资源,让你的学习之路更加顺畅!记得…

四入进博会,优衣库围绕科技可持续演绎“服装进化论”

11月5日,第六届中国国际进口博览会在上海拉开帷幕。这些年来,进博巨大的平台效应,使其成为各个行业头部品牌的秀场,也持续为消费者、产业链带来惊喜。 今年,也是全球服装界科技知名品牌——优衣库的第四次进博之旅。从…

OpenCV校准棋盘集合

棋盘格可以与相机校准工具一起使用,例如ROS的camera_calibration包。您可以通过单击下面的任何链接免费下载 PDF 格式的各种棋盘,没有水印或广告。此外,还添加了基于 JavaScript 的棋盘生成器,允许您生成自定义尺寸。 提示&#…

《持续交付:发布可靠软件的系统方法》- 读书笔记(十三)

持续交付:发布可靠软件的系统方法(十三) 第 13 章 组件和依赖管理13.1 引言13.2 保持应用程序可发布13.2.1 将新功能隐蔽起来,直到它完成为止13.2.2 所有修改都是增量式的13.2.3 通过抽象来模拟分支 13.3 依赖13.3.1 依赖地狱13.3…

AlphaControls控件TsRadioGroup的使用

通常使用AlphaControls控件中的TsRadioGroup时,往往使用默认值,会造成TsRadioGroup标题被TsRadioGroup的ITEMs占用,严重影响美观: 解决方案,通过对TsRadioGroup的ContentVOffset属性,设置为10。即可立即改善…

计算机网络实验

计算机网络实验 使用软件PT7.0按照上面的拓扑结构建立网络,进行合理配置,使得所有计算机之间能够互相通信。并且修改各交换机的系统名称为:学号_编号,如你的学号为123,交换机Switch0的编号为0,则系统名称为…

linuxC语言缓冲区及小程序的实现

文章目录 1.文件缓冲区1.1介绍1.2缓冲文件系统1.3冲刷函数fflush1.4认识linux下的缓冲区 2.linux小程序的实现2.1 回车\r和换行\n2.2倒计时程序2.3进度条小程序sleep/usleep代码运行结果 1.文件缓冲区 1.1介绍 为缓和 CPU 与 I/O 设备之间速度不匹配,文件缓冲区用以…

matlab命令行窗口结果显示不全,解析式太长,输出不完整解决办法

一、背景 在运行matlab程序时,有时输出结果太长,命令行窗口无论怎么拉大都显示不全,复制结果也是会有…,而不是完整结果,如下图所示: 双击复制结果显示如下: y: (25exp(-8x)(10exp(8x) - 9))/…

归并分治 笔记

归并分治 前置知识:讲解021-归并排序 原理: (1)思考一个问题在大范围上的答案,是否等于,左部分的答案 右部分的答案 跨越左右产生的答案(2)计算“跨越左右产生的答案”时,如果加上左、右各自…

ros1 基础学习09 -自定义service服务开发示例

自定义service服务开发示例 如何使用服务一、模型图二、创建功能包三、自定义服务数据3.1 在package.xml中添加功能包依赖3.2 在CmakeLists.txt中添加编译选项3.3 编译生成的C文件和Python库4.1.2 编译整个工作空间 测试: 在ROS中,除了消息这种通信类型外…

云数据安全:在数字时代保护您的宝贵资产

在数字化时代,云计算已经成为企业和个人数据存储和处理的主要方式。然而,与之相伴而来的是日益严峻的数据安全挑战。本文将探讨云数据安全的重要性以及如何在云环境中保护您的数据。 一、云计算的崭新时代 云计算为组织提供了无与伦比的灵活性和效率&…