【发布时间】:2015-06-27 10:13:54
【问题描述】:
我很想知道,如何在 Linux 中覆盖正在运行的进程的函数,以便进程首先调用我的函数。
我们可以使用LD_PRELOAD 覆盖二进制文件中的函数,但在已经运行的进程的情况下它不起作用。请有任何建议。
【问题讨论】:
标签: linux ld-preload
我很想知道,如何在 Linux 中覆盖正在运行的进程的函数,以便进程首先调用我的函数。
我们可以使用LD_PRELOAD 覆盖二进制文件中的函数,但在已经运行的进程的情况下它不起作用。请有任何建议。
【问题讨论】:
标签: linux ld-preload
LD_PRELOAD 允许您在加载任何其他对象之前强制加载共享对象。因此,如果此自定义共享对象已经提供了一个功能,则不会从“标准”共享对象再次加载它。
在您的情况下,您想修改已加载的函数。我认为这是不可能的。
这显然会带来安全风险。
大多数操作系统都实现了 DEP 和 ASLR,这将阻止修改和预测共享对象在内存中的位置。
【讨论】: