シナリオ:特定のコンピュータゲームのXインスタンスを開く.NETプログラムを作成したいと思います。コンピュータゲーム(クローズドソース)はハードコードされており、いくつかの設定値を含む "config.ini"という名前のファイルを常に読み込みます。プロセス(Windows実行可能ファイル)を生成し、そのプロセスのみのファイル読み取り要求をリダイレクトするにはどうすればよいですか?
このゲームのXインスタンスを生成するコードを記述したいと思います。インスタンスごとに、「config-1.ini」、「config-2.ini」、「config- 3.ini "など(インスタンスごとに1つの別々のファイル)、ゲームのインスタンスごとに個別の設定を行うことができます。
.NET経由でゲームを起動するのは簡単です。 .iniファイルの異なるコピーを作成するだけでも、File.Copy()だけで十分であり、ファイルが次回までドライブに残るようにします。しかし、OSから実際に要求されるファイル以外のファイルを読み込むために、どのように特定のプロセスを欺くことができますか?
更新:.NETライブラリEasyHookライブラリとFileMonitorフックを使用して解決策を見つけました。特定のプロセス内でファイルI/Oをリダイレクトすることができます。
PS:複数のdownvotes のおかげでありがとう。常にStackOverflowで歓迎されています。ない。
かなり簡単:**できません**。すべてのファイルを選択したファイルにリダイレクトするマルウェアを作成するのは簡単でしょうか? –
'config-1.ini'を' config.ini'にコピーしてプロセスを開始してください。他のコピーを続ける –
https://blogs.msdn.microsoft.com/cjacks/2007/10/15/using-the-correctfilepaths-shim-to-redirect-files-on-windows-vista/ –