我很想知道如何在Linux中覆盖正在运行的进程的函数,以便进程首先调用我的函数。
我们可以使用LD_PRELOAD
来覆盖二进制文件中的函数,但是在已经运行的进程中它不起作用。有任何建议请。
答案 0 :(得分:0)
LD_PRELOAD允许您执行的操作是强制在任何其他对象之前加载共享对象。因此,如果此自定义共享对象已提供某个函数,则不会再从“标准”共享对象加载该函数。
在您的情况下,您想要修改已加载的功能。我相信这是不可能的。
这显然是一种安全风险。
大多数操作系统都实现DEP和ASLR,这将阻止修改和预测内存中的共享对象位置。