【问题标题】:How to use LD_PRELOAD without killing the process如何在不杀死进程的情况下使用 LD_PRELOAD
【发布时间】:2020-05-05 15:37:11
【问题描述】:

我有正在运行的进程,我想挂接特定的功能。

主要想法是终止进程并使用 LD_PRELOAD 再次运行它,然后就可以了。

问题是我不想杀死进程,或者使用ptrace(因为我不想让进程一直处于调试状态)

有什么方法可以在运行过程中使用 LD_PRELOAD?

我假设我需要将 so 加载到进程内存中并更改导入表。

【问题讨论】:

    标签: c linux hook ptrace ld-preload


    【解决方案1】:

    如果您不能使用ptrace,这通常是不可能的。问题是,与PTRACE_POKETEXT 不同,process_vm_writev 不能写入只读页面。在具有 RELRO 等的现代系统上,您可以覆盖以实现目标的任何内容在进程开始后都将是只读的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-08
      • 1970-01-01
      • 1970-01-01
      • 2012-02-11
      相关资源
      最近更新 更多