【问题标题】:overriding functions of running process in linuxlinux中运行进程的覆盖函数
【发布时间】:2015-06-27 10:13:54
【问题描述】:

我很想知道,如何在 Linux 中覆盖正在运行的进程的函数,以便进程首先调用我的函数。

我们可以使用LD_PRELOAD 覆盖二进制文件中的函数,但在已经运行的进程的情况下它不起作用。请有任何建议。

【问题讨论】:

    标签: linux ld-preload


    【解决方案1】:

    LD_PRELOAD 允许您在加载任何其他对象之前强制加载共享对象。因此,如果此自定义共享对象已经提供了一个功能,则不会从“标准”共享对象再次加载它。

    在您的情况下,您想修改已加载的函数。我认为这是不可能的。

    这显然会带来安全风险。

    大多数操作系统都实现了 DEP 和 ASLR,这将阻止修改和预测共享对象在内存中的位置。

    【讨论】:

      猜你喜欢
      • 2015-04-21
      • 2017-01-21
      • 2013-11-26
      • 2016-11-09
      • 2010-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-20
      相关资源
      最近更新 更多