【发布时间】:2021-09-07 09:31:18
【问题描述】:
我不知道这是否是正确的地方,但我不知道在哪里可以问。 我想改变 QEMU 内部的系统调用行为(如果我可以临时修改的话,甚至可以在内核内部),例如,如果我调用 read(fd) 调用,我想挂钩这个调用并可能改变文件描述符或内容本身。 我想要一个像这样的一般结构,可能是通过使用插件或者我不知道是什么:
syscall_interceptor(syscall, syscall_parameters){
new_parameters = tamper(syscall_parameters)
syscall(new_parameters )
}
类似的东西。可能吗?怎么样?
【问题讨论】:
-
这个问题是关于 x64 架构的吗?是关于 QEMU 仿真模式(TCG 加速器)吗?
-
@nevilad 是的,它是关于 x64 架构的,是的,我说的是 QEMU 仿真和 TCG。我想我可以写一个插件,但如果我是正确的,我只能拦截调用,而不能篡改它
-
你可以用 ptrace 做这种事情,完全不涉及 QEMU,如果这对你有用的话。 QEMU 本身并没有为此提供任何机制。
标签: linux-kernel system-calls qemu