- 博客(11)
- 收藏
- 关注
原创 2021-2022-1 20212823 《Linux内核原理与分析》第十二周作业
缓冲区溢出漏洞实验一、实验介绍缓冲区溢出是指程序试图向缓冲区写入超出预分配固定长度数据的情况。这一漏洞可以被恶意用户利用来改变程序的流控制,甚至执行代码的任意片段。这一漏洞的出现是由于数据缓冲器和返回地址的暂时关闭,溢出会引起返回地址被重写。(1)环境实验楼提供的是 64 位 Ubuntu linux,而本次实验为了方便观察汇编语句,我们需要在 32 位环境下作操作,因此实验之前需要做一些准备。sudo apt-get updatesudo apt-get install -y lib32z1
2021-12-08 15:16:51 517
原创 2021-2022-1 20212823 《Linux内核原理与分析》第十一周作业
Kali渗透测试:服务器攻击实战实验一 Kali实验环境介绍与使用一、kali简介Kali Linux 是一个基于 Debian 的用来进行渗透测试和安全审计的 Linux 操作系统,为了支持安全审计和渗透测试的一系列功能,Kali Linux 进行了定制化,包括内核,网络服务和用户都进行了特殊的设置。Kali 系统内预装了很多安全相关的工具,例如非常有名的 Nmap 端口扫描器、John the Ripper 密码破解器、Metasploit Framework 远程攻击框架等。二、实验环境(1
2021-12-05 12:58:01 910
原创 2021-2022-1 20212823《Linux内核原理与分析》第九周作业
实验八一、Linux 系统中进程调度的时机1、进程调度的时机:中断处理过程(时钟中断、I/O中断、系统调用和异常)中或返回用户态根据need_resched标记调用。内核线程直接调用进行进程切换,也可以在中断处理过程中进行调度,内核线程可以主动调度,也可以被动调度。用户态进程无法实现主动调度,仅能通过陷入内核态后的某个时机点进行调度,在中断处理过程中调度。2、schedule()函数schedule()函数开始,禁用内核抢占并初始化一些局部变量,此时,schedule()检查运行队列中剩余的可
2021-11-19 23:18:35 98
原创 2021-2022-1 20212823《Linux内核原理与分析》第八周作业
实验七 Linux 内核如何装载和启动一个可执行程一、编译链接的过程和 ELF 可执行文件格式(1)编译链接过程(2)ELF在Windows下可执行文件的格式一般为PE,而在Linux下可执行文件的格式为ELF。ELF文件的全称是Executable and Linkable Format,意为可执行的、可连接的格式。ELF文件分为三类:1.可重定位(relocabtable)文件,保存着代码和适当的数据,用来和其他的object文件一起来创建一个可执行文件或者是一个共享文件。2.可执行(ex
2021-11-13 18:40:36 724
原创 2021-2022-1 20212823《Linux内核原理与分析》第七周作业
实验六实验过程1.更新menucd ~/LinuxKernelrm menu -rfgit clone https://github.com/mengning/menu.git2.向MenuOS中增加fork命令,使用help查看现有命令cd menu mv test_fork.c test.c文件make rootfs MenuOS>>help MenuOS>>fork 3.在gdb中调试shell1中cd LinuxKernel qem
2021-11-06 20:10:31 69
原创 2021-2022-1 20212823《Linux内核原理与分析》第六周作业
实验五 分析system_call中断处理过程一.给MenuOS增加命令cd LinuxKernelrm menu -rf git clone https://github.com/mengning/menu.git cd menu make rootfs在test.c文件中增加Hello函数和在main函数中增加MenuConfig语句。二.使用gdb跟踪系统调用内核函数cd ~/LinuxKernelqemu -kernel linux-3.18.6/arch/x86/b
2021-10-29 22:54:01 109
原创 2021-2022-1 20212823《Linux内核原理与分析》第五周作业
实验四一.要求选择一个系统调用(13 号系统调用 time 除外),系统调用列表参见 torvalds/linux。参考视频中的方式使用库函数 API 和 C 代码中嵌入汇编代码两种方式使用同一个系统调用二.实验内容1.选取API2.rename系统调用的API的使用创建renametest.c文件运行结果3.rename系统调用的C代码内嵌汇编使用创建一个renametest_asm.c文件编译运行遇到的问题由于实验楼的环境是64位,所以编译时不支持“movl”,所
2021-10-24 14:50:52 51
原创 2021-2022-1 20212823《Linux内核原理与分析》第四周作业
一.进入menu程序cd ~/LinuxKernel/qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img支持三个命令 help、version 和 quit。二.使用 gdb 跟踪调试内核$ qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img -s -S关于-s和-S选项的说明:# 1. -S# -S freeze CPU
2021-10-16 19:41:49 51
原创 2021-2022-1 20212823《Linux内核原理与分析》第三周作业
实验一g: pushl %ebp//ebp入栈 movl %esp, %ebp//ebp=esp,生成新的堆栈空间 movl 8(%ebp), %eax//将变址寻址ebp+8所指向内存的值存入eax addl $2823, %eax//将eax的值加2823 popl %ebp//ebp出栈,esp减去4,指向上一个位置 ret //返回,继续执行下一条指令f: pushl %ebp//ebp压栈,esp指向下一个位置 movl %esp, %ebp//将ebp指向esp的
2021-10-10 16:10:49 86
原创 2021-2022-1 20212823《Linux内核原理与分析》第二周作业
一.环境变量与查找/etc/bashrc和/etc/profile存放的是shell变量和环境变量echo $PATH 查看环境变量gedit xxx.c 生成c语言文件gcc -o yyy xxx.c 生成yyy可执行文件echo “PATH=$PATH:/home/shiyanlou/mybin”>> .zshrc 添加环境变量到zshrc中unset mypath 删除mypath变量source .zshrc或者. (空格...
2021-10-03 23:47:01 64
原创 2021-2022-1 20212823《Linux内核原理与分析》第一周作业
linux基础一.常用指令touch xxx 创建名为xxx的文件cd /etc/ 进入etc目录pwd 查看当前目录touch xxx{1…10}.txt 创建名字为xxx1-10的多个文件man name 调用手册whoami 查看当前用户su -l user 可以切换到user用户sudo adduser xxx 添加用户xxxgroups xxx 查看xxx属于的用户组cat /etc/group (| sort) (| gre
2021-09-28 11:05:43 135
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人