操作系统实验6——信号量的实现与应用
解压环境 创建并编辑 pc.c 创建并编辑 sem.h 创建并编辑 sem.c 编辑 unistd.h 编辑 system_call.s 编辑 sys.h 编辑 makefile 后续操作cp 命令 | 复制操作 编译 运行 编译 挂载
操作系统实验5——基于内核栈切换的进程切换
解压环境 编辑 kernel/sched.c 编辑 include/linux/sched.c 编辑 kernel/system_call.s 编辑 include/linux/sched.h 编辑 kernel/sched.c 编辑 kernel/system_call.s 编辑 kernel/fork.c 编辑 kernel/system_call.s 编辑 kernel/system_call.s 编辑 kernel/fork.c 编译 运行
汇编语言与逆向工程实验报告11
查壳 是 upx 工具的壳 手动脱壳 OD 打开 定位到 PUSHAD ESP 定律,下个断点 找到 POPAD,找到入口点 OEP Dump 出 exe 文件 修补 IAT 表 成功脱壳 工具脱壳工具:UPX 可以使用 upx -d xxx.exe 直接脱壳 反汇编找到关键函数 分析可得 flag: HappyNewYear!
汇编语言与逆向工程实验报告10
搭建实验环境安装 nasm 和 r2 1sudo apt install nasm 123git clone https://github.com/radareorg/radare2.gitcd radare2sys/install.sh 实验内容 然后建立 zero.asm 文件。将编译好的程序输入 对文件进行编译 通过 r2 看到对应的汇编指令和二进制指令 新建一个 pack.asm 文件,对刚刚的程序进行加壳操作将二进制指令加密。 新建 pack_zero.asm 文件对刚刚加壳的程序进行脱壳,得到原始二进制指令。 对文件进行编译。输入./pack_zero 111 脱壳成功。
Mbps,Mb/s, MB/s的区别
为了搞懂这几个单位之间的区别,我们首先需要弄懂这其中的最重要的 B 与 b 分别代表了什么 b,通常为 bit 的简称,中文为比特,计算机存储传输中的最小单位 B,通常为 Byte 的简称,中文为字节,其中 1Byte=8bit 其中,bit 这个单位太小了,通常只在数据通信形容带宽时出现 单位转换1 Byte = 8 bit 1 KB = 1024 B (KB, KiloByte) 1MB = 1024 KB (MB, MegaByte) 1 GB = 1024 MB (GB, GigaByte) 1 TB = 1024 GB (TB, TeraByte) 这些单位通常用来指代某个文件大小,或者说存储设备的存储容量 以上通常用来指代存储大小,而如果形容传输速度或者下载速度的话 那么,很明显我们还需要结合时间单位 s,秒 加上了秒,我们就可以得到更加丰富的单位 Mbps, Megabits per second,兆比特每秒 Mb/s, Megabits per second,兆比特每秒 MB/s, MegaByte per second,...
操作系统实验4——步骤进程运行轨迹的跟踪与统计
挂载 上传process.c 修改main.c 修改printk.c 修改fork.c 修改sched.c 修改exit.c 启动挂载 执行make all 运行 编译process 编辑Python脚本
这里什么也没有
...
网络安全实验报告7——慢 DDos 拒绝服务攻击
安装 Java 环境下载 Java 验证 Java 环境是否安装成功: 配置环境变量 安装 Tomcat提权 环境变量 新建系统变量 验证 javac 启动 Tomcat 靶机安装 MySQL安装 安装成功,启动数据库 Navicat 安装、激活及连接安装 激活 Navicat 打开桌面的 Navicat,连接数据库,密码是 123456 确认连接 新建数据库 目录部署 运行 SQL 文件 重启 Tomcat 下载安装 AWVS安装完成 运行激活软件 AWVS 登录 进行许可证激活 输入命令以管理员身份运行 cmd,输入以下命令cacls“C:\AWVS\shared\license\license_info.json” /t /p everyone:rcacls “C:\ProgramData\Acunetix\shared\license\wa_data.dat” /t /p everyone:r 成功登录 打开 Acunetix,添加目标查看本机地址 添加目标 开始扫描 扫描结果出现威胁 导出漏扫报告 攻击机安装 Python 利用...
A replacement method for inaccurate date display in Mkdocs-material
There is another Chinese translation for this article:https://blog.w1ndys.top/posts/512a6b20 Note:A more efficient approach:https://github.com/squidfunk/mkdocs-material/discussions/7135#discussioncomment-9277842 Question background.After a deployment to Vercel, the date display was found to be inaccurate. I asked the community for help, details can be seen: https://github.com/squidfunk/mkdocs-material/discussions/6924/, finally found that Vercel does not support this operation, so after two...
关于Mkdocs-material日期显示不准确的一种平替方法
本文另有英文版:https://blog.w1ndys.top/posts/fa88f28c 注意:更高效的方法:https://github.com/squidfunk/mkdocs-material/discussions/7135#discussioncomment-9277842 问题背景在一次部署到 Vercel 之后,发现日期显示不准确。我向社区求助,详情可见:https://github.com/squidfunk/mkdocs-material/discussions/6924/,最后发现是 Vercel 并不支持此操作,于是我经过长达两周的测试,找到了一种平替的解决方案 具体思路就是在每一个 Markdown 文件底部添加一个时间信息的文本,使用 Python 脚本+自动化工作流实现自动更新日期。 本方案适合: 部署到 Vercel 平台的 material 站点 文档仓库使用 GitHub 文档仓库的提交记录与文档内容同步 解决方案Python...
记一次Github actions的学习
前言事情是怎么一回事呢,一直以来,我的 Easy-QFNU 的日期更新因为插件不适配,导致日期我一直没用,就自己手搓的日期编辑,硬解码,一开始是手动编辑,后来感觉效率太低了,就搓了个 Python 脚本来实现批量更新,但是后来又觉得不够灵活,就想着用 Github actions 来实现自动化执行脚本来更新,正好看到了探姬师傅的 Hello-CTF 的 Github 仓库里也用了 Github actions,就想着也试试。 前前后后搞了十多天吧,在这期间,遇到了各种各样的奇奇怪怪的 bug,最终解决,能正常运行的时候,我欣喜若狂,我都不知道我有多高兴,从来没这么高兴过。 结局虽然最后给社区分享了一下,社区维护人员给了我一种更好的解决办法,可以说是更加完美平替了,采用了他的方法,这十天也就是说白白浪费了 其实也不能算白白浪费吧,毕竟对 Github actions 更加熟悉了一些,学到了一些东西,也算是对自己能力的一种考验吧。 这份脚本我也留档了,有需要的可以参考一下,希望能帮到你。 脚本及其教程脚本及其教程在这里:关于 Mkdocs-material 日期显示不准确的一种平替方法
操作系统实验2——操作系统的引导
解压文件12tar -zxvf hit-oslab-linux-20110823.tar.gz \ -C /home/shiyanlou/ 开始实验 修改字符串长度 修改字符串内容 编译 去掉文件头部 运行 读入 setup.s 再次编译 注释 build.c 显示获得的参数
网络安全实验报告6——使用Python实现SYN Flood攻击实验
实验环境 操作系统:Windows 11 23H2 抓包工具:WireShark 虚拟化软件:VMware Workstation 16 虚拟机操作系统:Ubuntu 18.04.1 实验过程攻击代码使用 Python 编写的实现 SYN Flood 攻击的代码: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758from scapy.all import *from random import randintimport threadingdef randomIP(): ip = ".".join(map(str, (randint(0, 255) for _ in range(4)))) return ipdef randInt(): x = randint(1000, 9000) return xdef SYN_Flood(dstIP, dstPort,...