プロセスのファイルI / O操作をメモリまたは他のファイルにリダイレクトするにはどうすればよいですか?

プロセスのファイルI / O操作をメモリまたは他のファイルにリダイレクトするにはどうすればよいですか?

次のようなファイルがあるとしましょう。ファイル.txtそして走る処理PID 12345ファイルを読み取る場合もあり、書き込む場合もあります。

  1. このプロセスを欺く方法はありますか?PID 12345読み書きしようとするたびに、他のプロセスによって割り当てられたメモリを読み書きします。ファイル.txt

  2. 他のファイルを読み書きするプロセスをだます方法はありますか(例:ファイル2.txt)?

Windowsにも同じ問題があります。

ベストアンサー1

  1. 次の Unix ドメインソケットを作成できます。file.txt
  2. open()正しいファイルを開くために、ライブラリで LD_PRELOAD システムコールを実装できます。あるいは、Linuxではマウントネームスペースを使用でき、unshare場合によっては使用することもできます。mount --bind

read()どちらもLD_PRELOADを使用してライブラリを呼び出すことができますが、write()静的にリンクされた実行可能ファイルでは機能しません。ptraceこれを処理する必要がある場合はを使用する必要があります。

おすすめ記事