谢谢!
发布于 2011-07-28 16:59:07
发布于 2011-07-28 17:26:12
如果只涉及特定的系统调用(并非全部),则可以重写C存根函数并将其放在共享库中,并通过设置LD_PRELOAD在执行目标应用程序之前预加载库。
这导致在动态链接器解析函数调用时,您的函数比C库提供的函数更受欢迎。
这只适用于动态链接的应用程序(几乎所有),并且您需要与所使用的C库兼容。由于几乎所有linux都使用glibc,而且不同的glibc版本都是二进制兼容的,所以这不应该是一个问题。
你可以看看fakeroot (作为一个例子)如何做它。
添加:您也可以将调用转发到C库中的实际实现,而不是重新实现整个系统调用包装器。我假设您需要手动加载库并解析地址(对此不确定,但否则您可能会自行调用)。
https://stackoverflow.com/questions/6862320
复制相似问题