关于pwn的思考
基本材料 一、推荐什么教程,哪些书适合由浅入深地入门?个人之前只对web方面的漏洞有很浅的认识,对pwn一无所知 具体基础有: 简单sql注入,命令执行,文件包含,文件上传,代码审计,爆破,且仅限于ctfshow对应类别的前30道。 当前情况是: 暑假会有大型比赛,到时候必须要有拿得出手的水平,时间紧迫。 二、推荐哪个题库 三、推荐哪些比赛比较适合新人练手? 学习路线 个人简单了解了pwn,发现其需要的基础相当多,想向师兄们请教以下问题: Linux如何学习,由于它是一种操作系统,个人认为这种系统是要越用越熟练而非单纯记忆指令,可以如何更好提升linux水平呢,如何应用呢?目前个人尝试在电脑上安装双系统,(拟定为Arch Linux)。 关于汇编学习,需要学习到哪个程度,有没有必要使用类似于图灵完备(Turning Complete)这样的游戏软件从电脑硬件底层开始了解机器语言,进而深入了解汇编语言,目前本人正在使用VS...
c语言标准库及其函数
<stdio.h>scanf()函数概述 scanf是 C 语言中的一个标准库函数,主要用于从标准输入流(一般指键盘)读取格式化的输入数据 ,并将其存储到程序中指定的变量中。 关于scanf()在读取的时候,占位符、后方变量地址、以及输入数据时的格式”一一对应”的规则: 占位符格式scanf 函数的占位符格式用于指定要读取的数据类型,常见的占位符有: %d:用于读取十进制整数,对应的数据类型是 int。 %f:用于读取单精度浮点数,对应的数据类型是 float。 %lf:用于读取双精度浮点数,对应的数据类型是 double。 %c:用于读取单个字符,对应的数据类型是 char。 %s:用于读取字符串(以空白字符分隔),对应的数据类型是字符数组。 %x 或 %X:用于读取十六进制整数,对应的数据类型是 int。 %o:用于读取八进制整数,对应的数据类型是 int。 传递变量地址的格式 在 scanf 函数中,需要传递变量的地址,以便将读取的数据存储到相应的变量中。对于基本数据类型的变量,需要使用取地址运算符 &...
python装饰器
@classmethod基本介绍 @classmethod 是 Python 中的一个装饰器,作用是把一个方法封装成类方法 。 类方法是什么,就是可以直接使用类,无需实例化调用的方法叫做类方法。 比如: class DateUtils: @classmethod def get_time(cls): import datetime return datetime.datetime.now() #类调用 year1 = DateUtils.get_time print(year1) #实例化后调用 date = DateUtils() year2 =n date.get_time print(year2) 123456789101112131415161718192021222324252627282930313233343536373839# @model_validator(mode="")(pydantic库)## 可输入参数:* `before`和`after`* 区别如下: -...
二级通识
循环结构循环队列 例题一 解析: 咱把循环队列想象成一个头尾相连的环形跑道,跑道上有一些位置能放东西。队头指针 front 就像是在跑道上标记从哪儿开始取东西,队尾指针 rear 标记着下一个能放东西的位置。 一般来说,要是队头和队尾都在跑道的最后一个位置(也就是 front = rear = m ,这里 m 是跑道总共能放东西的位置数量 ),那就说明跑道上啥东西都没有,队列是空的。 但要是队头和队尾在同一个位置,可又不是跑道最后那个位置(像这题里 front = rear = 25 ,不是 50 ),这时候队列可能是空的,也可能是摆满东西了。 这题说又成功放进去一个东西,要是队列已经摆满了,就没地方放新东西了,所以就说明之前队列是空的。那放进去一个东西后,队列里自然就只有这 1 个东西啦,答案就是 A 选项。 例题二 关于以上公式: 当front<rear时: 在循环队列里,front 指向队头元素的前一个位置 ,这是一种约定的表示方式。这么设定主要是为了方便处理入队和出队操作时指针的移动逻辑...
滑动窗口数据清洗分区
基本元素 三个基本元素: 可迭代数据 单个动态窗口window大小 步长step_size 如下代码: def sliding_windows(data, window_size, step_size):#data要是可迭代数据 """ 步长是对窗口的移动距离 窗口大小是窗口的长度 细看以下的说明 """ windows = [] #定义窗口集 start = 0 #动态窗口的初始值 while start + window_size <= len(data):#窗口大小不能直接超过迭代数据大小 window = data[start:start+window_size]#对窗口长度进行定义 windows.append(window)#将窗口加入到列表中 start += step_size#窗口的起始位置动态变化,即动态改变窗口位置 return windows if...
汇编硬件基础
三线概念名词辨析 地址总线的宽度: 原理:地址总线宽度决定 CPU 的寻址能力,寻址能力的计算公式为 (2^n) (n 为地址总线宽度),单位是字节(Byte)。8bit = 1Byte。 储存单元: **原理:**单位为Byte,存储单元从0开始,n-1结束 数据总线宽度: 原理:数据总线宽度决定了 CPU 一次能传送的数据位数,单位是位(bit),而 8 bit (= 1) Byte ,直接根据数据总线宽度换算成字节(B)。
犯罪脚本数据源梳理
...