我编写了一个程序来列出命令执行的所有系统调用(例如/ bin / ls)。现在我想做的就是找到所有可能传递给它的系统调用参数,环境变量,命令行参数
示例:如果我打开一个文件。系统调用sys_access会打开文件吗?但是如何获得这些价值? 想要对系统调用(例如打开,读取,写入,关闭)执行此操作。
根据我的研究,这些必须在寄存器(ebx- edx)中。如果是,则这些寄存器值表示什么?我知道了这个链接。 但是我真的不能从那里得到很多。同样,对此的任何进一步参考也将很有帮助。
(以上评论的修订形式(以便您可以接受)):
可以在Linux内核头文件syscalls.h中查找详细的syscall参数。在上述情况下,由于sys_access(x86上的#33)只有两个参数:
此系统调用的返回值为-2(ENOENT,在errno-base.h中定义),表示错误(没有此类文件或目录)。
另请注意(请参阅上面的Basile注释),您正在复制strace实用程序的功能。