注意必须使用waitpid,否则会出现rm的僵尸进程。 DeleteCvsFile(const char *csvfilename) { int ac = 0; char *argv[10]; char *envp[10]; argv[ac++] = "-rf"; argv[ac++] = csvf ...
分类:
其他好文 时间:
2019-11-05 16:45:41
阅读次数:
152
漏洞描述 在5.1.17之前的Linux内核中,kernel / ptrace.c中的ptrace_link错误地处理了想要创建ptrace关系的进程的凭据记录,这允许本地用户通过利用父子的某些方案来获取root访问权限 进程关系,父进程删除权限并调用execve(可能允许攻击者控制)。 一个影响因 ...
分类:
系统相关 时间:
2019-10-29 13:15:30
阅读次数:
112
漏洞描述 kernel / ptrace.c中的ptrace_link错误地处理了想要创建ptrace关系的进程的凭据记录,这允许本地用户通过利用父子的某些方案来获取root访问权限 进程关系,父进程删除权限并调用execve(可能允许攻击者控制)。 一个影响因素是对象寿命问题(也可能导致恐慌)。 ...
分类:
系统相关 时间:
2019-09-01 14:41:02
阅读次数:
201
close_on_exec是一个进程所有文件描述符的标记位图,每个比特位代表一个打开的文件描述符,用于确定在调用系统调用execve()时需要关闭的文件句柄 (参见include/fcntl.h)。 当一个程序使用fork()函数创建了一个子进程时,往往会在该子进程中调用execve()函数加载执行 ...
分类:
系统相关 时间:
2019-06-20 18:44:24
阅读次数:
241
os.exec*族主要用来代替当前进程,执行新的程序,不返回值。在UNIX上,新的执行程序加载到当前进程,与调用它的进程有相同的id。 os.execl(path, arg0, arg1, ...) os.execle(path, arg0, arg1, ..., env) os.execlp(fi ...
分类:
编程语言 时间:
2019-05-19 14:03:00
阅读次数:
159
进程控制 fork 创建一个新进程 clone 按指定条件创建子进程 execve 运行可执行文件 exit 终止进程 _exit 立即终止当前进程 getdtablesize 进程所能打开的最大文件数 getpgid 获取指定进程组标识号 setpgid 设置指定进程组标志号 getpgrp 获取 ...
分类:
系统相关 时间:
2019-04-04 09:21:03
阅读次数:
259
一、首先我们来看看进程控制块PCB也就是task_struct,(源码) 选出task_struct中几个关键的参数进行分析struct task_struct { 二、进程的创建 fork()允许用户态下创建新的进程, fork 创造的子进程复制了父亲进程的资源,包括内存的内容task_struc ...
分类:
系统相关 时间:
2019-03-24 18:48:40
阅读次数:
228
一、问题的引出 对于很多的Linux下程序,我们有时候并不像详细的知道它执行的每一条指令或者,或者我们不想(或者不能)进行源代码级的调试,而只实现想大致看一下某个程序它执行了哪些核心的API调用,从而判断出程序执行的关键路径。此时使用strace是一个不错的选择,它可以不间断的执行完一个子程序,从而 ...
分类:
其他好文 时间:
2019-03-06 20:41:37
阅读次数:
226
一、shellcode编写 下面我将参考其他资料来一步步示范shellcode的几种编写方式 0x01 系统调用 通过系统调用execve函数返回shell execve函数在父进程中fork一个子进程,在子进程中调用exec函数启动新的程序。execve()用来执行第一参数字符串所代表的文件路径, ...
分类:
数据库 时间:
2019-02-02 17:22:30
阅读次数:
358
进程程序替换 进程程序替换原理 fork创建子进程执行的是和父进程相同的程序(也有可能是某个分支),通常fork出的子进程是为了完成父进程所分配的任务,所以子进程通常会调用一种exec函数(六种中的任何一种)来执行另一个任务。当进程调用exec函数时,当前用户空间的代码和数据会被新程序所替换,该进程 ...
分类:
其他好文 时间:
2019-01-14 23:18:45
阅读次数:
330