- 博客(11)
- 收藏
- 关注
原创 2021-2022-1 20212804《Linux内核原理与分析》第十二周作业
Linux Capability探索实验一、介绍Linux内核从2.1版本开始,就开始支持Capabilities的安全机制。Capabilities安全机制提出的目的在于实现系统特权操作的更加细粒度的访问控制,使用户能够根据实际的安全需求来控制root进程拥有的权限范围,从而取消root进程多余权限带来的安全隐患。在Capabilities机制中,所有权限被分割成比较具体和细小的权限(并将分割出来的每种细小权限称为权能),每种权能代表着root用户进行某种特权操作的权限;系统中只有进程和可执行文件具有
2021-12-04 10:46:22
3427
原创 2021-2022-1 20212804《Linux内核原理与分析》第十一周作业
竞态条件漏洞实验一、实验简介竞态条件是指多个线程同时访问或者操作同一块数据,运行的结果依赖于不同线程访问数据的顺序。如果一个拥有root权限的程序存在竞态条件漏洞的话,攻击者可以通过运行一个平行线程与漏洞程序竞争,以此改变该程序的行为。1、利用vulp.c中的竞态条件漏洞可以做很多事情。其中一种是利用漏洞在 /etc/passwd 和 /etc/shadow 后追加信息。这两个文件是unix做用户授权用的,攻击者有可能利用这点创建用户,甚至是超级用户。2、可以通过调用c函数symlink()创建连接
2021-12-01 16:18:31
308
原创 2021-2022-1 20212804《Linux内核原理与分析》第九周作业
Linux系统架构和执行过程概览一、知识积累1、硬中断和软中断硬中断:cpu的两根引脚(可屏蔽和不可屏蔽中断)软中断:故障:有问题但可以恢复到当前指令退出:不可恢复的严重故障陷阱:程序主动产生的异常2、调用schedule()的两种方法:进程主动调用schedule,如进程调用阻塞的系统调用等待外设或主动睡眠等,最终都会在内核中调用到schedule函数松散调用,内核代码中可以随时调用schedule()使当前内核路径(中断处理程序或内核线程)让出CPU;也会根据need_resc
2021-11-20 00:15:00
328
原创 2021-2022-1 20212804《Linux内核原理与分析》第八周作业
Linux内核的实质和Linux系统的一般执行过程一、知识积累ELF文件格式ELF (Executable and Linkable Format)即可执行的和可链接的格式,是一个目标文件格式的标准。ELF格式的文件用于存储Linux程序。ELF是一种对象文件的格式,用于定义不同类型的对象文件中都有什么内容、以什么样的格式放这些内容。ELF首部会描绘整个文件的组织结构,它还包括很多节(sections,是在ELF文件里用以装载内容数据的最小容器),这些节有些是系统定义好的,有些是用户在文件中通过。se
2021-11-08 23:26:25
772
原创 2021-2022-1 20212804《Linux内核原理与分析》第六周作业
扒开系统调用的三层皮(下)一、知识积累二、实验使用 gdb 跟踪分析一个系统调用内核函数1、给MenuxOS增加命令cd ~/LinuxKernel# 强制删除当前menu目录rm -rf menu# 重新克隆一个新的menugit clone https://github.com/mengning/menu.gitcd menu# 自动编译并自动生成根文件系统make rootfs在test.c文件中增加Hello函数和在main函数中增加MenuConfig语句,编译并执行
2021-10-26 19:55:55
211
原创 2021-2022-1 20212804《Linux内核原理与分析》第五周作业
系统调用的三层机制(上)一、知识积累1、内核态:高执行级别下,代码可以执行特权指令,访问任意物理地址,CPU执行级别就对应内核态。用户态:低级别指令,只能在对应级别允许的范围内活动。中断处理是从用户态进入内核态主要的方式2、寄存器上下文从用户态切换到内核态时,必须保存用户态的寄存器上下文。中断/int指令会在堆栈上保存一些寄存器的值,如:用户态栈顶地址、当时的状态字、当时的CS:eip的值。3、应用编程接口API和系统调用是不同的API只是一个函数定义。系统调用通过软中断向内核发出明
2021-10-18 22:24:08
144
原创 2021-2022-1 20212804《Linux内核原理与分析》第四周作业
构造一个简单的Linux系统MenuOS基础知识学习计算机三大法宝:存储程序计算机、函数调用堆栈、中断操作系统两大宝剑:中断上下文、进程上下文实验楼实验使用 gdb 跟踪调试内核从 start_kernel 到 init 进程启动1、使用实验楼的虚拟机打开 shellcd ~/LinuxKernel/qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img2、使用 gdb 跟踪调试内核$ qemu -kern
2021-10-12 13:32:13
235
原创 2021-2022-1 20212804《Linux内核原理与分析》第三周作业
一、堆栈堆栈是C语言程序运行时必须的一个记录调用路径和参数的空间。它是一个特定的存储区或寄存器,它的一端是固定的,另一端是浮动的 。堆这个存储区存入的数据,是一种特殊的数据结构。所有的数据存入或取出,只能在浮动的一端(称栈顶)进行,严格按照“先进后出”的原则存取,位于其中间的元素,必须在其栈上部(后进栈者)诸元素逐个移出后才能取出。函数调用框架(关键)传递参数保存返回地址提供局部变量空间C语言编译器对堆栈的使用有一套的规则堆栈相关的寄存器esp ,堆栈指针stack pointere
2021-10-09 19:10:41
165
原创 2021-2022-1 20212804《Linux内核原理与分析》第二周作业
一、Linux下OpenSSL的安装与使用OpenSSL简介OpenSSL是一个SSL协议的开源实现,采用C语言作为开发语言,具备了跨平台的能力,支持Unix/Linux、Windows、Mac OS等多种平台。整个软件包大概可以分成三个主要的功能部分:密码算法库它是一个强大完整的密码算法库,它是OpenSSL的基础部分,也是很值得一般密码安全技术人员研究的部分,它实现了目前大部分主流的密码算法和标准。主要包括对称算法、非对称算法、散列算法、数字签名和认证、X509数字证书标准、PKCS12、P
2021-10-03 14:38:28
156
原创 2021-2022-1 20212804《Linux内核原理与分析》第一周作业
一、Linux系统简介本节主要介绍了Linux的历史,Linux 就是一个操作系统,主要是系统调用和内核两层。二、基本概念及操作本节介绍了linux基本概念及操作,熟悉了桌面环境。终端的概念通常我们在使用 Linux 时,并不是直接与系统打交道,而是通过一个叫做 Shell 的中间程序来完成的,在图形界面下为了实现让我们在一个窗口中完成用户输入和显示输出,Linux 系统还提供了一个叫做终端模拟器的程序(Terminal)。重要快捷键:命令 作用 Tab ..
2021-09-28 12:06:58
120
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人