Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我很想知道,如何覆盖 Linux 中正在运行的进程的函数,以便该进程首先调用我的函数。
我们可以LD_PRELOAD用于覆盖二进制文件中的函数,但在已经运行的进程的情况下它不起作用。请有任何建议。
LD_PRELOAD
LD_PRELOAD 允许您做的是在任何其他对象之前强制加载共享对象。因此,如果此自定义共享对象已经提供了一个功能,则不会从“标准”共享对象再次加载它。
在您的情况下,您想修改已加载的功能。我相信这是不可能的。
这显然会带来安全风险。
大多数操作系统都实现了 DEP 和 ASLR,这将阻止修改和预测共享对象在内存中的位置。