系统调用是用户程序和linux内核交互的接口,linux的系统
调用有下面三种方式:
在x86与x86_64的系统中,都可以使用int $0x80指令来执行系统调用,参数
使用如下:
x86_64引入了一个新指令syscall来执行系统调用,参数使用如下:
正常调用库函数( man 3 execve ),传参方式见 x86 调用约定
查看调用号:头文件 /usr/include/asm/unistd.h 内容如下,所以32位和64位的调用号可以分别在unistd_32.h和unistd_64.h中找到
查看参数: man 2 execve
以 execve 为例, man 2 execve 查看其接口如下: int execve(const char *pathname, char *const argv[], char *const envp[])
下面汇编实现了 execve("/bin/sh", 0, 0) :
32位:
64位:
1、点击电脑左下角,点击左下角上的设置。
2、然后我们点击会话启动,点击应用程序自启动。
3、点击这个添加,然后点击箭头上的位置。
4、点击文件系统,点击usr,然后点击这个share目录。
5、点击这个应用程序文件夹,点击要设置为自启动的软件。
6、然后在这个框输入一个名字点击确定即可,那么软件就设置为了自启动了的。 运行()中间是你的命令调用格式: 〈逻辑型〉 运行 (文本型 欲运行的命令行,逻辑型 是否等待程序运行完毕,[整数型 被运行程序窗口显示方式]) - 系统核心支持库->系统处理
英文名称:run
本命令运行指定的可执行文件或者外部命令。如果成功,返回真,否则返回假。本命令为初级命令。
参数<1>的名称为“欲运行的命令行”,类型为“文本型(text)”。
参数<2>的名称为“是否等待程序运行完毕”,类型为“逻辑型(bool)”,初始值为“假”。
参数<3>的名称为“被运行程序窗口显示方式”,类型为“整数型(int)”,可以被省略。参数值可以为以下常量之一:1、#隐藏窗口; 2、#普通激活; 3、#最小化激活; 4、#最大化激活; 5、#普通不激活; 6、#最小化不激活。如果省略本参数,默认为“普通激活”方式。
*** 作系统需求: Windows、Linux
评论列表(0条)