是否可以拦截取消链接并将文件重定向到 /trash 的调用?

是否可以拦截取消链接并将文件重定向到 /trash 的调用?

我想知道是否有办法通过拦截取消链接的调用来创建垃圾。理论上,文件将被加上时间戳并在设定的时间段后删除。

答案1

就在这里。此类事情(覆盖标准函数)的一般机制称为 LD_PRELOAD。总体思路非常简单,当将库加载到程序的内存中时,第一个定义给定符号名称的库就定义了该符号的用途。因此,LD_PRELOAD 允许您告诉动态链接器在所有其他库(包括 libc)之前加载特定库,这意味着它们可以覆盖稍后加载的库中的特定函数。

使用 LD_PRELOAD 的广泛使用的项目示例包括:

  • 杰马洛克可以预先加载,以便您可以将 jemalloc 内存分配器与本身不显式使用它的程序一起使用。
  • 日期软糖让您伪造系统时间和日期。
  • 解放我的数据覆盖sync()和相关调用不执行任何操作,以牺牲数据安全为代价提高某些应用程序的性能。
  • 但丁包括一个使用 LD_PRELOAD 为本身不支持 SOCKS 协议的应用程序启用 SOCKS 协议的命令。

还有一个库可以完全满足您的要求,称为libtrash.官方网页可以找到这里。我不确定它是否有效,因为我自己从未使用过它,但最近发布了新版本,所以看起来作者至少仍在维护它。

相关内容