1

依存関係用の dll ファイルを必要とする実行可能ファイルがあります。メモリ内またはリソース内にあるポインタからエントリ ポイントを読み取る dll を必要とする PE ファイルに実際にパッチを適用することは可能でしょうか。これが可能である場合、どうすればそれを行うことができますか?

ご協力いただきありがとうございます :)

4

1 に答える 1

2

依存する実行可能ファイルが必要とするのは、単に DLL 内のエントリ ポイントではありません。これDllMainは、DLL がロードされるときにシステム (PE ローダー) によって呼び出されるだけです。動的ローダーは、インポート アドレス テーブルのような構造でインポートされたアドレスを解決し、実行時に、アプリケーションは を介し​​てアドレスを動的に解決することさえできますGetProcAddress

理論的には、DLL をメモリの未使用部分に再配置/ベース化し、その関数へのすべての参照を再配置されたコードにパッチすることは可能ですが、これは非常に難しく、OS の詳細な理解が必要になります。あなたが探している答えの種類がわかりません。これを達成するために必要な手順は? それは非常に重要であり、以前に行われたことを認識していません (私が見た中で最も近いのは、.NET アセンブリ用の ILMerge です)。基本的に、DLL がコンパイル時に静的にリンクされていた場合と同等のコードに変換しています。

于 2012-10-04T22:53:50.263 に答える