クライアントがアプリケーション用のプラグインを作成できるようにしたいが、プログラムのメモリを突くようなハッキングをクライアントにさせたくない場合、これを防ぐことは可能ですか?
それとも、メイン プログラム メモリにアクセスできないようなメモリ領域に DLL をロードしますか?
短い答えは「いいえ」です。
長い答え: DLL はメモリに読み込まれ、プロセスの観点と OS の観点の両方から、すべての意図と目的のために実行可能ファイル自体の一部のように見えます。確かにDLLは(おそらく)複数の実行可能ファイル間で共有されているため、OSは特定のDLLの「ユーザー」の数を追跡する必要がありますが、1つのプロセスの観点からは、それは実行可能ファイルの一部です. これは別のアドレス範囲ですが、DLL のコンテンツに対する権利とアクセス許可は、他の DLL またはメインの実行可能ファイル自体とまったく同じです。
プラグインがある場合は、プラグインを信頼する必要があります。それが望ましくない場合は、DLL モデルを使用してプラグインを作成しないでください (たとえば、共有メモリ領域と別の実行可能ファイルを使用して、共有メモリのみへのアクセスを許可します)。