自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2021-2022-1 20212810《Linux内核原理与分析》第十二周作业

Linux Capability探索实验一.实验要求1.感受到linux capability功能在访问控制上的优势2.掌握使用Capability达到遵守最小权限原则的目的3.分析linux中基于Capability访问控制的设计二.实验过程1.下载Libcap(准备内容)libcap 库能够使用户级别的程序与 capability 特性做交互,一些linux发行版不包括这个库,在环境中已经有 /usr/include/sys/capability.h 这个文件,为了避免老版本的影响,我们还

2021-12-08 20:56:53 540

原创 2021-2022-1 20212810 《Linux内核原理与分析》第十一周作业

竞态条件漏洞实验一.实验要求竞态条件是指多个线程同时访问或者操作同一块数据,运行的结果依赖于不同线程访问数据的顺序。如果一个拥有root权限的程序存在竞态条件漏洞的话,攻击者可以通过运行一个平行线程与漏洞程序竞争,以此改变该程序的行为。本实验中要求利用竞态条件漏洞获得root权限,除了攻击外,还要学习如何制定保护方案防御攻击。二.实验过程1.实验准备利用vulp.c中的竞态条件漏洞可以做很多事情。其中一种是利用漏洞在 /etc/passwd 和 /etc/shadow 后追加信息。这两个文件是u

2021-12-04 15:08:44 135

原创 2021-2022-1 20212810《Linux内核原理与分析》第九周作业

理解进程调度时机跟踪分析进程调度与进程切换的过程一.实验要求1.理解进程调度时机跟踪分析进程调度与进程切换的过程2.理解 Linux 系统中进程调度的时机,可以在内核代码中搜索 schedule()函数,看都是哪里调用了 schedule(),判断我们课程内容中的总结是否准确;3.使用 gdb 跟踪分析一个 schedule()函数 ,验证您对 Linux 系统进程调度与进程切换过程的理解二.实验步骤1.如图所示:进入实验楼虚拟机实验环境,打开Linuxkernel文件,打开menu,修改其中

2021-11-20 22:36:04 126

原创 2021-2022-1 20212810 《Linux内核原理与分析》第八周作业

Linux内核如何装载和启动一个可执行程序一.实验要求1.理解编译链接的过程和 ELF 可执行文件格式2.编程使用 exec*库函数加载一个可执行文件,动态链接分为可执行程序装载时动态链接和运行时动态链接,编程练习动态链接库的这两种使用方式3.使用 gdb 跟踪分析一个 execve 系统调用内核处理函数 sys_execve ,验证您对 Linux 系统加载可执行程序所需处理过程的理解4.特别关注新的可执行程序是从哪里开始执行的?为什么 execve 系统调用返回后新的可执行程序能顺利执行?对于

2021-11-14 15:20:30 163

原创 2021-2022-1 20212810《Linux内核原理与分析》第七周作业

实验六-分析Linux内核创建一个新进程的过程一.实验要求1.更新内核并增添fork命令2.跟踪分析进程创建的过程进程创建分析:fork代码分析dup_task_struct分析copy_thread分析copy_process分析二.实验步骤1.更新内核并增添fork命令:首先要删除原有的menu,在github上下载新版本menucd ~/LinuxKernelrm menu -rfgit clone https://github.com/mengning/menu.git

2021-11-06 18:02:11 152

原创 2021-2022-1 20212810《Linux内核原理与分析》第六周作业

一.实验要求1.使用 gdb 跟踪分析一个系统调用内核函数(上周选择的那一个系统调用),系统调用列表参见 torvalds/linux。推荐在实验楼 Linux 虚拟机环境下完成实验。2.根据本周所学知识分析系统调用的过程,从 system_call 开始到 iret 结束之间的整个过程,并画出简要准确的流程图二.实验步骤1.克隆menu:使用git clone https://github.com/mengning/menu.git下载menu代码cd LinuxKernelgit clone

2021-10-31 15:36:46 153

原创 2021-2022-1 20212810《Linux内核原理与分析》第五周作业

一.基础知识1. 用户态,内核态和中断计算机的硬件资源是有限的,为了减少有限资源的访问和使用冲突,CPU和操作系统必须提供一些机制对用户程序进行权限划分。现代的CPU一般都有几种不同的指令执行级别,就是什么样的程序执行什么样的指令是有权限的。内核态:在高的执行级别下,代码可以执行特权指令,访问任意的物理内存,这时CPU的执行级别对应的就是内核态,对所有的指令包括特权指令都可以执行。用户态:在用户态(低级别指令),代码能够掌控的范围会受限制。中断: 中断处理是从用户态进入内核态的主要方式,系统调

2021-10-24 17:22:12 64

原创 2021-2022-1 20212810《Linux内核原理与分析》第四周作业

跟踪分析 Linux 内核的启动过程一、构造一个简单的Linux系统MenuOS使用实验楼的虚拟机打开 shell,执行该命令执行后如图所示二、使用gdb跟踪调试Linux内核的方法1、使用 gdb 跟踪调试内核执行以下指令$ qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img -s -S关于-s和-S选项的说明:-S-S freeze CPU at startup (use ’c’ to sta

2021-10-16 21:12:49 73

原创 2021-2022-1 20212810《Linux内核原理与分析》第三周作业

​完成一个简单的时间片轮转多道程序内核代码一:实验过程1.执行仅含时钟中断的mykernel内核指令如下:cd ~/LinuxKernel/linux-3.9.4rm -rf mykernelpatch -p1 < ../mykernel_for_linux3.9.4sc.patchmake allnoconfigmakeqemu -kernel arch/x86/boot/bzImage结果如下:2.查看通过下述命令执行仅含时钟中断的mykernel内核mymain.c

2021-10-10 22:58:46 88

原创 2021-2022-1 20212810《Linux内核原理与分析》第二周作业

主要问题: 一开始用mac编译的内容如下,发现很多指令和资料上存在不同。比如bx lr都无法在传统指令上查到具体作用,后查阅资料发现,这是arm特殊的指令集。发现生成的汇编语言代码和具体的硬件有关,于是在云服务器上进行编译,终于得到和课程中相近的代码。实验一:反汇编一个简单的C程序实验步骤创建main.c,并编辑main.c文件,全部创建过程如图:用 gcc 将main.c编译成汇编代码,代码如下:由于main.s,源码繁琐,所以删除以点开头的,剩下则是纯汇编代...

2021-10-03 20:14:27 57

原创 2021-2022-1 20212810《Linux内核原理与分析》第一周作业

实验一Linux 系统简介Linux 就是一个操作系统,就像已经了解的 Windows(xp,7,8)和 Mac OS 。如图,这是操作系统在整个计算机系统中的角色。我们的 Linux 主要是系统调用和内核那两层。当然直观地看,我们使用的操作系统还包含一些在其上运行的应用程序,比如文本编辑器、浏览器、电子邮件等。操作系统始于二十世纪五十年代,当时的操作系统能运行批处理程序。批处理程序不需要用户的交互,它从文件或者穿孔卡片读取数据,然后输出到另外一个文件或者打印机。二十世纪六十年代初,

2021-09-26 23:35:18 199

空空如也

空空如也

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

TA关注的人

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