5.Android逆向协议-初识HTTP和HTTPS协议

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!

内容参考于:微尘网校

上一个内容:4.Android逆向协议-详解二次打包失败解决方案

从现在开始正式进入协议分析了。

首先客户端与服务端之间是如何通信的?实际上就是客户端向服务端发送一个网络请求(HTTP、UDP、TCP请求),服务端收到请求之后一般会给客户端返回一些数据(服务端给客户端发送一些数据),然后客户端收到这些数据之后一般会解析、处理这些数据,这就是客户端与服务端之间的通信。

最常见的就是浏览器,当输入一个网址,浏览器会显示一些画面(图片、文字、视频),这些画面就是服务端返回的数据。

比如输入 CSDN计算机王然后按搜索按钮,按了搜索按钮就会给服务端发送请求,浏览器都是HTTP、HTTPS请求,然后服务端会根据 CSDN计算机王 这个关键字返回与它相关的数据

返回的相关数据(不打马赛克会被搬),如下图的画面就是服务端返回给客户端数据之后,客户端处理之后的结果

然后协议是什么?协议就是一种规则,客户端与服务端通信,客户端给服务端发送请求,请求中会告诉服务端它想要什么,比如给服务端发送一个1表示要搜索的数据,2表示每天热点新闻的数据,这个1和2这种的数据就是规则的实现,只要都按照这个规则那数据就是正常的。

然后是客户端与服务端的连接,连接实际上是访问服务器的ip地址和端口(它就是一个数字,等后面分析过程中就可以看到了现在没法解释的有画面感),比如 www.baidu.com 这个是百度搜索引擎的网址,但它实际上是访问的百度公司的服务器上的ip和端口

然后网络协议一般指的是osi七层模型,它只是个理论,如下图客户端给服务端发请求 与 服务端给客户端发请求协议的过程,经过这样的过程(规则、协议)客户端与服务端就可以正常的通信了

然后基于osi七层模型实现出了TCP/IP协议,最常用的就是TCP/IP协议,它只用了osi模型中的4个,分别是应用层、传输层、网络层、链路层

应用层实际上的协议实现:

http、ftp、tftp、dns、smtp等,常用的就是http协议

传输层实际上的协议实现:

TCP、UDP

网络层实际上的协议实现:

IP等

链路层实际上的协议实现:它是与网络连接有关

帧中继 (Frame Relay)、点对点、以太网、无线局域网

上方每层具体的实现没有细说,原因对于逆向来说没啥用,只要知道有这种东西就行,就算现在知道是什么了也不会用

然后常用的请求方式,POST、GET

POST:用于客户端提交数据给服务端,它的数据在body中,可传输大数据

GET:用于客户端获取服务端上的数据,它的数据在header中(网址连接里),不能传输大数据

如下图,输入www.baidu.com然后回车,这就属于GET请求,GET、POST后面开始分析协议的时候会经常见到,所以现在不理解也没事,后面分析的时候看看它们具体是什么东西就能懂了

然后是服务器返回数据的状态码,就是说给服务端发送一个请求,这个请求有没有发送成功?状态码就是用来解决这个问题的

创建的状态码

HTTP协议简单说明

http它是应用层,使用tcp协议建立连接,也就是客户端与服务端通过tcp进行连接,连接之后使用http协议 发送请求、接收请求

http分两种:普通协议(http)、安全协议(https)

http通俗讲就是数据(请求)明文传输、https是数据(请求)加密之后传输

下图中ssl、tls知道有这个东西就行,我们用不到,操作系统都实现好了

加密算法,在协议分析非常常见

它有对称加密、非对称加密、哈希算法

对称加密:

有流式、分组两种,加密和解密都是使用同一个秘钥,一般使用分组

它的加密常见的有:DES、AES-GCM、ChaCha2--Poly1305等,常用DES、AES-GCM

非对称加密:

加密使用的秘钥和解密使用的秘钥是不一样的,分别称为公钥、私钥,公钥和算法是公开的,私钥是保密的,它性能低、安全性超强、加密的数据长度有限

它的加密常见的有:RSA、DSA、ECDSA、DH、ECDHE,常用RSA、DSA

对称加密相当于一个门用一把钥匙开门和锁门,非对称加密相当于锁门有锁门的钥匙,开门有开门的钥匙

哈希算法:

将任意长度的信息转换为较短的固定长度的值,通过数据加密后会变小,它的算法不可逆,就是只能加密不能解密

常用算法:MD5、SHA-1、SHA-2、SHA-256,常用的是MD5、SHA-1

数字签名:

数字签名就是在数据的后面再加上一段内容(这个内容是经过哈希后的,这个内容被称为数字签名),这样可以证明信息没有被修改过

在HTTPS协议中它会使用非对称加密算法加密对称加密的秘钥,然后用对称加密算法加密数据,这样的结合使用


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

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

相关文章

tkinter拖入txt文本并显示

tkinter拖入txt文本并显示 效果代码 效果 代码 import tkinter as tk from tkinter import scrolledtext from tkinterdnd2 import DND_FILES, TkinterDnDdef drop(event):file_path event.data.strip({})if file_path.endswith(.txt):with open(file_path, r, encodingutf-8…

Seatunnel本地模式快速测验

前言 SeaTunnel(先前称为WaterDrop)是一个分布式、高性能、易于扩展的数据集成平台,旨在实现海量数据的同步和转换。它支持多种数据处理引擎,包括Apache Spark和Apache Flink,并在某个版本中引入了自主研发的Zeta引擎…

Django学习第二天

启动项目命令 python manage.py runserver 动态获取当前时间 javascript实现数据动态更新代码 <script>setInterval(function() {var currentTimeElement document.getElementById(current-time);var currentTime new Date();currentTimeElement.textContent Curren…

经典的卷积神经网络模型 - ResNet

经典的卷积神经网络模型 - ResNet flyfish 2015年&#xff0c;何恺明&#xff08;Kaiming He&#xff09;等人在论文《Deep Residual Learning for Image Recognition》中提出了ResNet&#xff08;Residual Network&#xff0c;残差网络&#xff09;。在当时&#xff0c;随着…

【List】判断集合相等、集合拷贝

【List】判断集合相等、集合拷贝 【一】判断集合是否相等【1】☆使用list中的containAll【2】使用for循环遍历contains方法【3】将list先排序再转为String进行比较【4】使用list.retainAll()方法【5】使用MD5加密方式【6】转换为Java8中的新特性steam流再进行排序来进行比较 【…

AI数字人直播源码出售价格公布!

随着数字人行业的兴起&#xff0c;以数字人直播为代表的应用场景逐渐成为人们日常生活中不可分割的一部分&#xff0c;再加上艾媒研究数据显示&#xff0c;超五成以上的被调查群体的企业使用过虚拟人技术&#xff0c;超三成被调查群体的企业计划使用虚拟人技术等结论的公布&…

python-图像模糊处理(赛氪OJ)

[题目描述] 给定 n 行 m 列的图像各像素点的灰度值&#xff0c;要求用如下方法对其进行模糊化处理&#xff1a; 1. 四周最外侧的像素点灰度值不变。 2. 中间各像素点新灰度值为该像素点及其上下左右相邻四个像素点原灰度值的平均&#xff08;四舍五入&#xff09;输入&#xff…

【C语言】inline 关键字

在C语言中&#xff0c;inline关键字用于建议编译器对函数进行内联展开&#xff0c;而不是像普通函数一样调用。内联函数的目的是减少函数调用的开销&#xff0c;特别是对于简单的、频繁调用的函数。 内联函数的定义和使用 定义内联函数 要定义一个内联函数&#xff0c;需要在…

《代号鸢》国服,能否推动国乙市场重新洗牌?

灵犀互娱《如鸢》顺利拿到版号&#xff0c;再次搅浑了国乙市场这潭水。 六月份游戏版号审批公布后&#xff0c;灵犀互娱运营的《如鸢》引起了关注&#xff0c;这个与《代号鸢》原名《三国志如鸢》雷同的名字&#xff0c;竟然让《代号鸢》玩家大面积破防了。 其实目前关于《如…

for循环中list触发fast-fail或不触发的原理和方法

Iterable和Iterator Iterator接口位于的位置是java.util.Iterator&#xff0c;它主要有两个抽象方法供子类实现。hasNext()用来判断还有没有数据可供访问&#xff0c;next()用来访问下一个数据。 集合Collection不是直接去实现Iterator接口&#xff0c;而是去实现Iterable接口…

【Python】字典练习

python期考练习 目录 1. 首都名​编辑 2. 摩斯电码 3. 登录 4. 学生的姓名和年龄​编辑 5. 电商 6. 学生基本信息 7. 字母数 1. 首都名 初始字典 (可复制) : d{"China":"Beijing","America":"Washington","Norway":…

HCM智能人力资源系统存在命令执行漏洞Getshell

0x01 阅读须知 技术文章仅供参考&#xff0c;此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等&#xff08;包括但不限于&#xff09;进行检测或维护参考&#xff0c;未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成…

防爆对讲终端是什么?在哪些行业中应用广泛?

防爆对讲终端是一种特殊设计的通信设备&#xff0c;它具备防爆性能和可靠的通信功能&#xff0c;确保在存在爆炸性气体或粉尘的危险环境中使用时不会引发爆炸或火灾等危险情况。这种设备通过特殊的设计和防护措施&#xff0c;如采用防爆材料、防静电、绝缘、阻燃材料等&#xf…

ABAQUS软件天津正版代理商亿达四方:创新技术,驱动产业升级

在环渤海经济圈的核心地带——天津&#xff0c;随着智能制造与高新技术产业的蓬勃发展&#xff0c;对高端仿真软件的需求日益增长。亿达四方&#xff0c;作为ABAQUS在天津的官方正版代理商&#xff0c;凭借其深厚的行业经验和卓越的服务体系&#xff0c;正为这片热土上的科研机…

2024年度潍坊市职业技能大赛——网络搭建(网络与信息安全管理员)职业技能竞赛样题

2024年度潍坊市职业技能大赛 ——网络搭建&#xff08;网络与信息安全管理员&#xff09;职业技能竞赛样题 网络搭建职业技能竞赛组委会 2024年6月 一、项目简介 &#xff08;一&#xff09;竞赛须知 1.技能操作比赛时间150分钟&#xff0c;你需要合理分配时间。 2.如果没…

Hive常用的内置函数

文章目录 聚合类1.指定列值的数目2.指定列值求和3.最大值4.最小值5.平均值6.中位数函数7.分位数函数 数值类1.取整函数Round(a)2.指定精度取整ROUND(double a,int b)3.向上取整FLOOR()4.向下取整CEIL()5.随机数 rand()6.绝对值函数 日期类获取当前日期获取当前时间戳日期前后日…

基于Java的外卖点餐系统设计与实现

作者介绍&#xff1a;计算机专业研究生&#xff0c;现企业打工人&#xff0c;从事Java全栈开发 主要内容&#xff1a;技术学习笔记、Java实战项目、项目问题解决记录、AI、简历模板、简历指导、技术交流、论文交流&#xff08;SCI论文两篇&#xff09; 上点关注下点赞 生活越过…

java+mysql教师管理系统

完整源码地址 教师信息管理系统使用命令行交互的方式及数据库连接实现教师信息管理系统&#xff0c;该系统旨在实现教师信息的管理&#xff0c;并根据需要进行教师信息展示。该软件的功能有如下功能 (1)基本信息管理(教师号、姓名、性别、出生年月、职称、学历、学位、教师类型…

25西安电子科技大学研究生政策(最新)

25西安电子科技大学研究生政策&#xff08;最新&#xff09; 01全国研究生报名情况 全国研究生报名人数438万&#xff0c;首次下降超36万人。 02西电研究生全日制/非全日制报名情况 西电硕士研究生报考录取情况&#xff08;包含全日制、非全日制&#xff09;&#xff0c;2024年…

python-数据容器对比总结

基于各类数据容器的特点&#xff0c;它们的应用场景如下&#xff1a; 数据容器的通用操作 - 遍历 数据容器的通用统计功能 容器的通用转换功能 容器通用排序功能 容器通用功能总览