proxy_lab
仓库地址 本实验分为三个部分:设置代理、并发、缓存准备部分:安装netstat工具 1sudo apt install net-tools 1. 实现一个顺序的代理服务器概述 在第一部分,设置代理来接受传入连接,读取和解析请求,转发请求到Web服务器,读取服务器的响应,并将这些响应转发给相应的客户端(用于处理HTTP/1.0的GET请求) 启动时,你的代理应该监听在命令行指定的端口上接收传入连接。一旦建立了连接,代理应该从客户端读取整个请求并解析请求。它应该确定客户端是否发送了有效的 HTTP 请求;如果是,则可以建立自己的连接到适当的 Web 服务器,然后请求客户端指定的对象。最后,代理应该读取服务器的响应并将其转发给客户端 代码实现 首先包含必须的库 12345678910#include <stdlib.h>#include <string.h>#include <unistd.h>#include <signal.h>#include <sys/socket.h>#include <netin...
malloc_lab
实验目的 这是一个实现动态内存分配器的实现,类似实现C语言标准库中的malloc free realloc 函数 mm_init(void) 初始化堆内存区域 为后续的内存分配操作做准备 成功返回0,失败返回-1 mm_malloc(size_t size) 分配至少size字节的内存 返回的指针必须8字节对齐 不能与其他已分配的内存重叠 *mm_free(void ptr) 释放之前分配的内存块 只能释放由 mm_malloc 或 mm_realloc 分配且尚未释放的块 *mm_realloc(void ptr, size_t size) 重新调整已分配内存块的大小 特殊情况处理 ptr == NULL → 相当于 mm_malloc(size) size == 0 → 相当于 mm_free(ptr) 代码实现1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556...
组会
NumPy+GPTNumpy 作为一个知识浅薄的人,此处不得不先补一下numpy的相关知识 NumPy 是一个免费的开源 Python 库,用于 n 维数组(也称为张量)处理和数值计算 NumPy有对大型多维数组(也称为矩阵或张量)的支持,提供了一系列高级数学函数(基本的线性代数、随机模拟、傅立叶变换、三角运算和统计运算),是 Pandas、Scikit-learn 和 SciPy 等库的基础 NumPy库的中心数据结构是多维数组(值的网格)。 Numpy的ndarray(同构的n维数组对象):每个项包含大小相同的内存块,且采用统一识别方式 NumPy数组是类似数据类型的编译,在内存中密集集中打包 底层是用C语言实现的目标代码 使用前需要向量化(变成数组) 简单使用 123456789101112131415161718192021222324252627282930import numpy as np# 创建数组np.array([1,2,3,4,5]) # 创建数组np.zeros((3,2)) # 全零 3行2列np.ones((2,3)) # 全1np.ara...
数据结构与算法速通
1. 数组 数组的内存地址计算公式:f(index) = BaseAddress + DataTypeSize * Index 首地址 + 内存单个元素占用的内存大小 * 索引 搜索值12345678int search(int arr[],int length,int key){ for(int i = 0;i < length;i++){ if(arr[i] == key){ return i; } } return -1;} 时间复杂度: 最好:首位,O(1) 末尾/不在数组中O(n) 插入12345678910111213141516#include <stdio.h>#define Max_SIZE 100int main(){ int arr[Max_SIZE] = {1,5,10,7,31}; int length = 5; int elem...
Shell实验
这个实验需要我们在tsh.c中补充相关代码实现一个shell程序(废话ing)那么根据README文档中的顺序进行补齐 添加相关的宏定义和头文件 12345#define _POSIX_C_SOURCE 199309L#define _XOPEN_SOURCE 500#include <sys/select.h>#include <sys/time.h> eval 解析和解释命令行的主例程 1. 实现内容 若用户请求的是内置命令(quit、jobs、bg 或 fg)则立即执行。否则,创建一个子进程并在该子进程的上下文中运行该任务 若任务在前台运行,等待其终止后再返回 每个子进程必须具有唯一的进程组ID,这样在键盘上输入ctrl-c(ctrl-z)时,后台运行的子进程就不会从内核接收SIGINT(SIGTSTP)信号 2. 代码实现12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758//...
NEMU_PA3
仓库地址 阶段一 第一次没过破防了决定直接一部到胃一起写必做一和选做一 1. 概述 根据指导书可知,我们需要实现一级高速缓存和二级告诉缓存,其中l2会多一个脏标签的处理 公式:C=B* E *S (E缓存块 B字节 S组 C总大小) l1: E=8 B=64 C=64*1024 S=128 l2: E=8 B=64 C=4*1024 *1024 S=4096 Address: tag: t bits set index: s bits block offset: b bits l1: b=6 s=7 l2: b=6 s=12 2. 实现 定义高速缓存的结构(nemu/include/memory/cache.h) 12345678910111213141516171819202122232425262728293031323334#include <stdint.h>#define CAC...
本地部署AI
Windows环境 下载windows版的ollama,安装ollama官网 打开cmd,输入ollama,出现如下即为安装成功 返回ollama官网,下载deepseek-r1 有显卡可以选择7b,无独显选择1.5b 复制上方代码:(以7b为例) 1ollama run deepseek-r1:7b 可以直接通过终端对话 安装cherry studio实现图形化(x64)Cherry Studio官网 打开Cherry Studio,打开设置,选择ollama,打开开关并添加deepseek 再回到对话首页即可使用
SQL注入攻击
概述 在服务器向数据库进行数据查询时,不输入正常的数据,输入代码,使数据查询变成代码执行 sql语言(部分): 选取表格中所有内容 1select * from allusers 选取指定的用户名和密码 1where username = 'QingMaxLim' And passwd = 'passwd' where关键字 SQL语句遇到where关键词时,会判断条件是真是假 某个神奇的指令 1DROP DATABASE TABLICE --删除整个数据库 5.SQL合并两个表格的内容: 1select * from table1 Union select * from table2 报错与注释 多’ 1where username = 'QingMaxLim'' And passwd = 'passwd' 执行时将’’中的视为字符数据,而不是操作符,此条语句报错,服务器可能将SQL报错信息直接返回给用户2. ‘后有– 1where username = '...
buuctf-web-wp
[极客大挑战2019]EasySQL12admin' or 1=1#123456 ‘#’是注释符,相当于 1SELECT * FROM users WHERE username='admin' or 1=1 --' AND password='123' [极客大挑战2019]Havefun1查看网页源代码,有注释 1234567 <!--$cat=$_GET['cat']; // 从URL的GET参数中获取名为'cat'的值echo $cat; // 输出这个值if($cat=='dog'){ // 如果获取到的值等于字符串'dog' echo 'Syc{cat_cat_cat_cat}'; // 就输出这个看起来像flag的字符串}--> 在url中添加get参数为cat=dog [ACTF2020新生赛]...
ubuntu+dwm试水
安装1. 1sudo apt install apt-src 在软件更新器中勾选源代码选项 123456sudo sumkdir srcpkgscd srcpkgsapt-src updateapt-src install dwmls 1234cd dwm-6.1cd debiancd desktopls 退回srcpkgs目录 1234apt-src build dwmdpkg -i dwm_6.1-5_amd64.debapt install htophtop 退出htop5. log out,然后在登陆界面选择dwm










