linux内核提供的能够访问用户指针的api有哪些

linux内核提供的能够访问用户指针的api有哪些,第1张

4. linux 用户API (内核API,请参考Linux内核API完全手)

一、进程控制:

fork 创建一个新进程

clone 按指定条件创建子进程

execve 运行可执行文件

exit 中止进程

_exit 立即中止当前进程

getdtablesize 进程所能打开的最大文件数

getpgid 获取指定进程组标识号

setpgid 设置指定进程组标志号

getpgrp 获取当前进程组标识号

setpgrp 设置当前进程组标志号

getpid 获取进程标识号

getppid 获取父进程标识号

getpriority 获取调度优先级

setpriority 设置调度优先级

modify_ldt 读写进程的本地描述表

nanosleep 使进程睡眠指定的时间

nice 改变分时进程的优先级

pause 挂起进程,等待信号

personality 设置进程运行域

prctl 对进程进行特定 *** 作

ptrace 进程跟踪

sched_get_priority_max 取得静态优先级的上限

sched_get_priority_min 取得静态优先级的下限

sched_getparam 取得进程的调度参数

sched_getscheduler 取得指定进程的调度策略

sched_rr_get_interval 取得按RR算法调度的实时进程的时间片长度

sched_setparam 设置进程的调度参数

sched_setscheduler 设置指定进程的调度策略和参数

sched_yield 进程主动让出处理器,并将自己等候调度队列队尾

vfork 创建一个子进程,以供执行新程序,常与execve等同时使用

wait 等待子进程终止

wait3 参见wait

waitpid 等待指定子进程终止

wait4 参见waitpid

capget 获取进程权限

capset 设置进程权限

getsid 获取会晤标识号

setsid 设置会晤标识号

项目部署至linux系统后,通过url调用API接口,使用postman工具生成CURL postman生成步骤.(get请求为例)

1.postman中根据请求方式get\post输入对应的请求url

2.headers中输入头部参数(不固定)

3.点击"Code"d出 GENERATE CODE SNIPPETS

1.d窗中选中 "cURL",复制请求至系统中运行,回车调用成功。

原文链接: https://blog.csdn.net/qq_39356994/article/details/110628677

API是应用程序接口, 所以在应用级

直接与硬件打交道的是WINDOWS DDK, 设备驱动开发包,

这个开发包处理硬件.

欲了解更详细的细节, 请参考CSDN:

比如:http://dev.csdn.net/article/80266.shtm

VxD API过程

一个VxD提供V86模式和保护模式API过程以允许在一个虚拟机中运行的应用程序和其它软件访问该VxD的特征。如果要使这些可选的过程有效,VxD必须将它们定义为Declare_Virtual_Device宏的参数,如果没有定义,VMM认为该VxD没有API过程。

在一个虚拟机中运行的应用程序或者其它软件通过设置BX寄存器为VxD标识并调用获取设备入口地址功能(INT 2FH 1684H功能)获取特定的虚拟机的API过程的入口地址,VMM返回该地址使得应用程序可以间接调用该API过程。

当一个应用程序调用该入口地址时,VMM保存该应用程序的寄存器并调用VxD相应的API过程,保存当前虚拟机的句柄到BX寄存器中并保存Client_Reg_Struc结构地址到EBP寄存器中。API过程必须检测客户寄存器的值(使用Client_Reg_Struc结构)以判断运行的API调用。

按照常规,大多数API过程使用AH寄存器指定主功能号,使用AL寄存器指定次功能号,其它客户寄存器用于附加参数。API过程通过修改客户寄存器返回值,API过程可以修改EAX、EBX、ECX、EDX、ESI和EDI寄存器。

下面的实例给出了一个实例API过程——VSAMPLED_API_Get_Version:

BeginProc VSAMPLED_API_Get_Version

movzx eax, [ebp.Client_AX] 取功能号

or eax, eax

jnz Undefined

Get_Version:

mov [ebp.Client_AX], 030AH 在客户寄存器AX中返回值

and [ebp.Client_Flags], NOT CF_Mask 清除进位标志

ret

Undefined:

or [ebp.Client_Flags], CF_Mask 设置进位标志

ret

EndProc VSAMPLED_API_Get_Version


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/yw/8929188.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-23
下一篇2023-04-23

发表评论

登录后才能评论

评论列表(0条)

    保存