gpt4 book ai didi

c - 仅在 debian 中覆盖我的应用程序的系统调用

转载 作者:太空宇宙 更新时间:2023-11-04 03:38:22 26 4
gpt4 key购买 nike

我有要求在运行的线程中拦截系统调用并记录该信息。我的内核版本是3.15.10

我知道一种方法可以获取系统调用地址,然后从该地址跳转到不同的系统调用号。但是,这种方法的问题是,如果出现问题,我的系统就会崩溃。

我想要的是只覆盖我的应用程序的系统调用

最佳答案

如果您有应用程序的源代码并且可以重新编译,则可以使用宏定义将系统调用更改为其他可以覆盖的东西(然后,通常是原始系统调用)。

#define rmdir(p) overridden_rmdir(p)

在链接路径的库中定义了 overridden_​​rmdir

如果由于某种原因您不能这样做,但仍然可以重新编译,您可以生成汇编器输出并编辑它(与 sed 脚本一样)以包含您想要的修改。

如果您无法重新编译或重新链接,您可以反汇编二进制文件并编辑汇编器输出,如上所述。

另一种可能性是在具有不同内核的虚拟机中运行此应用程序,其中内核被修改为使用覆盖的系统调用。

希望对您有所帮助。

关于c - 仅在 debian 中覆盖我的应用程序的系统调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30465858/

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