-
20242410 2025-2026-1 《网络与系统攻防技术》实验一 逆向与BOF基础的实验报告
20242410 2025-2026-1 《网络与系统攻防技术》实验一 逆向与BOF基础实验报告 姓名:刘禹 学号:20242410 1. 基础知识 做实验前先把几个绕不开的底层概念理清楚,不然对着汇编看天书: call指令的跳转原理:x86下call 目标函数的机器码格式是e8 + 4字节补码偏移 -
算法第二章实践作业
1. 找第 k 小的数的分治算法 自然语言描述: 如果当前数组中只有一个元素,那么这个元素就是第 k 小的数,直接返回。 从当前数组中选择一个基准元素 p。 通过划分操作,将数组分成两部分:左边元素都不大于 p,右边元素都不小于 p,并确定 p 最终所在位置。 计算 p 在当前区间中的排名 rank -
第二章分治法
一、分治算法找第k小元素:在n(1<=n<=1000)个无序的整数中找出第k小的数。 1、选取一个基准值p,对数组区间进行划分:小于等于p的放在左边,大于p的放在右边,最后得到p的位置pos。 2、计算p是当前区间里的第cnt = pos - left + 1小。 3、如果cnt == k,p就是第 -
第二章作业
1、从数组中随便选取一个数字作为基准,然后对该区间进行划分,左边的数字是小于该基准的,右边的数字大于该基准,然后统计左边个数是否为k,如果大于k,则在该基准的左边开始递归上述办法进行查找,反之则在右边 2、最好的时间复杂度的话是O(N),即每次都是均匀划分,或者是说直接选到了第k小的数字,然后直接返 -
20242315 2025-2026-1 《网络与系统攻防技术》实验0x11 逆向与Bof基础 实验报告
20242315 2025-2026-1 《网络与系统攻防技术》实验0x11 逆向与Bof基础 实验报告 姓名: 张冠伦(zhangguanlun) 学号: 20242315 实验日期: 2026-10-10 实验环境: Kali Linux(32 位 ELF)、VMware 虚拟机 目录 1. 基 -
我的C++编码规范
1.命名规范 变量、函数使用小驼峰或下划线命名,如 maxSum、merge_sort。 常量使用全大写加下划线,如 MAX_N。 名称要表达含义,避免使用 a1、x 等无意义命名。 2.缩进与格式 统一使用 4 空格缩进。 所有代码块都要加 {},即使只有一条语句。 运算符两侧和逗号后面加空格。 -
数据采集第一次作业
本次作业使用 Python 完成三个定向采集任务。运行环境为 Python 3.10 及以上版本,依赖库如下。 pip install requests beautifulsoup4 作业① requests+BeautifulSoup爬取软科2020大学排名数据采集 目标网页:软科2020中国大学 -
算法第二章实践作业
分治法求第 k 小的数:从算法思路到 C++ 实现 一、问题引入 在学习数据结构与算法的过程中,我发现,很多问题不一定要通过完整地排序才能得到答案。例如,给定一个无序数组,要求找出其中第 k 小的数,如果直接对整个数组进行排序,再取出第 k 个元素,虽然方法比较容易理解,但当我们只需要其中一个元素时 -
20242311 2025-2026-1 《网络与系统攻防技术》实验一实验报告
20242311 2026-2027-1 《网络与系统攻防技术》实验1实验报告 姓名:王润章 学号:20242311 1. 基础知识 1.1 ELF、反汇编与调试 ELF(Executable and Linkable Format)是 Linux 上常见的可执行文件格式。本实验的 pwn1 是 3 -
算法第二章实践作业
一. 找第 k 小的数的分治算法(快速选择,基于快排思想) 算法思想 在数组中选一个基准元素 pivot,把数组划分成两部分:左边所有元素 ≤ pivot,右边所有元素 ≥ pivot。划分完成后,基准元素就处在它最终的有序位置。 假设基准下标为 pos: 如果 pos == k-1:pivot 就 -
我的c++编码规范
一、命名规范 变量名:小驼峰 studentScore 或者下划线命名 student_score,见名知意,禁止单个无意义字母(除循环临时变量i,j) 类名:大驼峰(帕斯卡命名)StudentInfo,每个单词首字母大写 常量 / 宏:全大写,下划线分隔 MAX_SIZE 函数名:小驼峰 getS -
数据采集第一次作业
数据采集第一次作业 网络爬虫第一次作业:requests + BeautifulSoup / re 定向爬虫 代码仓库:作业1 实验环境: 项目 说明 操作系统 Windows 11(64 位) 编程语言 Python 3.10 开发工具 VS Code 浏览器 Chrome(含开发者工具 F12) -
20242412 2026-2027-1 《网络与系统攻防技术》实验一实验报告
20242412 2026-2027-1 《网络与系统攻防技术》实验一实验报告 1. 基础知识 本次实验涉及的核心知识点总结如下: (1)缓冲区溢出(Buffer Overflow) 程序向缓冲区写入数据时,超出了缓冲区的边界,覆盖了相邻内存区域的值。当被覆盖的内存区域恰好是函数返回地址时,攻击者就 -
20242323 2026-2027-1 《网络与系统攻防技术》实验一实验报告
20242323 2026-2027-1 《网络与系统攻防技术》实验一实验报告 1.基础知识 1.1 栈帧结构:buf、ebp、返回地址的位置关系 32 位 Linux 下函数调用时,栈从高地址向低地址生长。理解 BOF 的关键是搞清楚三个东西在栈上的相对位置:局部变量 buf、保存的 ebp、返回 -
20242324 2026-2027-1 《网络与系统攻防技术》实验1实验报告
1.基础知识 (1)栈帧与函数调用机制 程序调用函数时会在栈上开辟栈帧,栈内保存局部缓冲区、栈基址 EBP 与函数返回地址 RET。函数执行结束后,CPU 读取返回地址跳回原位置。若向局部缓冲区写入超长数据,多余数据会覆盖栈上的返回地址,修改 EIP,实现指令流劫持,这是缓冲区溢出的核心原理。栈的增 -
C++代码规范
写代码要有规范:变量名要有意义,别用a、b、c,让人一看就懂;常量全大写,函数名用动词,类名首字母大写。格式上统一缩进,别混用空格和Tab,一行别太长,运算符两边留空格。注释要写清楚为什么这么做,别写废话,改了代码记得改注释。每个函数只干一件事,别超过50行,少用多层嵌套,能提前返回就提前返回。别在 -
20242318 2026-2027-1 《网络与系统攻防技术》实验一实验报告
20242318 2026-2027-1 《网络与系统攻防技术》实验一实验报告 1. 基础知识 这次实验主要是在Kali Linux上对一个32位的程序做缓冲区溢出攻击,用到的知识大概有这么几块: (1)ELF可执行文件格式和x86汇编基础。 实验用的pwn1是32位的ELF可执行文件,里面有三个函 -
20242413 2026-2027-1 《网络与系统攻防技术》实验一实验报告
20242413 2026-2027-1 《网络与系统攻防技术》实验一实验报告 1.基础知识 1.1 ELF 文件与反汇编 pwn1 是 32 位 ELF 可执行文件。代码段(.text)中存放机器指令,objdump -d 可以将其反汇编为汇编代码,得到各函数的虚拟地址与对应的机器码,是漏洞分析的 -
20242404 2026-2027-1 《网络与系统攻防技术》实验一实验报告
20242404 2026-2027-1 《网络与系统攻防技术》实验一实验报告 1.基础知识 本次实验以 32 位 Linux 可执行文件 pwn20242404 为目标程序,通过三种递进的方式获取 shell,涉及以下基础知识: 缓冲区溢出(Buffer Overflow):程序向固定长度的缓冲区 -
20242415 2026-2027-1 《网络与系统攻防技术》实验一 实验报告
《网络与系统攻防技术》实验一 实验报告 学号:20242415 学期:2026-2027-1 1. 基础知识 本次实验的目标对象 pwn1 是一个 Linux 可执行文件,正常流程是 main 调用 foo,foo 回显用户输入;文件中另有一段正常情况下不会执行的 getShell 代码,我们的任务