自定义博客皮肤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 20212815《Linux内核原理与分析》第十二周作业

实验二:格式化字符串漏洞实验实验原理:格式化字符串漏洞是由像 printf(user_input) 这样的代码引起的,其中 user_input 是用户输入的数据,具有 Set-UID root 权限的这类程序在运行的时候,printf 语句将会变得非常危险,因为它可能会导致下面的结果:• 使得程序崩溃• 任意一块内存读取数据• 修改任意一块内存里的数据最后一种结果是非常危险的,因为它允许用户修改 set-UID root 程序内部变量的值,从而改变这些程序的行为实验过程1、在/home/sh

2021-12-08 14:47:25 169

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

实验一 缓冲区溢出漏洞实验实验原理:缓冲区溢出是指程序试图向缓冲区写入超出预分配固定长度数据的情况。这一漏洞可以被恶意用户利用来改变程序的流控制,甚至执行代码的任意片段。这一漏洞的出现是由于数据缓冲器和返回地址的暂时关闭,溢出会引起返回地址被重写。实验过程一、环境配置1、安装用于编译32位C程序的软件包sudo apt-get updatesudo apt-get install -y lib32z1 libc6-dev-i386 lib32readline6-devsudo apt-get

2021-12-03 20:46:58 1126

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

一、进程调度二、使用gdb跟踪分析schedule()函数qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img -s -Sgdbfile linux-3.18.6/vmlinux 加载符号表b scheduleb context_switchb pick_next_taskclistclists switch_to是context_switch中进行进程关键上下文切换的函数对Linux系统进程调度与进程

2021-11-22 09:11:11 130

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

实验1、gcc编译的四个阶段gcc -E hello.c -o hello.i // 预处理gcc -S hello.i -o hello.s // 编译gcc -c hello.s -o hello.o // 汇编gcc hello.o -o hello // 链接./hello // 执行2、ELF概述:ELF为可执行的和可链接的格式,是一个目标文件格式的标准,用于定义不同类型的对象文件中都有什么内容、以什么样的格式放这些内容三种类型:可重定位文件:.o文件,文件中保存代码和适

2021-11-14 12:46:23 402

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

进程描述1、在Linux内核中用一个数据结构struct task_struct来描述进程,其中包含了进程的状态(-1 就绪态;0 运行态;>0阻塞态),进程双向链表的管理,控制台tty,文件系统fs的描述,进程打开文件的文件描述符files,内存管理的描述mm,进程间通信的信号signal的描述等2、在Linux内核中,当进程是TASK_RUNNING状态时,它是可运行的,即就绪态,是否在运行取决于它有没有获得CPU的控制权,如果在CPU中实际执行了,就是运行态;如果在等待队列中就是就绪态进程

2021-11-06 12:49:51 159

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

实验过程1、将write加入到mentos命令中cd LinuxKernelrm -rf menugit clone git://github.com/mengning/menu.gitcd menuvim test.c2、设置断点分析系统调用过程问题在实验楼中输入git clone https://github.com/mengning/menu.git一直卡在克隆界面解决方法:将网址变成git clone git://github.com/mengning/menu.git

2021-10-30 18:13:53 88

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

一、系统调用选择write系统调用,write的系统调用号为4使用库函数API触发系统调用,write()的头文件为#include <unistd.h>;原型为ssize_t write(int fd,const void*buf,size_t count);fd是文件描述符,buf为需要写入的字符串,count是每次写入的字节数使用内嵌汇编代码触发系统调用两者的运行结果相同二、内嵌代码分析 __asm__ __volatile__( "movl %2,%%edx;\n

2021-10-24 12:47:50 63

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

一、Linux内核源码目录结构arch:与体系结构相关的子目录列表,存放了CPU结构的相关代码block:存放Linux存储体系中关于块设备管理的代码crypto:存放常见的加密算法的C语言代码Documentation:存放一些文档drivers:驱动目录,存放Linux内核支持的所有硬件设备的驱动源代码firmware:固件fs:文件系统,列出了Linux支持的各种文件系统的实现include:头文件目录,存放公共的头文件init:存放Linux内核启动时的初始化代码,start_ke

2021-10-16 19:11:54 95

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

一、实验过程1、根据链接搭建linux环境https://github.com/mengning/mykernel/tree/4b59d452b7812560151c5684ce9a07bcaddb31272、编写mykernal中mymain.c和myinterrupt.c的代码,并新建mypcb.hmypcb.h#define MAX_TASK_NUM 4#define KERNEL_STACK_SIZE 1024*2/* CPU-specific state of thi

2021-10-14 21:56:09 105

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

实验1、编写main.c代码并编译为汇编代码2、打开main.s文件查看汇编代码完整汇编代码如下: .file "main.c" .text .globl g .type g, @functiong:.LFB0: .cfi_startproc pushl %ebp .cfi_def_cfa_offset 8 .cfi_offset 5, -8 movl %esp, %ebp .cfi_def_cfa_register 5 movl 8(%ebp), %eax addl

2021-10-03 20:39:21 191

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

实验一1、Linux之父希望在自己电脑上安装一个类似Unix的系统,但Unix商业版本价格昂贵,于是他从Minix入手,开发Linux2、世界上大部分软件和服务都是运行在 Linux 之上的。3、Linux和Wwindows的区别Windows 没有的稳定的系统安全性和漏洞的快速修补多用户用户和用户组的规划相对较少的系统资源占用可定制裁剪,移植到嵌入式平台(如安卓设备)可选择的多种图形用户界面(如 GNOME,KDE)Linux 没有的特定的支持厂商足够的游戏娱乐支持度足够的专

2021-09-28 13:48:02 723

空空如也

空空如也

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

TA关注的人

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