【计算机网络】https协议
文章目录
- 1 :peach:基本概念:peach:
- 1.1 :apple:什么是HTTPS?:apple:
- 1.2 :apple:什么是加密?:apple:
- 1.3 :apple:常见的加密方式:apple:
- 1.3.1 :lemon:对称加密:lemon:
- 1.3.2 :lemon:⾮对称加密:lemon:
- 1.4 :lemon:数据指纹:lemon:
- 2 :peach:HTTPS的⼯作过程探究:peach:
- 2.1 :apple:只使用对称加密:apple:
- 2.2 :apple:只使用非对称加密:apple:
- 2.3 :apple:双方都使用非对称加密:apple:
- 2.4 :apple:非对称加密 + 对称加密:apple:
- 3 :peach:证书:peach:
- 3.1 :apple:CA认证:apple:
- 3.2 :apple:数据签名:apple:
- 3.3 :apple:非对称加密 + 对称加密 + 证书认证:apple:
- 3.4 :apple:常见问题:apple:
- 3.4.1 :lemon:中间人有没有可能篡改该证书?:lemon:
- 3.4.2 :lemon:中间人有没有可能整个掉包证书?:lemon:
- 3.4.3 :lemon:为什么摘要内容在网络传输的时候⼀定要加密形成签名?:lemon:
- 3.4.4 :lemon:为什么签名不直接加密,⽽是要先hash形成摘要?:lemon:
- 4 :peach:总结:peach:
1 🍑基本概念🍑
1.1 🍎什么是HTTPS?🍎
HTTPS 也是⼀个应⽤层协议. 是在 HTTP 协议的基础上引⼊了⼀个加密层。
HTTP 协议内容都是按照⽂本的⽅式明⽂传输的.,这就导致在传输过程中可能出现⼀些被篡改的情况;HTTPS通过加密的方式可以有效的避免报文的泄漏。
回忆下:http使用的是80端口,而https使用的是443端口
1.2 🍎什么是加密?🍎
- 加密就是把明⽂(要传输的信息)进⾏⼀系列变换, ⽣成密⽂;
- 解密就是把密⽂再进⾏⼀系列变换, 还原成明⽂。
在这个加密和解密的过程中, 往往需要⼀个或者多个中间的数据, 辅助进⾏这个过程, 这样的数据称为密钥。
大家应该在电视上都看见过打仗时通过电报传输军事机密的场景,可以认为这里的加密解密就是对军事机密的加密解密。
1.3 🍎常见的加密方式🍎
1.3.1 🍋对称加密🍋
- 采⽤单钥密码系统的加密⽅法,同⼀个密钥可以同时用作信息的加密和解密,这种加密⽅法称为对加密,也称为单密钥加密,特征:加密和解密所⽤的密钥是相同的。
- 常⻅对称加密算法(了解):DES、3DES、AES、TDEA、Blowfish、RC2等。
- 特点:算法公开、计算量⼩、加密速度快、加密效率⾼。
对称加密其实就是通过同⼀个 “密钥” , 把明⽂加密成密⽂, 并且也能把密⽂解密成明⽂。
1.3.2 🍋⾮对称加密🍋
- 需要两个密钥来进⾏加密和解密,这两个密钥是公开密钥(public key,简称公钥)和私有密钥
(private key,简称私钥)。 - 常⻅⾮对称加密算法(了解):RSA,DSA,ECDSA
- 特点:算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,⽽使得加密解密速度没有对
称加密解密的速度快。
⾮对称加密要⽤到两个密钥, ⼀个叫做 “公钥”, ⼀个叫做 “私钥”;公钥和私钥是配对的.,最⼤的缺点就是运算速度⾮常慢,⽐对称加密要慢很多。
- 通过公钥对明⽂加密, 变成密⽂;
- 通过私钥对密⽂解密, 变成明⽂。
也可以反着⽤:
- 通过私钥对明⽂加密, 变成密⽂;
- 通过公钥对密⽂解密, 变成明⽂。
1.4 🍋数据指纹🍋
- 数字指纹(数据摘要),其基本原理是利⽤单向散列函数(Hash函数)对信息进⾏运算,⽣成⼀串固定⻓度的数字摘要。数字指纹并不是⼀种加密机制,但可以⽤来判断数据有没有被窜改。
- 摘要常⻅算法:有MD5、SHA1、SHA256、SHA512等,算法把⽆限的映射成有限,因此可能会有
碰撞。(两个不同的信息,算出的摘要相同,但是概率⾮常低) - 摘要特征:和加密算法的区别是,摘要严格意义不是加密,因为没有解密,只不过从摘要很难反推
原信息,通常⽤来进⾏数据对⽐。
2 🍑HTTPS的⼯作过程探究🍑
既然要保证数据安全, 就需要进⾏ “加密”;⽹络传输中不再直接传输明⽂了, ⽽是加密之后的 “密⽂”;加密的⽅式有很多, 但是整体可以分成两⼤类: 对称加密 和 ⾮对称加密。
2.1 🍎只使用对称加密🍎
如果通信双⽅都各⾃持有同⼀个密钥X,且没有别⼈知道,这两⽅的通信安全当然是可以被保证的。
但是这样做有一个很大的弊端,客户端有很多,如果服务器要维护每一个客户端的密钥那么代价是不是太大了呢?所以这种方式是行不通的。
我们可以换一种思路:密钥通过通信双方来协商,但是这样做又会有一个致命的问题,双方协商密钥时中间人可以通过某种方式来获取该密钥,那不是密文跟明文没有区别了吗?
所以只使用对称加密方式是行不通的。
2.2 🍎只使用非对称加密🍎
鉴于⾮对称加密的机制,如果服务器先把公钥以明⽂⽅式传输给浏览器,之后浏览器向服务器传数据
前都先⽤这个公钥加密好再传,从客户端到服务器似乎是安全的(ps:这里可能是有安全问题),因为只有服务器有相应的私钥能解开公钥加密的数据。
但是服务器到浏览器的这条路怎么保障安全?这条路中间人完全可以窃取公钥,当浏览器向服务器传输报文时就使用窃取的公钥解密,这样从浏览器向服务器发送的数据就都被窃取了。
所以只使用非对称加密方式是行不通的。
2.3 🍎双方都使用非对称加密🍎
- 1️⃣服务端拥有公钥S与对应的私钥S’,客户端拥有公钥C与对应的私钥C’;
- 2️⃣客户和服务端交换公钥;
- 3️⃣客户端给服务端发信息:先⽤S对数据加密,再发送,只能由服务器解密,因为只有服务器有私钥S’;
- 4️⃣服务端给客户端发信息:先⽤C对数据加密,在发送,只能由客⼾端解密,因为只有客⼾端有私钥C.

这样貌似也⾏啊,但是效率太低,依旧有安全问题(ps:这个安全问题我们放在后面统一讲解)
2.4 🍎非对称加密 + 对称加密🍎
首先来解决效率问题:
- 1️⃣服务端具有非对称公钥S和私钥S’,客户端发起https请求,获取服务端公钥S;
- 2️⃣客户端在本地⽣成对称密钥C, 通过公钥S加密, 发送给服务器;由于中间的⽹络设备没有私钥, 即使截获了数据, 也⽆法还原出内部的原⽂, 也就⽆法获取到对称密钥。(ps:这里也有可能会有安全问题)
- 3️⃣服务器通过私钥S’解密, 还原出客户端发送的对称密钥C. 并且使⽤这个对称密钥加密给客户端返回的响应数据.后续客户端和服务器的通信都只⽤对称加密即可. 由于该密钥只有客户端和服务器两个主机知道, 其他主机/设备不知道密钥即使截获数据也没有意义。

这样我们后续通信只用对称密钥C进行,就大大增加了通信的效率。
但是我们还遗漏了一个问题:如果服务器将公钥S发送给客户端时有中间人将公钥替换了呢?
不仅仅是在这里,在双方都使用非对称加密那里也存在着这样的问题:其本质原因都是因为:客户端⽆法确定收到的含有公钥的数据报⽂,就是⽬标服务器发送过来的.
所以就引入了我们下面介绍的证书。
3 🍑证书🍑
3.1 🍎CA认证🍎
服务端在使⽤HTTPS前,需要向CA机构申领⼀份数字证书,数字证书⾥含有证书申请者信息、公钥信息等。服务器把证书传输给浏览器,浏览器从证书⾥获取公钥就⾏了,证书就如⾝份证,证明服务端公钥的权威性。
这个证书可以理解成是⼀个结构化的字符串, ⾥⾯包含了以下信息:
- 证书发布机构
- 证书有效期
- 公钥
- 证书所有者
- 签名等等
需要注意的是:申请证书的时候,需要在特定平台⽣成查,会同时⽣成⼀对密钥对,即公钥和私钥。这对密钥对就是⽤来在⽹络通信中进⾏明⽂加密以及数字签名的。其中公钥会随着CSR⽂件,⼀起发给CA进⾏权威认证,私钥服务端⾃⼰保留,⽤来后续进⾏通信(其实主要就是⽤来交换对称秘钥)
3.2 🍎数据签名🍎
签名的形成是基于⾮对称加密算法的,注意,⽬前暂时和https没有关系,不要和https中的公钥私钥搞
混了。
当服务端申请CA证书的时候,CA机构会对该服务端进⾏审核,并专⻔为该⽹站形成数字签名,过程如
下:
- 1️⃣ CA机构拥有非对称加密的私钥A和公钥A’;
- 2️⃣ CA机构对服务端申请的证书明⽂数据进⾏hash,形成数据摘要;
- 3️⃣ 然后对数据摘要⽤CA私钥A’加密,得到数字签名S.
服务端申请的证书明⽂和数字签名S共同组成了数字证书,这样⼀份数字证书就可以颁发给服务端了.(ps:图中名词签名者就是指的是CA机构)
3.3 🍎非对称加密 + 对称加密 + 证书认证🍎
在客户端和服务器刚⼀建⽴连接的时候, 服务器给客户端返回⼀个证书,证书包含了之前服务端的公钥, 也包含了⽹站的⾝份信息.
客户端进⾏认证:
当客户端获取到这个证书之后, 会对证书进⾏校验,防⽌证书是伪造的:
- 判定证书的有效期是否过期;
- 判定证书的发布机构是否受信任(操作系统中已内置的受信任的证书发布机构);
- 验证证书是否被篡改: 从系统中拿到该证书发布机构的公钥, 对签名解密, 得到⼀个 hash 值(称为数据摘要), 设为 hash1. 然后计算整个证书的 hash值, 设为hash2. 对⽐hash1和hash2是否相等. 如果相等, 则说明证书是没有被篡改过的。
3.4 🍎常见问题🍎
3.4.1 🍋中间人有没有可能篡改该证书?🍋
中间⼈篡改了证书的明⽂,由于他没有CA机构的私钥,所以⽆法hash之后⽤私钥加密形成签名,那么也就没法办法对篡改后的证书形成匹配的签名;如果强⾏篡改,客户端收到该证书后会发现明⽂和签名解密后的值不⼀致,则说明证书已被篡改,证书不可信,从⽽终⽌向服务器传输信息,防⽌信息泄露给中间⼈。
3.4.2 🍋中间人有没有可能整个掉包证书?🍋
因为中间⼈没有CA私钥,所以⽆法制作假的证书。所以中间⼈只能向CA申请真证书,然后⽤⾃⼰申请的证书进⾏掉包,这个确实能做到证书的整体掉包,但是别忘记,证书明⽂中包含了域名等服务端认证信息,如果整体掉包,客户端依旧能够识别出来。中间⼈没有CA私钥,所以对任何证书都⽆法进⾏合法修改。
3.4.3 🍋为什么摘要内容在网络传输的时候⼀定要加密形成签名?🍋
常⻅的摘要算法有: MD5 和 SHA 系列。
以 MD5 为例, 我们不需要研究具体的计算签名的过程, 只需要了解 MD5 的特点:
- 定⻓: ⽆论多⻓的字符串, 计算出来的 MD5 值都是固定⻓度 (16字节版本或者32字节版本)
- 分散: 源字符串只要改变⼀点点, 最终得到的 MD5 值都会差别很⼤.
- 不可逆: 通过源字符串⽣成 MD5 很容易, 但是通过 MD5 还原成原串理论上是不可能的
正因为 MD5 有这样的特性, 我们可以认为如果两个字符串的 MD5 值相同, 则认为这两个字符串相同。
假设我们的证书只是⼀个简单的字符串 hello, 对这个字符串计算hash值(比如md5), 结果为BC4B2A76B9719D91;如果 hello 中有任意的字符被篡改了, 比如变成了 hella, 那么计算的 md5 值就会变化很⼤:BDBD6F9CF51F2FD8。然后我们可以把这个字符串 hello 和 哈希值BC4B2A76B9719D91 从服务器返回给客户端, 此时客户端如何验证 hello 是否是被篡改过?
那么就只要计算 hello 的哈希值, 看看是不是 BC4B2A76B9719D91 即可。

但是还有个问题, 如果⿊客把 hello 篡改了, 同时也把哈希值重新计算下, 客户端就分辨不出来了呀。
所以被传输的哈希值不能传输明⽂, 需要传输密⽂。
所以,对证书明⽂(这⾥就是“hello”)hash形成散列摘要,然后CA使⽤⾃⼰的私钥加密形成签名,将hello和加密的签名合起来形成CA证书,颁发给服务端,当客户端请求的时候,就发送给客户端,中间⼈截获了,因为没有CA私钥,就⽆法更改或者整体掉包,就能安全的证明,证书的合法性。最后,客户端通过操作系统⾥已经存的了的证书发布机构的公钥进⾏解密, 还原出原始的哈希值, 再进⾏校验。
3.4.4 🍋为什么签名不直接加密,⽽是要先hash形成摘要?🍋
- 缩⼩签名密⽂的⻓度,加快数字签名的验证签名的运算速度。
4 🍑总结🍑
HTTPS ⼯作过程中涉及到的密钥有三组:
- 第⼀组(⾮对称加密): ⽤于校验证书是否被篡改. 服务器持有私钥(私钥在形成CSR⽂件与申请证书时获得), 客户端持有公钥(操作系统包含了可信任的 CA 认证机构有哪些, 同时持有对应的公钥). 服务器在客户端请求时,返回携带签名的证书. 客⼾端通过这个公钥进⾏证书验证, 保证证书的合法性,进⼀步保证证书中携带的服务端公钥权威性。
- 第⼆组(⾮对称加密): ⽤于协商⽣成对称加密的密钥. 客户端⽤收到的CA证书中的公钥(是可被信任的)给随机⽣成的对称加密的密钥加密, 传输给服务器, 服务器通过私钥解密获取到对称加密密钥.
- 第三组(对称加密): 客户端和服务器后续传输的数据都通过这个对称密钥加密解密.
其实⼀切的关键都是围绕这个对称加密的密钥. 其他的机制都是辅助这个密钥⼯作的.
- 第⼆组⾮对称加密的密钥是为了让客户端把这个对称密钥传给服务器;
- 第⼀组⾮对称加密的密钥是为了让客户端拿到第⼆组⾮对称加密的公钥.
相关文章:
【计算机网络】https协议
文章目录 1 :peach:基本概念:peach:1.1 :apple:什么是HTTPS?:apple:1.2 :apple:什么是加密?:apple:1.3 :apple:常见的加密方式:apple:1.3.1 :lemon:对称加密:lemon:1.3.2 :lemon:⾮对称加密:lemon: 1.4 :lemon:数据指纹:lemon: 2 :peach:HTTPS的⼯作过程…...
React之受控组件和非受控组件以及高阶组件
一、受控组件 受控组件,简单来讲,就是受我们控制的组件,组件的状态全程响应外部数据 举个简单的例子: class TestComponent extends React.Component {constructor (props) {super(props);this.state { username: lindaidai }…...
中国移动集采120万部,助推国产5G赶超iPhone15
近期媒体纷纷传出消息指中国移动将大规模集采,预计将采购国产5G手机120万台,加上另外两家运营商的集采数量,估计集采数量可能达到300万部,如此将有助于它在国内高端手机市场赶超苹果。 国产5G手机在8月底突然上市,获益…...
华为云HECS服务器下docker可视化(portainer)
一、docker安装 华为云HECS安装docker-CSDN博客 二、portainer安装 portainer地址:Portainer: Docker and Kubernetes Management Platform 当前portainer分CE(开源版) 和 BE(商业版),用CE即可 1 创建…...
postman发送soap报文示例
一、soap简介 soap是一种基于XML的协议 二、postman发送soap请求 1、发送post请求,url: https://www.dataaccess.com/webservicesserver/NumberConversion.wso 2、headers设置,添加Content-Type,值为text/xml 添加SOAP…...
力扣-python-两数之和
题解: class Solution(object):def twoSum(self, nums, target):# 遍历列表for i in range(len(nums)):# 计算需要找到的下一个目标数字res target-nums[i]# 遍历剩下的元素,查找是否存在该数字if res in nums[i1:]:# 若存在,返回答案。这里…...
算水质TDS加温度补偿
先上图,就图里这款水质检测,用树莓派3/4的话,要配个温度检测作为温度校正,以及一个adc 元器件。我选ds18b20和ads1115。 再把模拟数据计算过程放一下: 温度检测元器件在农历钟那里提过,就是同款。此处先测个…...
wps/word 如何让表格的标题和表格名称文本(表1-1 xxx)跨页显示(已解决)
第一步: 打开wps 创建一个跨页的表格表格,如下图 第二步 大家都知道 表格标题跨页 就是1)在菜单表格工具 点击重复标题 或者 2)表格属性--》行--》在各页顶端以标题行形式出现,详细如下图。 1) 第一…...
攻防世界web篇-PHP2
直接点击进入到http网页中,会得到这样一个界面 这里,我最开始使用了burp什么包也没有抓到,然后接着又用nikto进行探测,得到的只有两个目录,当时两个目录打开后,一个是fond界面,一个是这个网页的…...
Kotlin中的步长
步长是 Kotlin 中用于迭代区间或集合时控制迭代步进的概念。在 Kotlin 中,我们可以使用 step 关键字来指定迭代时的步长。 在 Kotlin 中,有多种方式可以定义一个区间(Range)。我们将通过以下示例代码来展示不同类型的区间以及如何…...
3. 无重复字符的最长子串
给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2: 输入: s "bbbbb" 输出: 1 解释: 因为无…...
通过SPI传输BMI160数据到nrf528xx
目录 主控和外设之间的联系关键示例可能的bug 主控和外设之间的联系 在完成代码之前,我们手里会有两份代码,一份是nrf528xx的SDK,一份是BMI160传感器的SDK,怎么利用SDK完成我们的需求呢?首先我们要搞明白,…...
MAYA教程之建模基础命令介绍
基础命令 视图相关操作 旋转视图 : ALT 鼠标左键平移视图 : ALT 鼠标中键缩放视图 : 滚动鼠标滚轮 或者 ALT 鼠标右键切换视图 : 空格键回到模型 : F 视图状态 选择状态 : Q移动状态 : W旋转状态 : E缩放状态 : R 视图显示 正常显示 : 1正常圆滑同时显示 : 2圆滑显示 …...
文档外发控制与安全:实现高效协作与数据安全的关键
随着企业数据量的不断增加,文档外发成为了一个不可避免的需求。然而,很多企业在文档外发过程中存在着很多问题,如数据泄露、信息误用等。因此,如何保证文档外发的安全性和高效性成为了企业亟待解决的问题。飞驰云联Ftrans的文件收…...
在线课堂知识系统源码系统+前端+后端完整搭建教程
大家好啊,今天罗峰来给大家分享一款在线课堂知识系统源码系统。这款系统的功能十分强大。可以使用手机随时随地地学习,有专业的导师答疑解惑。支持视频,音频,图文章节。以下是部分核心代码图: 系统特色功能一览&#x…...
CSS之布局系列--顶部导航栏二级菜单居中展示
原文网址:CSS之布局系列--顶部导航栏二级菜单居中展示_IT利刃出鞘的博客-CSDN博客 简介 本文介绍CSS将顶部导航栏居中展示并支持二级菜单下拉展示的方法。 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-…...
算法通关村第九关黄金挑战——透彻理解二叉树中序遍历的应用
大家好,我是怒码少年小码。 上一篇讲了二分查找,今天我们看看它的难度扩展。 有序数组转为二叉搜索树 LeetCode 108:给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。 高…...
【算法设计与分析zxd】第7章 贪心法
贪心算法的设计技术 • 每一步的判断都是一个当前最优的抉择,这个抉择计算设计的好坏,决定了算法的成败。 • 多步判断过程,最终的判断序列对应于问题的最优解 • 适用于 能够 由 局部最优达到全局最优的优化问题 【比如 求最短哈密顿回路的…...
CCF CSP认证 历年题目自练Day35
题目一 试题编号: 202305-1 试题名称: 重复局面 时间限制: 1.0s 内存限制: 512.0MB 问题描述: 题目背景 国际象棋在对局时,同一局面连续或间断出现3次或3次以上,可由任意一方提出和棋。 问题…...
应用crash时发送广播及信息
一、环境 高通865 Android 10 二、情景 应用崩溃时,将奔溃信息以广播的形式发送 二、代码位置 frameworks/base/core/java/com/android/internal/os/RuntimeInit.java private static class KillApplicationHandler implements Thread.UncaughtExceptionHandle…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...
centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
浪潮交换机配置track检测实现高速公路收费网络主备切换NQA
浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求,本次涉及的主要是收费汇聚交换机的配置,浪潮网络设备在高速项目很少,通…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...
力扣热题100 k个一组反转链表题解
题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...
【 java 虚拟机知识 第一篇 】
目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...
嵌入式常见 CPU 架构
架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集,单周期执行;低功耗、CIP 独立外设;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel(原始…...
CTF show 数学不及格
拿到题目先查一下壳,看一下信息 发现是一个ELF文件,64位的 用IDA Pro 64 打开这个文件 然后点击F5进行伪代码转换 可以看到有五个if判断,第一个argc ! 5这个判断并没有起太大作用,主要是下面四个if判断 根据题目…...
