自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 (2024-2025-1)20242828-《Linux内核原理与分析》第十三周作业

漏洞本质: ShellShock 的本质是 Bash 在解析环境变量时未对函数定义进行严格的安全检查,导致恶意代码得以执行。成功攻击的条件系统中存在漏洞版本的 Bash。Set-UID 程序不当设计,允许攻击者利用权限提升。防御核心及时修复系统漏洞,升级 Bash。最小化 Set-UID 程序的数量和权限。加强环境变量的安全检查和传递限制。

2025-01-02 11:12:22 804

原创 (2024-2025-1)20242828-《Linux内核原理与分析》第十二周作业

Set-UID是Unix系统中的一个重要安全机制,允许程序在执行时以拥有者的权限运行。修改文件权限:将passwd程序拷贝到/tmp/目录下后,原始目录中的suid位被设置,导致复制的文件失去了修改密码的权限。对特定命令的影响:将chsh、su和sudo等命令拷贝到用户目录下后,这些复制的程序不再具有root权限。/bin/bash的保护机制:实验中观察到/bin/bash具有某种内在的保护机制,可以阻止Set-UID机制的滥用。

2025-01-02 11:11:48 687

原创 2024-2025-1 20242828-《Linux内核原理与分析》第十一周作业

一个完整的信息安全保障体系,应该充分考虑到CIA三元组的基本原则(1)机密性:又称隐私性(Privacy),是指数据不能被未授权的主体窃取,即避免恶意读操作。(2)完整性:是指数据不能被未授权的主体篡改,即避免恶意写操作。(3)可用性:是指数据能够被授权主体正常访问。用户和权限管理:Linux系统通过用户和组的概念来管理访问权限。使用useradd和groupadd命令创建用户和组,使用chmod和chown命令设置文件和目录的权限和所有者。

2025-01-02 11:11:16 817

原创 2024-2025-1 20242828-《Linux内核原理与分析》第十周

​ 主流虚拟化技术有VMware的ESXi、开源项目Xen和KVM等,主要差别在于CPU的虚拟化、内存的虚拟化和I/O的虚拟化,以及调度管理实现有所不同。ESXi中,所有虚拟化功能都在内核中实现;Xen中,内核只实现CPU和内存虚拟化,I/O虚拟化与调度管理由主机上启动的第一个负责管理的虚拟机实现;KVM中,Linux内核实现CPU与内存虚拟化,I/O虚拟化由QEMU实现,调度管理通过Linux进程调度器实现。

2025-01-02 11:10:31 582

原创 20242828-《Linux内核原理与分析》第九周作业

Linux 的进程调度是多任务操作系统的核心功能,其调度时机由内核态的各种事件驱动,主要包括时间片用尽、进程状态变化以及系统资源条件变化等。Linux 通常采用 CFS(完全公平调度器) 和特定场景下的实时调度策略来实现这些调度行为。

2024-11-20 10:21:12 729

原创 2024-2025-1 20242828《Linux内核原理与分析》第八周作业

在Linux中,exec函数族的作用是根据指定的文件名找到可执行文件,并用它来替换调用进程的内容。这意味着当前进程的可执行文件被完全替换为新的可执行文件。可执行文件的开始执行起点是根据执行execve系统调用时压入内核堆栈的EIP寄存器的值来确定的。尽管进程的可执行文件已经被替换,但实际开始执行新的可执行文件中的指令需要等到执行新程序定义的入口地址位置,通常是0x8048xx。通过修改内核堆栈中EIP寄存器的值,将其设置为新程序的起点,使得execve系统调用返回到用户态时可以开始执行新程序。

2024-11-12 21:58:39 914

原创 2024-2025-1 20242828 《Linux内核原理与分析》第七周作业

阅读理解 task_struct 数据结构 https://github.com/torvalds/linux/blob/v3.18-rc6/include/linux/sched.h#L1235;分析 fork 函数对应的内核处理过程 sys_clone,理解创建一个新进程如何创建和修改 task_struct 数据结构;使用 gdb 跟踪分析一个 fork 系统调用内核处理函数 sys_clone ,验证您对 Linux 系统创建一个新进程的理解,推荐在实验楼 Linux 虚拟机环境下完成实验。

2024-11-08 21:10:53 452

原创 2024-2025-1 20242828-《Linux内核原理与分析》第六周作业

1.进入LinuxKernel目录下,输入如下命令,先删除之前的menu目录,再下载更新了版本之后的menu目录;2.进入menu目录之后,生成根目录系统,使用make rootf进入MenuOS,并使用help查看现有的命令3.将上周作业的代码getppid()和getppid_asm()函数加入到test.c中,并且再main函数中添加4.再次使用make rootfs进入MenuOS,并使用help查看现有的命令。

2024-10-30 13:38:37 222

原创 20242828-《Linux内核原理分析》第五周作业

系统调用是操作系统为用户态程序提供的接口,用于与内核进行交互。系统调用号的传递每个系统调用都有唯一的编号,用户态程序通过将该编号存入特定寄存器(如eax)来告诉内核它希望执行的操作。例如,在本文的汇编代码中,64对应的是getppid()系统调用。切换到内核态用户态程序无法直接访问内核功能,需要通过特定的机制切换到内核态。在 x86 架构中,int 0x80指令就是触发从用户态到内核态切换的方式。这个中断会导致 CPU 执行特定的中断服务例程,进入内核态执行相应的系统调用。参数和返回值的传递。

2024-10-22 22:08:26 938

原创 20242828《Linux内核原理与分析》第四周作业

是 Linux 内核的入口点之一,位于中。它的主要任务是初始化系统的硬件和数据结构,最终启动init进程。可以通过设置断点来观察内核启动的早期阶段。rest_init函数,负责启动系统中的两个最核心的进程:1、idle这是内核调度器的初始进程,专门在系统空闲时运行。在 SMP 系统中,它会为每个 CPU 创建一个idle进程。cpu_idle是这个进程的主要函数,它让 CPU 进入低功耗状态,等待调度新任务。2、init函数在此处用于创建init进程。init。

2024-10-17 19:11:19 310

原创 20242828《Linux内核原理与分析》第三周作业

时间片轮转(Time Slice Round-Robin) 是 Linux 内核中最简单和常见的调度算法之一,通常用于实时系统或公平调度中的一部分。其核心思想是:每个可运行的进程都会被分配一个固定的时间片(Time Slice),即该进程可以连续执行的最大时间量。时间片结束后,调度器强制暂停该进程,并将 CPU 分配给下一个就绪队列中的进程,从而实现多任务处理和公平性。它确保了多任务系统中每个进程都能公平地分配 CPU 资源,但同时面临时间片长度的权衡问题。

2024-10-13 15:27:36 390

原创 20242828-第二周作业-从汇编视角解析函数调用中的堆栈运作

通过对汇编代码的深入分析,我们可以看到,堆栈在函数调用过程中起到了关键的作用。每当发生函数调用时,堆栈会保存当前函数的执行状态(如基址指针ebp和返回地址),并为被调用函数分配空间。函数调用结束后,通过恢复堆栈中的数据,程序能够准确地回到上一次的执行状态。堆栈不仅用于函数调用和返回,它还用于参数传递和局部变量的存储。计算机的工作可以被理解为:通过指令和堆栈的相互作用来管理程序的执行流程,确保不同函数之间的信息能够无缝地传递和恢复。

2024-09-28 23:04:24 881 1

空空如也

空空如也

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

TA关注的人

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