摘要: 内核编译与系统调用 ================== 内核编译与系统调用实验,终于在自己虚拟机上编译成功了。 若再次编译内核,并在prink函数打印时提高打印级别,即可使其打印到屏幕 阅读全文
posted @ 2019-12-19 16:53 乔延松20199316 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 缓冲区溢出漏洞实验 ===================== 一、简介 缓冲区溢出是指程序试图向缓冲区写入超出预分配固定长度数据的情况。这一漏洞可以被恶意用户利用来改变程序的流控制,甚至执行代码的任意片段。这一漏洞的出现是由于数据缓冲器和返回地址的暂时关闭,溢出会引起返回地址被重写。 二、实验准备 阅读全文
posted @ 2019-12-04 11:25 乔延松20199316 阅读(175) 评论(0) 推荐(0) 编辑
摘要: ShellShock 攻击实验 ============================ 一、实验简介 2014年9月24日,Bash中发现了一个严重漏洞shellshock,该漏洞可用于许多系统,并且既可以远程也可以在本地触发。在本实验中,学生需要亲手重现攻击来理解该漏洞,并回答一些问题。 什么是 阅读全文
posted @ 2019-11-27 11:01 乔延松20199316 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 进程的切换和系统的一般执行过程 一、课本内容 ==================== 进行进程调度的时机 Linux内核通过schedule函数实现进程调度,schedule函数在运行队列中找到一个进程,把CPU分配给它 调用schedule函数一次就是调度一次,调用schedule函数的时候就是 阅读全文
posted @ 2019-11-17 15:59 乔延松20199316 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 一、实验过程 首先更新下menu内核 查看test.c文件时可以看到新增加了exec系统调用 直接e hello.c切换到hello.c 查看Makefile,并启动内核验证execv函数 接着使用gdb跟踪汇编并设置断点运行到函数sys_execve 最后,因为new_ip是返回到用户态的第一条指 阅读全文
posted @ 2019-11-10 15:28 乔延松20199316 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 分析Linux内核创建一个新进程的过程 ============================ Linux中创建进程一共有三个函数: ~~~ 1. fork,创建子进程 2. vfork,与fork类似,但是父子进程共享地址空间,而且子进程先于父进程运行。 3. clone,主要用于创建线程 ~~ 阅读全文
posted @ 2019-11-03 15:07 乔延松20199316 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 分析system_call中断处理过程 ========================== 一、先在实验楼的虚拟机中MenuOs增加utsname和utsname asm指令。 1、克隆最新新版本的menu,之后进入menu 2、进入test.c,完成之后make rootfs,使系统自动编译自动 阅读全文
posted @ 2019-10-26 15:03 乔延松20199316 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 视频学习 ============================ 一、用户态、内核态和中断 内核态:处于高的执行级别下,代码可以执行特权指令,访问任意的物理地址,这时的CPU就对应内核态 用户态:处于低的执行级别下,代码只能在级别允许的特定范围内活动。在日常操作下,执行系统调用的方式是通过库函数, 阅读全文
posted @ 2019-10-20 17:05 乔延松20199316 阅读(226) 评论(1) 推荐(0) 编辑
摘要: 构造一个简单的Linux内核 ============================ 如何构建一个Linux系统 在实验楼的虚拟机中,两个简单的命令就可以把linux系统和简单的文件系统运行起来。 ~~~ cd LinuxKernel/ qemu kernel linux 3.18.6/arch/ 阅读全文
posted @ 2019-10-05 23:56 乔延松20199316 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 操作系统是如何工作的 ==================== (一)计算机的三大法宝 存储程序计算机 函数调用堆栈机制 中断机制 (二)堆栈 (1)堆栈相关寄存器 ESP:堆栈指针 EBP:基址指针,在c语言中用作记录当前函数调用基址。 对于x86体系结构来讲,堆栈空间是从高地址向低地址增长的。 阅读全文
posted @ 2019-09-29 18:28 乔延松20199316 阅读(302) 评论(0) 推荐(0) 编辑