高等数学复习(3)
高等数学复习(3)——数函极限与连续性。
函数的极限
邻域
以点 \(x_0\)
为中心的任何开区间称为点 \(x_0\)
的邻域,记作 \(U(x_0)\)
函数极限的定义
同数列极限:
\(f(x)-A\) 可以足够小,当 \(x\to x_0\) 时。
函数极限性质
唯一性:如果极限存在,那么极限只有一个
局部有界性
局部保号性
洛必达法则
超级好用的一个定理。
对于极限 \(\lim\limits _{x\to a}
\frac{f(x)}{g(x)}\) 如果,\(f(a)\to
0\) 且 \(g(a)\to 0\) 或者 \(f(a)\to \infty\) 且 \(g(a)\to \infty\)。
那么\(\lim\limits _{x\to a}
\frac{f(x)}{g(x)}=\lim\limits _{x\to a}
\frac{f'(x)}{g'(x)}\)。
就是直接上面求导比下面求导,如果求导还是这样,那么还可以继续用洛必达。
泰勒公式
就是把函数展开为多项式的形式。
这样能快 ...
高等数学复习(2)
写在前面:中间闭关了一星期没有学习,主要是因为期末考试,再加上有师傅结合我当前的情况给我提了一些建议,我觉得很棒,把考研的目标院校转为了,希望最后能成功上岸吧,今天接着更新高数的笔记。
高等数学复习(2)——数列极限。
数列极限
定义
需要记住一种语言的说明:
\(\lim\limits_{n\to\infty}
{x_n}=a\Leftrightarrow \forall \epsilon >0,\exists N \in
N_+,当n>N时,恒有|x_n-a|<\epsilon\)
直白点就是讲,如果给定任意一个够小的数 \(\epsilon\),我只要确定有一个整数 \(N\) 使得它之后的值全部趋近于 a 即可,即
\(<\epsilon\)。
性质
唯一性:极限存在即唯一。
有界:极限存在则有界
保号:极限存在则可以确定极限值的符号,只能保部分的数列,不能保所有的。(important)
夹逼准则
简单来讲,就是数列放缩,如果能放大到其中一个数列,算出极限值,再缩小到一个数列算出极限值。如果极限值一样, ...
计算机组成原理复习(2)
考研复习第 3,4 天
计算机组成原理相关内容的复习
原码,补码,反码,移码
移位,加减法,乘法运算
数据编码
原码,补码,反码,移码
原码
字面意思,有符号时,最高位只表示负号
补码
最高位权值为负,其它与原码一致。
反码
在原码的基础上,若最高位为1,则对原码除符号位所有位取反
移码
看成无符号然后-一个偏置值即可。
单符号与双符号
单符号一般写的时候用小数点隔开,但是不表示小数点的含义,比如 0.0001
如果是原码表示正数的1,1.0001
如果是原码表示负数的1。在此基础上,还可以再做一个符号的扩展,用于判断溢出。若出现
01,则表示正溢,若出现 10,则表示负溢。
比如 00.1111 如果表示原码就是正数的15,11.1111
如果表示原码就是负数的15,而 10.0001
不能表示一个正确的数,因为它溢出了,同样 01.0001
也不行。但是在下面的乘法算法的时候,允许临时溢出。
移位运算
主要是循环移位有一个带进位和不带进位的区别。带进位就是说,在挪出去的过程中要算上
CF 一起,如果不带进位,那么 ...
计算机组成原理复习(1)
考研复习第二天
计算机组成原理相关内容的复习
计算机基础
原码,补码,反码,移码
计算机基础
计算机层次结构
扔点错题上去:
完整的计算机系统应该包括
配套的硬件设备和软件系统。
存放当前执行指令的寄存器是 IR(Instruction Register)
运算器中不包含地址寄存器,地址寄存器集成在CPU中。
系列机的基本特性是:指令系统向后兼容。
计算机上层和下层的关系是:上层对下层扩展,下层是上层实现的基础。
计算机硬件能够直接执行的只有机器语言,硬件描述语言也需要经过一定的翻译才可以运行。
冯诺依曼计算机区分数据和指令主要是根据指令操作码的译码结果。
软件和硬件逻辑上等效,硬件执行速度比软件快。
计算机的性能指标
字长:计算机进行一次整数运算所能处理的数据位数,和寄存器位数,加法器有关,他们通常也相等。
数据通路带宽:外部数据的总线宽度,和内部寄存器数据总线宽度有区别。
主存容量:可以用字节表示,也可以用某数乘上字长表示,通俗点讲就是内存大小,
MAR 的位数反映了存储单元的个数和可寻址的最大范围。
运算速 ...
CS:APP第十二章学习
开始学 CSAPP的第十二章
最后一章了,不知不觉这本书已经看完了!!
梗概
并发有很多用处,比如在进行 IO
访问,服务访问的时候,如果不能合理利用并发,那么有很多时钟周期会被浪费掉。
最简单的并发方式是使用多进程,让内核进行调度的方法来并发。
基于进程的并发编程
父进程接受客户端连接请求,然后 fork
一个子进程,让子进程处理主要服务逻辑。
而在父进程中,需要及时的关闭连接描述的副本,否则会因为内存泄漏导致系统崩溃。
基于进程的并发服务器
因为服务器通常会运行很长的时间,这意味着操作系统不会帮助进程回收内存,我们需要做到以下几点:
包括一个 SIGCHLD 处理程序来回收僵死进程,因为 Linux
的信号是不排队的,所以说一次要处理完所有的子进程。
对于父进程,需要在 fork 之后马上 close
建立连接的描述符,对于子进程来说,也要关闭所有的文件描述符。
进程的优劣
进程共享文件表,但是不共享用户地址空间(这既是优点也是缺点),不会发生内存覆盖的情况,但是也造成了通信困难。
为了通信,需要使用 IPC(进程间通信)机制 ...
高等数学复习(1)
谨以此笔记,记录考研的学习
函数
基本定义
函数具有一对一,多对一的性质,但是不能是一对多,即:一个确定的 x
不能有多个 y 值与之对应。
反函数
从图像上来看,把所有点交换 \(x\) 与
\(y\)
的坐标值即得到对应反函数曲线,并且反函数和原函数关于 \(y=x\) 对称。
严格单调的函数一定有反函数。
\(y=f(x)\) 与 \(x=f^{-1}(y)\)
完全一致,只有在后面表达式中交换 \(x\)
和 \(y\) 才得到反函数,即 \(y=f^{-1}(x)\)。
有反函数的不一定是单调函数,也可以是分段函数。
复合函数
就是把外面函数的自变量用一个函数去替代。
如:
\(f(x)=x^2+x\),那么 \(f(g(x))=(g(x))^2+g(x)\)
复合函数求导需要先把 \(g(x)\)
当成自变量先求一次导,再乘上 \(g(x)\)
的导数。
有界性
有界一定要指明区间。
若能找到一个数使得 \(|f(x)|\le M\)
则有界。
或者说,若在区间内,某点的极限算出来是无穷大,那么无界,否则 ...
CS:APP第十一章学习
开始学 CSAPP的第十一章
逐步更新:
2023-02-06:开始写
梗概
这一章就是讲了网络编程的实用性,我们身边要用到的所有跟网络有关的服务都需要用到网络编程,包括了浏览
Web、发送 email 信息或是玩在线游戏,你就正在使用网络应用程序。
这一节综合了前面一些理论知识,最后会做出一个成品来,期待ing。
客户端/服务器编程模型
客户端/服务器编程模型(Client/Server)是网络编程的基本模型,模型中的基本操作是事务(transaction)
一个客户端—服务器事务由以下四步组成:
当一个客户端需要服务时,它向服务器发送一个请求,发起一个事务。例如,当
Web 浏览器需要一个文件时,它就发送一个请求给 Web 服务器。
服务器收到请求后,解释它,并以适当的方式操作它的资源。例如,当 Web
服务器收到浏览器发出的请求后,它就读一个磁盘文件。
服务器给客户端发送一个响应,并等待下一个请求。例如,Web
服务器将文件发送回客户端。
客户端收到响应并处理它。例如,当 Web
浏览器收到来自服务器的一页后,就在屏幕上显示此 ...
CS:APP第十章学习
开始学 CSAPP的第十章
逐步更新:
2023-02-01:开始写
梗概
这里介绍了我们学习 Unix IO
的一个原因。第一点就是帮助我们理解更深层次的系统概念,第二点就是在某些编程环境下,除了最底层的
IO 我们别无选择。
Unix IO
在 Linux 当中,一切皆文件,所有的 IO
设备都以文件的形式挂载在文件系统当中,我们需要输入输出只需要简单的读写文件即可,这使得我们访问任何设别都可以以简单一致的方式去访问:
打开文件:通过 open
函数打开一个文件,内核会记录这个文件的所有信息,用户层会返回一个文件描述符,用户层要操作文件只需要对文件描述符操作即可。
Linux在创建进程的时候有默认的三个打开的问及那:标准输入(stdin),标准输出(stdout),标准错误(stderr)。
改变当前文件的位置:对于每个打开的文件,内核会记录文件所在的位置
k,初始为 0,通过 seek 操作我们可以改变这个值。
读写文件:读文件就是把文件中从 k 开始到 k+size
的文件内容复制到内存,写文件就是把文件中从 k 开始到 k + ...
吾爱破解2023红包题
吾爱破解2023红包题,由于太菜了,Android 难题都不太会写。
本篇文章主要精力在于分析第五天的题。
第二天
直接拿 ida 动调,输入对应长度的字符串观察变化,发现主要和一个 data
段上等待数据比较。
就直接照着它的式子去写就ok了。
1234567891011121314151617181920212223242526272829#include<iostream>#include<stdio.h>using namespace std;unsigned char s[] ={ 0x98, 0x01, 0x00, 0x00, 0xB0, 0x01, 0x00, 0x00, 0x84, 0x01, 0x00, 0x00, 0x9C, 0x01, 0x00, 0x00, 0xEC, 0x01, 0x00, 0x00, 0xD4, 0x00, 0x00, 0x00, 0xC8, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xBC, 0x01, 0x00, 0x00, 0x28, ...
西湖论剑 2023 预赛 writeup
西湖论剑 2023 预赛 writeup
WEB
Web1
[nodejs|原型链污染|ejs|拆分攻击]
前言
主要是node 8.12.0的一个http.get解析洞,通过拆分攻击实现的SSRF攻击
和ejs RCE+safeobj原型链污染(CVE-2021-25928)
查了下这种属于拆分攻击(HTTP Splitting),和请求走私(HTTP
Smuggling)有点区别。
RCE
这里一开始挺简单,有个safeobj包,一看safeobj.expand(),游戏结束。
拿着POC测试了下环境,通过。
12345var safeObj = require("safe-obj");var obj = {};console.log("Before : " + {}.polluted);safeObj.expand(obj, '__proto__.polluted', 'Yes! Its Polluted');consol ...