私はDLLハイジャックで遊んでいて、グーグルで自分自身を見つけることができなかった何かについて疑問に思っていました。 DLLが実行可能ファイル/サービス/インストーラーによってロードされるという事実により、基本がどのように機能するかがわかります。また、ウィンドウズがDLLを見つけるためにロードする「パス」をどのように通過するかも理解しています。したがって、プログラムのパスでDLLを見つけようとしていることが確実にわかっているときに、プログラムのパスにDLL)を置くと、DLLで電卓を実行できます。
しかし、ここに私の質問があります:DLLが相対パスを使用して実行可能ファイルによってロードされているかどうかを確認するにはどうすればよいですか?
PATH変数のディレクトリから「見つかりません」DLL=)を実行できるようにしたいので、誤解している場合は、それも教えてください。
編集
取得したコメント/回答では、質問が100%明確ではないようです。少し明確にします。ただ遊んでいるだけなので、テストラボのセットアップを行います。実行可能ファイルによってロードされたDLLが絶対パスではなく相対パスでロードされているかどうかを確認する方法があるかどうかが問題です。 SO実行可能ファイルがtest.dllを見つけようとした場合、またはc:\ windows\system32\test.dllを参照している場合。procmonを使用して、いくつかのアプリケーションによってロードされているDLLを確認しています(Discordのように)procmonでは、実行可能ファイルがDLL(相対パスまたは絶対パス))を検索する方法を確認できません。これは、実行可能ファイルが移動するかどうかを確認する方法です。この Link で説明されているさまざまなパスを介して、または実行可能ファイルがDLLの絶対パスをロードしようとしているだけの場合。
あなたのケースで何が起こっているか誰が知っています。推測するのは難しい。 プロセスモニター を試してください。 DLLロードを含む)カーネルへのすべてのリクエストを監視します。そこで実際に探しているものが見つかるはずです。