随笔分类 -  操作系统

摘要:参考: https://www.cnblogs.com/tzj-kernel/p/17960135 阅读全文
posted @ 2024-12-23 11:03 ho966 阅读(8) 评论(0) 推荐(0)
摘要:1、 程序如何被执行 当执行./a.out时,首先开始工作的是Bash程序。Bash 进程会做两件事情: a) 调用 fork() 系统调用,创建出一个新的进程,用来执行a.out任务 b) 调用 execve() 系统调用,执行这个 ELF 可执行文件a.out 2、 内核加载ELF文件 参考:h 阅读全文
posted @ 2024-12-20 19:20 ho966 阅读(41) 评论(0) 推荐(0)
摘要:1 ELF定义 ELF(Executable and Linkable Format,可执行与可链接格式)是目前UNIX 和类 UNIX 操作系统的标准二进制格式文件。linux系统中的可执行文件(exe)、共享库(.so)、目标文件(.o)、coredump文件都是ELF格式,只是文件类型不同 p 阅读全文
posted @ 2024-12-19 14:36 ho966 阅读(438) 评论(0) 推荐(0)
摘要:Linux Error: 11 Resouce temporarily unavailable 可能涉及到的限制: 1、/proc/sys/kernel/threads-max 系统允许的最大线程数 2、/proc/sys/kernel/pid_max 系统最大pid值 3、用户资源限制 ulimi 阅读全文
posted @ 2023-05-22 22:46 ho966 阅读(251) 评论(0) 推荐(0)
摘要:解决思路: 1、core的生成路径已被配置,确认非空 /proc/sys/kernel/core_pattern 2、core文件大小限制也去除了ulimit –c core文件的大小限制也设置成了unlimited 3、/proc/sys/fs/suid_dumpable已设置为1,防止非本用户组 阅读全文
posted @ 2023-05-18 21:00 ho966 阅读(410) 评论(0) 推荐(0)
摘要:栈帧的概念: 每个线程都有自己的栈空间,对应线程的每一个执行的函数,都有一个相对应的栈帧,栈帧存有该函数的入参、出参、局部变量以及返回地址,一个完整的栈信息就是由N个栈帧组成的,栈空间的开辟是由高地址向低地址的。 写一个简单的函数调用 #include <cstdio> #include <stri 阅读全文
posted @ 2022-06-11 12:27 ho966 阅读(114) 评论(0) 推荐(0)
摘要:学习堆栈知识,实现一个简单的栈溢出攻击。 代码如下图,main函数中只运行normal_func函数,通过数组越界,修改normal_func的返回地址,将eject_func函数地址赋值到normal_func的返回地址,实现对eject_fun的调用。 #include <cstdio> #in 阅读全文
posted @ 2020-01-04 12:41 ho966 阅读(2013) 评论(0) 推荐(0)