zoukankan      html  css  js  c++  java
  • Linux execve函数簇用法

    exec函数簇实现的功能都是用一个新程序替换原来的程序,替换的内容包括堆栈段,代码段,进程控制器PCD,但是原进程的PID保持不变
    int execl(const char *path, const char *arg, ...);
    ...表示参数是可变参数列表,例如execl("hello","参数1","参数2","参数3",NULL)
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <unistd.h>
    
    int main(int arg,char *args[])
    {
        execl("/bin/ls","/bin/ls","-la",NULL);
        /*备注:这里参数写"ls",execl()无法找到ls程序*/
        printf("fly with me
    ");
        return 0;
    }
    int execlp(const char *file, const char *arg, ...);
    p表示无需填写路径,只要填写文件名称,因为execlp()函数会在当前环境变量PATH下查找该文件
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <unistd.h>
    
    int main(int arg,char *args[])
    {
        execlp("ls","ls","-la",NULL);
        printf("fly with me
    ");
        return 0;
    }
    int execle(const char *path, const char *arg,..., char * const envp[]);
    参数envp是一个以NULL结尾的字符串数组,代表程序员自定义的环境变量,标准写法是KEY=VALUE
    如果envp参数传值NULL,在被替换进程打印的是NULL
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <unistd.h>
    #include <sys/types.h>
    
    int main(int arg,char *args[])
    {
        printf("old getpid()=%d
    ",getpid());
        char *envps[]={"aa=11","bb=22",NULL};
        execle("./hello","./hello",NULL,envps);
        return 0;
    }
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <unistd.h>
    #include <sys/types.h>
    
    extern char **environ;
    
    int main(int arg,char *args[])
    {
        printf("fly with me;getpid()=%d
    ",getpid());
        int i=0;
        for(i=0;environ[i]!=NULL;i++)
        {
            printf("%s
    ",environ[i]);
        }
        return 0;
    }
    int execv(const char *path, char *const argv[]);
    int execvp(const char *file, char *const argv[]);
  • 相关阅读:
    Bypass WAF
    一种简单的hook方法--LD_PRELOAD变量
    Linux C:access()时间条件竞争漏洞
    环境变量法提权
    sudo-tcpdump提权法
    asynico转载
    pychar 2020.1.2激活
    临时mysql 链接池
    python pip 使用阿里云镜像安装库
    zookeeper kafaka 临时保存
  • 原文地址:https://www.cnblogs.com/zhanggaofeng/p/6067580.html
Copyright © 2011-2022 走看看