roc课程
文章平均质量分 58
linux内核代码学习
iuui11
这个作者很懒,什么都没留下…
展开
-
2021-2022-1 20212824《Linux内核原理与分析》第十二周作业
前置知识格式化字符串漏洞是由像 printf(user_input) 这样的代码引起的,其中 user_input 是用户输入的数据,具有 Set-UID root 权限的这类程序在运行的时候,printf 语句将会变得非常危险,因为它可能会导致下面的结果:使得程序崩溃任意一块内存读取数据修改任意一块内存里的数据格式化字符串printf ("The magic number is: %d", 1911);如上 C 语言代码运行结果为 The magic number is: 1911可以原创 2021-12-08 14:28:57 · 722 阅读 · 0 评论 -
2020-2021-1 20212824《Linux内核原理与分析》第十一周作业
shellcode缓冲区攻击初始设置关闭内存地址随机化在很多linux系统中,是用地址空间随机化来随机heap和stack的。这样的话,就不能够猜测内存地址。也就不能进行缓冲区攻击。所以第一步要先关闭地址空间随机化。sudo sysctl -w kernel.randomize_va_space=0修改bash为了进一步防范缓冲区溢出攻击及其它利用 shell 程序的攻击,许多shell程序在被调用时自动放弃它们的特权。因此,即使你能欺骗一个 Set-UID 程序调用一个 shell,也不能在这原创 2021-12-04 12:42:53 · 731 阅读 · 0 评论 -
2020-2021-1 20212824《Linux内核原理与分析》第九周作业
操作系统概览操作系统内核进程管理、进程调度、进程间通讯机制,内存管理,中断异常处理,文件系统,I/O系统其他程序函数库,shell程序操作系统的目的与硬件交互,管理所有的硬件资源为用户程序提供一个执行环境linux一般执行过程最一般的情况 :正在运行的用户态进程x切换到运行用户态进行yx正在运行发生中断-cpu将当前的进程上下文压入到进程x的内核堆栈SAVE_ALL 保存现场中断处理过程或中断返回之前调用schdule(),其中的switch_t原创 2021-11-17 21:15:30 · 479 阅读 · 0 评论 -
记录一下代码读者优先
/** 多线程,读者优先*/ #include "stdio.h"#include <stdlib.h>#include <pthread.h>#include<semaphore.h> #define N_WRITER 30 //写者数目#define N_READER 5 //读者数目#define W_SLEEP 1 //控制写频率#define R_SLEEP 1 //控制读频率 pthread_t wid[N_WRITE原创 2021-11-10 20:31:34 · 241 阅读 · 0 评论 -
2020-2021-1 20212824《Linux内核原理与分析》第八周作业
动态库的依赖关系会形成一个树形结构动态链接器负责解析当前文件,看依赖哪些动态链接库动态链接库的装载过程是一个图的广度遍历过程动态链接不是由内核完成,是由动态链接器完成的。动态链接器是libc的一部分正常的系统调用都是陷入到内核态然后返回到用户态当出现elf文件的时候,观察者就能自动执行load_elf_binary -> start_threadshell本身不限制命令行的参数的个数,命令行参数的个数受限于命令本身shell会调用execve将命令行参数和环境参数传递给可执行程序的m原创 2021-11-09 21:12:50 · 685 阅读 · 0 评论 -
2020-2021-1 20212824《Linux内核原理与分析》第七周作业
fork.c#include<stdio.h>#include<stdlib.h>#include<unistd.h>int main(){ int pid; /* pid 在父进程和子进程中各返回一次 * 所以else if 和 else 的内容都会被执行 * 在子进程中fork 的返回值是0 * 在父进程中fork 的返回指是子进程的id * */原创 2021-11-02 21:09:02 · 202 阅读 · 0 评论 -
2020-2021-1 20212824《Linux内核原理与分析》第六周作业
删除并clone新的MenuOsrm -rf menugit clone https://github.com/mengning/menu.gitmake rootfs新增的命令如何新增命令原创 2021-10-26 19:31:43 · 74 阅读 · 0 评论 -
2020-2021-1 20212824《Linux内核原理与分析》第五周作业
前置知识系统调用指令级别原创 2021-10-19 22:15:33 · 112 阅读 · 0 评论 -
2021-2022-1 20212824《Linux内核原理与分析》第一周作业
修改昵称蓝墨云班课已经加入班级实验楼文献管理与信息分析(TODO)在mooc上已经加入课程,但还没有开始学习别出心裁的Linux命令学习法已经在蓝桥云课(实验楼)上加入学习路径。原创 2021-09-26 11:29:55 · 117 阅读 · 0 评论 -
2021-2022-1 20212824《Linux内核原理与分析》第二周作业
前置知识32位-x86 cpu的寄存器 简单的汇编指令解释实验一 反汇编c程序先写一个小文件用来试验// main.cint g(int x){ return x + 2824;} int f(int x){ return g(x);} int main(void){ return f(66) + 2021;}然后把这个小程序汇编一下,命令如下gcc –S –o main.s main.c -m32然后加下来开始分析一下这个汇编原创 2021-10-02 21:18:46 · 108 阅读 · 0 评论 -
2020-2021-1 20212824《Linux内核原理与分析》第三周作业
make命令时出现的错误因为我是在自己的虚拟机上整的,出现了gcc版本不匹配的问题。这个时候需要进入到/home/roc/roccourses/linux-3.9.4/include/linux这个目录把文件名称修改一下compiler-gcc4.h->compiler-gcc7.h...原创 2021-10-06 13:37:54 · 92 阅读 · 0 评论 -
2020-2021-1 20212824《Linux内核原理与分析》第四周作业
问题:没有compiler-gcc7.h解决如下图问题:虚拟机连不上github解决如下图问题:在自己的机器上不能进行32位编译解决如下图第一部分完成(从此网上)原创 2021-10-11 22:17:06 · 103 阅读 · 0 评论