自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 20232831 袁思承2023-2024-2 《网络攻防实践》第11次作业

网络攻防终章

2024-05-30 13:14:05 959

原创 20232831 袁思承 2023-2024-2 《网络攻防实践》第10次作业

网络攻防!

2024-05-16 12:16:25 1124

原创 20232831 袁思承 2023-2024-2 《网络攻防实践》第9次作业

网络攻防~

2024-05-11 09:37:44 1044

原创 20232831 袁思承2023-2024-2 《网络攻防实践》第8次作业

网络攻防~

2024-04-28 17:20:15 934

原创 20232831 袁思承 2023-2024-2 《网络攻防实践》第7次作业

网络攻防~

2024-04-25 17:18:26 1001 2

原创 20232831袁思承2023-2024-2 《网络攻防实践》第6次作业

网络攻防~

2024-04-19 01:10:27 914 1

原创 20232831 2023-2024-2 《网络攻防实践》第5次作业

网络攻防

2024-04-11 22:47:34 1098

原创 20232831 2023-2024-2 《网络攻防实践》第4次作业

网络攻防~

2024-03-28 23:48:43 1197

原创 20232831 2023-2024-2 《网络攻防实践》第3次作业

网络攻防

2024-03-22 01:47:29 973

原创 20232831 2023-2024-2 《网络攻防实践》第2次作业

网络攻防

2024-03-14 23:34:25 1032

原创 使用 exec*库函数、编程练习动态链接库的两种使用方式

当程序在运行时需要动态链接共享库时,它会查找 LD_LIBRARY_PATH 中指定的路径,其中包含了动态链接库(.so 文件)的位置。其中,myecho.c打印出传递给它的命令行参数列表,myexecve.c 使用 execve 函数调用来加载一个新的程序,即myecho,它的名字(myecho)作为 myexecve 的第一个参数传入,接着便是list1[]中的其他数据被打印。每个函数都有特定的用途和参数列表。execve 函数被用于装载并执行新的程序,它允许传递参数列表给新程序,并可以指定环境变量。

2023-12-27 11:04:36 2071

原创 外设驱动程序设计(1和2)

该实验是编写最简单的字符驱动程序,这里的设备也就是一段内存,实现简单的读写功能,并列出常用格式的Makefile 以及驱动的加载和卸载脚本。在我的Ubuntu系统下无法完成,大概是系统版本过高,于是选择了曾经低版本的Linux进行实验,且版本为Centos版本,最终实验成功。该实验要求实现对虚拟设备(一段内存的打开、关闭、读写的操作,并要通过编写测试程序来测试虚拟设备及其驱动运行是否正常。学习资源中全课中的“hqyj.嵌入式Linux应用程序开发标准教程.pdf”中的第十一章。

2023-12-26 23:59:15 421 1

原创 批处理实验

在某文件夹(11月29)中放入文本1.txt和文本2.txt,并编写一个bat脚本实现Windows下批处理过程。运行过程中,还发现没有.sh文件的权限,因此使用chmod +x 20232831.sh为其添加执行权限。3 给出各种情况的测试结果截图(正常文件,巨大文件,一个空文件,两个空文件)输出如下:(融合输出后全部输出1.txt的剩余内容)2 代码要高效,代码尽量简洁。1 尽量不生成临时文件。

2023-12-26 22:53:10 852

原创 visual studio下静态链接库的制作、动态链接库的制作

3、 将lib文件放入与main.c和head.h文件同级目录下。3、 将dll文件放入与main.c和head.h文件同级目录下。5、 直接运行main.c函数,即可调用静态库lib。5、 直接运行main.c函数,即可调用动态库dll。由上述可知,已经得到了动态链接库,直接调用即可。1、 head,h和上文中的代码一致。1、 head,h和上文中的代码一致。输入静态库的名字,保存即可。

2023-12-26 22:33:58 2128 4

原创 算法测试、模块与系统调用、读者写者

模块加载入系统时,系统修改内核中的符号表,将新加载的模块提供的资源和符号添加到内核符号表中,以便模块间的通信。如果您的程序使用多线程技术,例如在使用 pthread_create 创建线程时,需要链接 pthread 库,以便在编译后可以正确运行多线程程序。进行运行后,输入的两个数字分别代表读者和写者的数量(N 和 M),此后程序将创建多个读者和写者线程,并模拟它们的并发操作。函数原型是MODULE_LICENSE(),告诉内核该程序使用的许可证,不然在加载时它会提示该模块污染内核。

2023-12-26 22:14:58 807 1

原创 内核编译与系统调用

在/usr/src/linux-6.5.8/arch/x86/entry/syscalls下的syscall_64.tbl内添加系统调用号。修改文件sudo gedit /usr/src/linux-6.5.8/include/linux/syscalls.h添加函数声明。修改文件sudo gedit /etc/default/grub,将GRUB_TIMEOUT=0注释掉。出错,发现是makefile函数有问题,于是进行修改:sudo gedit .config。先存进/usr/src。

2023-12-26 21:10:10 2227 1

原创 两种汇编的实验

因此需要删除多余的辅助代码,而这些辅助代码就是类似“.size”等“.”开头的文件。1 通过输入gcc -S -o main.s main.c -m32 将下面c程序”week0401学号.c“编译成汇编代码 int。1 通过输入gcc -S -o main.s main.c 将下面c程序”week0402学号.c“编译成汇编代码。2. 删除汇编代码中 . 开关的代码,提交f 函数的汇编代码截图,图中用矩形标出函数栈帧的形成和销毁的代码。结果如下:(出错,发现没有用32位编译的包)

2023-12-26 20:59:02 973 1

原创 main参数传递、反汇编、汇编混合编程

参考 http://www.cnblogs.com/rocedu/p/6766748.html#SECCLA在Linux下完成“求命令行传入整数参数的和”注意C中main: int main(int argc, char *argv[]), 字符串“12” 转为12,可以调用atoi()求和函数 int sum(int N)放入sum.c中, main中调用sum(),main放入main.c中测试代码传入自己的8位学号提交代码附件提交运行测试截图创建两个文件一起编译,然后运行。

2023-12-26 18:23:53 483 1

原创 Vim or VSCode、gcc测试、gdb测试、静态库的测试、共享库的测试

用gcc 进行预处理,编译,汇编,链接hello world程序,要求加一行打印自己学号姓名。生成main.o并与静态库进行链接,并生成link这个可执行文件进行调用静态库。提交预处理,编译,汇编,链接,运行过程截图,要全屏,包含自己的学号信息。gcc -g 生成main文件进行gdb测试(一定要生成,否则将出错)如果使用以下代码,则直接一步到位,同时完成四个步骤直接生成可执行文件。汇编阶段是把编译阶段生成的”.s”文件转成二进制目标代码。n(一直按n,即表示next下一执行,直至代码运行结束)

2023-12-26 17:24:55 1191 1

原创 Ubuntu下Openssl安装及简单测试

l(小写的L):-lssl 即是寻找/usr/local/openssl/lib目录下的 libssl.a 这个库,编译器会自动寻找 libssl.a或者libssl.so。1.openssl库的版本问题,请直接链到你需要的openssl库路径,比如直接/usr/local/ssl/lib,2.注意-lssl -lcrypto要写在-ldl -lpthread前面,这段必须要有。-I(大写的i):指定头文件的文件夹地址。-L :此选项是指定链接库的文件夹地址。

2023-12-20 14:26:03 802

原创 2023-2024-1 20232831《Linux内核原理与分析》第十三周作业

Return-to-libc attack test

2023-12-11 20:15:08 72

原创 2023-2024-1 20232831《Linux内核原理与分析》第十二周作业

本文主要介绍了使用 python 脚本监控 cpu,系统负载,内存信息,网络接口。对代码还不熟悉的同学可以多敲几遍代码,加深对代码的理解。如果对 Python 还不是太熟悉的同学,可以点击Python3 简明教程进行学习。在Linux系统监控的实战中,我深入了解了系统监控的基本原理和工具。通过学习,我掌握了一些关键的命令和工具,如CPU 监控 top、虚拟、内存监控 vmstat等等,还学习了使用vmstat和iostat等工具来监测系统的虚拟内存和磁盘I/O性能等等。

2023-12-08 21:56:32 81

原创 2023-2024-1 20232831《Linux内核原理与分析》第十一周作业

对操作系统安全的关注,实际上是对操作系统中信息安全的关注。信息安全的基本原则是CIA三元组(也成为安全原则三剑客)——机密性(Confidentiality)、完整性(Integrity)、可用性(Availability)。一个完整的信息安全保障体系,应该充分考虑到CIA三元组的基本原则。机密性(不可见):又称隐私性,是指数据不能被未授权的主体窃取,即避免恶意读操作。完整性(不可改):确保数据只被授权的主体进行授权的修改。即避免恶意写操作。可用性(可读):是指数据能够被授权主体正常访问。

2023-11-28 17:22:39 144

原创 2023-2024-1 20232831《Linux内核原理与分析》第十周作业

主流虚拟化技术有VMware的ESXi、开源项目Xen和KVM等,主要差别在于CPU的虚拟化、内存的虚拟化和I/O的虚拟化,以及调度管理实现有所不同。ESXi中,所有虚拟化功能都在内核中实现;Xen中,内核只实现CPU和内存虚拟化,I/O虚拟化与调度管理由主机上启动的第一个负责管理的虚拟机实现;KVM中,Linux内核实现CPU与内存虚拟化,I/O虚拟化由QEMU实现,调度管理通过Linux进程调度器实现,如下图所示。

2023-11-26 12:59:26 85 1

原创 2023-2024-1 20232831《Linux内核原理与分析》第九周作业

在本次实验中,我深入理解了进程调度时机,且跟踪分析了进程调度与进程切换的过程,加深了我对 Linux 内核调度机制的理解。

2023-11-16 21:18:58 93 1

原创 2023-2024-1 20232831《Linux内核原理与分析》第八周作业

本次实验内容为“Linux 内核如何装载和启动一个可执行程序”,其包含了编译链接、动态链接、exec*库函数及其系统调用等等内容。通过练习、调试和分析,我深入理解了可执行程序装载、运行时动态链接的过程,使用GDB跟踪sys_execve系统调用函数,也加深了我对Linux系统加载程序的理解。

2023-11-11 11:01:43 78 1

原创 2023-2024-1 20232831《Linux内核原理与分析》第七周作业

通过本次实验,进一步了解了Linux 内核创建一个新进程的过程,即fork系统调用函数的运行过程,懂得了为什么会出现”一次调用,两次运行“的情况,从而对Linux内核有了新的理解。

2023-11-03 22:08:40 86

原创 2023-2024-1 20232831《Linux内核原理与分析》第六周作业

首先,重新进入实验楼,与上周操作相同,重新编译内核后,进入menu界面下,进行test.c的编辑。// 获取当前进程的PID(使用getpid)asm volatile("mov $0x14, %%eax\n\t" // getpid 的ID为20// 获取当前进程的父进程的PID(使用getppid)asm volatile("mov $0x40, %%eax\n\t" // getppid 的ID为64return 0;

2023-10-28 17:38:46 83 1

原创 2023-2024-1 20232831《Linux内核原理与分析》第五周作业

本次实验通过两种方法——使用库函数 API 和内嵌汇编代码两种方法获取了进程的PID和父进程的PID(ppid)。库函数 API方法使用标准C库函数来调用系统调用,因为它封装了底层系统调用的细节,所以调用更加简单和高级。内嵌汇编方法通过内嵌汇编代码来手动执行系统调用,它通过程序员自行编写汇编代码,提供了对CPU指令的细粒度控制,更加复杂、困难一些。但两种方法都实现了相同的目标。

2023-10-18 23:06:04 101 1

原创 2023-2024-1 20232831《Linux内核原理与分析》第四周作业

1.阅读学习教材「庖丁解牛Linux 分析 」第4章2.教材深入学习关注豆列「Linux内核及安全」。3.学习蓝墨云班课中第四周视频「构造一个简单的Linux系统MenuOS?」,并完成实验楼上配套实验三。

2023-10-12 21:55:22 149

原创 2023-2024-1 20232831《Linux内核原理与分析》第三周作业

本次实验偏向于操作系统的相关内容,实现了一个自定义的Linux内核,并实现了时间片轮转下的多道程序运行。实验让我深层次的理解了Linux内核的多进程运行的相关原理,能够为以后的学习打下坚实的基础。该实验的时间片轮转可以避免死锁,提高操作系统资源的利用率等等,具有很多好处。以下便是具体的分析:时间片轮转(Time Sharing)是一种多道程序运行的调度策略,其主要作用如下:提高系统资源利用率:时间片轮转允许多个进程并发执行,使得系统资源(如CPU时间、内存等)得到更有效的利用。

2023-10-04 21:39:59 114 1

原创 2023-2024-1 20232831《Linux内核原理与分析》第二周作业

通过反编译成汇编语言的整个过程学习,能够知道更多关于计算机底层的运行逻辑。同时,X86和ARM两种不同的汇编语言的底层逻辑也稍有不同,通过对比学习了解了更多。总的来说,汇编还是相对复杂的部分,对了解计算机原理有非常大的帮助。

2023-09-23 23:30:51 245

原创 2023-2024-1 20232831《Linux内核原理与分析》第一周作业

linux 为何物linux 历史简介linux 重要人物linux 与 windows 的不同如何学习 linux。

2023-09-17 11:42:52 729 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除