DLLのBASEアドレスを変更する実験

海外版の kernel32.dll は 言語リソース以外に 日本語版と大きな違いが1つあります。

それは、言語ごとに、プログラムのBASEアドレスが違うのです。
例えば、Windows 2000 日本語版の場合 77E50000 ですが、英語版の場合 7C570000になります。

他にも、この影響を受けて、さまざまなDLLのBASEアドレスが違います。

改造版の KERNEL32.DLLを簡単に移植しようと思ったのですが、BASEアドレスが異なるために、大量の書き換えが必要だったのですが、PEMaker(仮)で、再配置テーブルを元に、BASEアドレスを書き換えてしまう機能をつけてみました。

pem6

動作確認できないのでノーチェックですが、英語版のv5カーネル作成してみました。
Windows 2000 Kernel32 改造計画

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です