リンクを解除してファイルを/ trashにリダイレクトする呼び出しを傍受できますか?

リンクを解除してファイルを/ trashにリダイレクトする呼び出しを傍受できますか?

リンク解除呼び出しを傍受してゴミを生成する方法があるかどうか疑問に思います。理論的には、ファイルは一定期間が経過するとタイムスタンプが撮られ、削除されます。

答え1

まさにここに。この種の作業(標準関数のオーバーライド)の一般的なメカニズムはLD_PRELOADと呼ばれます。一般的なアイデアは非常に簡単です。ライブラリがプログラムのメモリにロードされると、指定されたシンボル名を定義する最初のライブラリはそのシンボルの目的を定義します。したがって、LD_PRELOADを使用すると、他のすべてのライブラリ(libcを含む)の前に特定のライブラリをロードするように動的リンカに指示できます。つまり、後でロードされるライブラリの特定の機能をオーバーライドできます。

LD_PRELOADを使用して広く使用されているプロジェクトの例は次のとおりです。

  • ジャマルロックjemallocメモリアロケータは、明示的に使用されていないプログラムで使用できるようにプリロードできます。
  • デートグミシステムの時間と日付を偽造することができます。
  • 私のデータを無料で入手オーバーライドsync()および関連コールは何も実行せず、データセキュリティを犠牲にして一部のアプリケーションのパフォーマンスを向上させます。
  • ダンテデフォルトでは、SOCKSプロトコルをサポートしていないアプリケーションに対してSOCKSプロトコルを有効にするためにLD_PRELOADを使用するコマンドが含まれています。

あなたが必要とするものを正確に実行するライブラリもありますlibtrash。公式ページを見つけることができます。ここ。私が自分で試したことがないのでうまくいくかどうかはわかりませんが、最近新しいバージョンがリリースされたため、少なくとも作成者が維持し続けているようです。

関連情報