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

浙公网安备 33010602011771号