gpt4 book ai didi

freebsd - 如何从源代码跟踪 FreeBSD 中的系统调用?

转载 作者:行者123 更新时间:2023-12-01 12:34:44 31 4
gpt4 key购买 nike

如何从源代码在 FreeBSD 10.1 x86_64 上记录系统调用(int 0x80sysenter/syscall 的系统调用编号和返回值)?

我知道 truss 可以完成这项工作,但我需要在每次系统调用期间记录其他信息,例如 copyout 的缓冲区。

我试图找到truss的源代码,但是失败了。我还尝试在 amd64_syscall() 中跟踪它们,但与 truss 的结果相比,结果似乎不完整。知道在实现中我应该关注哪些功能吗?

最佳答案

您还没有具体说明为什么需要这些。特别是,如果您出于安全目的需要这样做,那您就做错了。

你失败了是什么意思?来源在这里:http://bxr.su/FreeBSD/usr.bin/truss/

像这样的工具使用的一般机制被称为 ptrace ( https://www.freebsd.org/cgi/man.cgi?query=ptrace ),除其他外,它允许在执行系统调用时停止被跟踪的线程。

但是,必须注意,虽然此类机制允许您复制所有参数,但其他线程可以更改在您复制上述参数之后,就在系统调用执行相同操作之前,它们指向的内存。如果您对此有任何顾虑,则可以使用 MAC Hook 。

关于freebsd - 如何从源代码跟踪 FreeBSD 中的系统调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30814675/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com