- 博客(11)
- 收藏
- 关注
原创 2021-2022-1 20212809 格式化字符串漏洞实验
用户需要输入一段数据,数据保存在 user_input 数组中,程序会使用 printf 函数打印数据内容,并且该程序以 root 权限运行。更加可喜的是,这个程序存在一个格式化漏洞。让我们来看看利用这些漏洞可以搞些什么破坏。程序说明:程序内存中存在两个秘密值,我们想要知道这两个值,但发现无法通过读二进制代码的方式来获取它们(实验中为了简单起见,硬编码这些秘密值为 0x44 和 0x55)。尽管我们不知道它们的值,但要得到它们的内存地址倒不是特别困难,因为对大多数系统而言,每次运行程序,这些内存..
2021-12-12 12:54:21
1040
2
原创 kali渗透测试:【实验2】一次简单的渗透测试实战
启动 Kali 容器并进入到 bash 界面里,执行 ping 操作验证网络联通性:# 启动并进入 Kali 容器里的 bashdocker run -ti --network host 3f457 bash# 在 Kali 容器中测试虚拟网络连接,使用 Ctrl-C 退出 ping:ping target在 Kali 容器的 bash 界面里运行以下命令,注意 Nmap 的参数使用:-p:指定扫描的端口范围-T4:设定 nmap 扫描的时间策略,数字为 0-5,越大越快。扫描的越慢则越
2021-12-05 19:22:47
4672
原创 2021-2022-1 20212809《Linux内核原理与分析》第九周作业
进程调度时机中断处理过程(包括时钟中断、I/O中断、系统调用和异常)中,直接调用schedule(),或者返回用户态时根据need_resched标记调用schedule();内核线程可以直接调用schedule()进行进程切换,也可以在中断处理过程中进行调度,也就是说内核线程作为一类的特殊的进程可以主动调度,也可以被动调度;用户态进程无法实现主动调度,仅能通过陷入内核态后的某个时机点进行调度,即在中断处理过程中进行调度。schedule()函数schedule()函数原型位于linux-3.
2021-11-21 17:39:07
178
原创 2021-2022-1 20212809《Linux内核原理与分析》第八周作业
Linux内核如何装载和启动一个可执行程序:分析exec*函数对应的系统调用处理过程可执行程序工作原理ELF目标文件格式ELF (Executable and Linkable Format)即可执行的和可链接的格式,是一个目标文件格式的标准。ELF格式的文件用于存储Linux程序。ELF是一种对象文件的格式,用于定义不同类型的对象文件中都有什么内容、以什么样的格式放这些内容。ELF首部会描绘整个文件的组织结构,它还包括很多节(sections, 是在ELF文件里用以装载内容数据的最小容器),这些节
2021-11-14 15:20:02
532
原创 2021-2022-1 20212809《Linux内核原理与分析》第七周作业
操作系统内核三大功能:操作系统内核三大功能分别是进程管理,内存管理,文件系统。其中最核心的是进程管理,而pid是系统区别进程的编号。fork函数复制一个PCB task_struct给新进程分配一个新的内核堆栈 ti = alloc_thread_info_node(tsk, node); tsk->stack = ti; setup_thread_stack(tsk, orig); //这里只是复制thread_info,而非复制内核堆栈
2021-11-07 10:07:35
121
原创 2021-2022-1 20212809《Linux内核原理与分析》第六周作业
给MenuOS增加命令首先进入LinuxKernel 文件夹,删除menu目录,然后git clone克隆一个新版本的menu,新版本的menu目录中已经添加了time 和time-asm的系统调用,进入menu之后,运行make rootfs脚本自动编译生成根目录系统。运行make rootfs时要进入menu目录下执行当make rootfs成功后,输入help命令可以看到新增的两个系统调用。增加在上周实验中实现的getpid。在test.c中加入getpid(),然后使用MenuConfig
2021-10-30 10:42:31
234
原创 2021-2022-1 20212809《Linux内核原理与分析》第五周作业
基础知识1、通过库函数的方式进行系统调用,库函数用来把系统调用给封装起来。2、CPU有四种不同的执行级别:0、1、2、3,数字越小,特权越高。Linux操作系统中采用了0和3两个特权级别,分别对应内核态和用户态。3、宏观上Linux操作系统的体系架构分为:用户态和内核态。区分内核态和用户态的方法就是CS:EIP的指向范围。内核态(高指令执行级别):对所有的指令包括特权指令都可以执行,CS:EIP的值可以是任意地址用户态(低级别指令):对于32位的4GB进程地址空间,只能访问0x0000000
2021-10-24 20:09:57
1853
原创 2021-2022-1 20212809《Linux内核原理与分析》第四周作业
MenuOS的构造基础知识操作系统的两把宝剑:①中断上下文的切换:保存现场和恢复现场;②进程上下文的切换。Linux内核以A.B.C.D方式命名:A和B变得无关紧要,C是内核的真实版本,D是安全补丁和bug修复。Linux内核源码的目录结构:arch:与体系结构相关的子目录列表。存放了许多CPU体系结构的相关代码,使Linux内核支持不同的CPU和体系结构。block:存放Linux存储体系中关于块设备管理的代码。crypto:存放常见的加密算法的C语言代码,如crc32、md5等。Do
2021-10-17 13:34:48
181
原创 2021-2022-1 20212809《Linux内核原理与分析》第三周作业
操作系统是如何工作的基础知识1.计算机的三个法宝:存储程序计算机、函数调用堆栈机制、中断。2.什么是堆栈?堆栈是c语言程序运行时必须使用的记录函数调用路径和参数存储的空间。其具体作用有:记录函数调用框架、传递函数参数、保存返回值的地址、提供函数内部局部变量的存储空间等。3.中断机制:当一个中断信号发生时,CPU将当前所执行程序的EIP和ESP压入内核堆栈,然后使EIP指向中断处理程序入口,保存现场之后执行其他程序,执行完再恢复现场,恢复EIP和ESP,继续执行中断前的程序。内嵌汇编常用限定符:
2021-10-09 19:58:25
112
原创 2021-2022-1 20212809《Linux内核原理与分析》第二周作业
实验一 反汇编一个简单的C程序寄存器通用寄存器AX:累加器BX:基地址寄存器CX:计数寄存器DX:数据寄存器BP:堆栈基址针SI、DI:变址寄存器SP:堆栈顶指针段寄存器CS:代码段寄存器,指向包含程序指令的段。SS:栈段寄存器,指向包含当前程序栈的段。DS:数据段寄存器,指向包含静态数据或者全局数据段。ES:附加寄存器,指向附加数据段。寻址方式movl %eax,%edx edx=eax 寄存器寻址movl $0x123,%edx edx=0x123 立即寻址
2021-10-02 22:16:53
137
原创 2021-2022-1 20212809-《Linux内核原理与分析》第一周作业
《Linux内核原理与分析》第一周作业Linux 基础入门实验一 Linux 系统简介实验 2 基本概念及操作实验 3用户及文件权限管理who 命令其它常用参数文件权限遇到问题:实验4 Linux 目录结构及文件基本操作实验5 环境变量与文件查找环境变量变量修改与搜索相关的命令常用的有 whereis,which,find 和 locate。与时间相关的命令参数:实验6 文件打包与解压缩zip 压缩打包程序实验7 文件系统操作与磁盘管理实验8 Linux下的帮助命令实验9 Linux任务计划crontab
2021-09-28 12:32:29
686
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人