DASCTF 7.20 -DosSnake
0x01 DosSnake12345678910flag = ""key = [0x44, 0x41, 0x53, 0x43, 0x54, 0x46]enc = [0x3F, 0x09, 0x63, 0x34, 0x32, 0x13, 0x2A, 0x2F, 0x2A, 0x37, 0x3C, 0x23, 0x00, 0x2E, 0x20, 0x10, 0x3A, 0x27, 0x2F, 0x24,0x3A, 0x30, 0x75, 0x67, 0x65, 0x3C]for i in range(len(enc)): enc[i] ^= key[i % 6]for i in range(len(enc)): flag += chr(enc[i])print(flag)#DASCTF{H0wfUnnytheDosSnakeis!!!}
巅峰极客2024-babyre
0x01 babyre分析程序输入的字符串经过3个3个的分解,例如flag分解为fla和lag,然后每组字符串经过sha256,再和原来未加密的字符串轮异或,例如,字符串fla经过sha256后生成的32字节的哈希值,每个字节和fla轮异或,得到的新的32字节的值。
源程序中有1280字节的密文,也就是40个上述的加密后的哈希值,分组爆破出3个3个的flag块,经过首尾相接后组成flag。
源程序中的40个加密后的哈希值经过随机打乱,不再是fla,lag…,的排列顺序,所以把flag块爆破出来后还需要一个脚本来拼接flag。
python脚本爆破flag块
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970# 输入的字符串经过3个3个的分解,然后每组字符串经过sha256,再和原来未加密的字符串轮异或import hashlibenc_list = ['EB74464 ...
正则匹配
0x01 正则库re运用python自带的正则库
1import re
设置一个匹配对象
1member = re.compile('')
在单引号内写正则表达式。
还可以传入第二个参数,用来指定额外的条件。
123member = re.compile(r'', re.I) #忽略大小写member = re.compile('.*?', re.DOTALL) #句点匹配符匹配换行符member = re.compile('.*?', re.VERBOSE) #忽略正则表达式字符串中的空白符和注释
0x02 有关正则的python方法search()
找到第一个匹配的字符串并返回一个Match对象
1234member = re.compile(r'123')mo = member.search('123456')print(mo.group())#123
findall()
找到所有匹配的字符串并返回一个列表
1234member = re.compile(r& ...
爬虫理论笔记
web请求过程剖析服务器渲染服务器直接整合数据和html文件,并返回
客户端渲染服务器先返回一个html骨架,之后请求再次返回需要的数据,在浏览器客户端整合成页面(页面源代码没有数据)。
通过Network实时查看服务器对请求的返回,可以抓包到数据。
HTTP协议HTTP协议,Hyper Text Transfer Protocol(超文本传输协议),服务器和浏览器之间的数据交互遵守的就是HTTP协议。
请求:
123请求行 -> 请求方式(get/post) 请求URL地址 协议请求头 -> 服务器要使用的附加信息请求体 -> 一般是请求参数(例如搜索框输入的东西)
响应:
123状态行 -> 协议 状态码(404等)响应头 -> 放一些客户端要使用的附加信息(例如安全密钥,加密数据等)响应体 -> 服务器返回的真正的客户端要使用的内容(HTML, json等)
请求头中的常见重要内容:
1、User-Agent:请求载体的身份标识(用什么发送的请求)
2、Referer:防盗链( 这次请求是从哪个页面来的?反爬使用)
3、cookie:本 ...
git的基础使用
Git的下载安装windows版的git下载
我直接下载64位安装程序了,按需求下载。
之后就一直next就好了。
Git初始化配置配置用户名和邮箱12git config (可选) user.name "your name"git config (可选) user.email "your email"
可选选项指定了配置的范围:
省略(Local):本地配置,只对本地仓库有效
—global:全局配置,对所有仓库有效
—system:系统配置,对所有用户有效(一般不会使用这个)
保存用户名配置1git config --global credential.helper store
列出配置信息1git config --global --list
Git新建仓库本地创建选择一个空的文件夹来创建本地仓库:
(可以在命令末尾指定仓库名字,会新建一个文件夹来存放.git)
1git init
回显:
1Initialized empty Git repository in D:/learn-git/.git/
这里的.git是一个隐藏目录,用普通的l ...
分析Cache访存模式对系统性能的影响
分析Cache访存模式对系统性能的影响表1、普通矩阵乘法与及优化后矩阵乘法之间的性能对比
矩阵大小
100
500
1000
1500
2000
2500
3000
一般算法执行时间
0.005
0.622
5.177
25.763
51.578
116.024
193.515
优化算法执行时间
0.004
0.384
3.070
12.480
22.462
49.304
82.696
加速比speedup
1.337
1.620
1.686
2.064
2.296
2.353
2.340
加速比定义:加速比=优化前系统耗时/优化后系统耗时;
所谓加速比,就是优化前的耗时与优化后耗时的比值。加速比越高,表明优化效果越明显
分析原因:传统的矩阵乘法算法通过遍历结果矩阵 c 的每一行和每一列来计算每个元素的值。在这种访问模式下,矩阵 a 的访问步长为 1,表现出良好的空间局部性,即连续访问的内存地址相邻,有利于缓存命中。
然而,矩阵 b 的访问步长为 size,意味着每次访问的内存地址间隔较大,导致缓存命中率较低。
为了优化缓存性能,我们可以采用一种改进的 ...