メインプログラムを独自のイメージベースの非常に高い位置にリベースした後。
読み込まれる dll が 0x400000 に読み込まれることを保証するにはどうすればよいですか
dllImageBase = LoadLibrary("test.dll");
printf("imagebase = 0x%x", dllImageBase);
0x400000 ではなく常に 0x460000 を取得します
dll の最初の命令を 0x401000 から開始する必要があります。以前は、リベースする前に 0x600000 で開始していました。
リンカがリベースするコマンドは
#pragma comment( linker, "/BASE:8000000")
そのため、0x400000 は実際には現在無料ですが、デフォルトでは使用されません。そのため、再配置する必要がある場所に制御できます。多分いくつかのWIN32API?