2017-09-23 4 views
1

C++では、Windowsカーネルモードのプログラムを含め、そのアドレスが使用されているかどうかにかかわらず、物理メモリのアドレスにアクセスして書き込むことができるプログラムを作成します。 Windows OSメモリのアクセス権の制約なしに、0x00などの任意のメモリアドレスに書き込むことができるプログラムを作成することは可能ですか?明らかに、プログラムはusermodeプログラムではありません。プログラムを管理者に昇格させると、私はこれを行うことができますか?または、ドライバーを書く必要がありますか?Windowsの任意のメモリアドレスに書き込むことは可能ですか?

+0

"メモリアドレス"とはどういう意味ですか?プロセス固有の仮想アドレス、システム全体の仮想アドレス、または物理メモリアドレス – valdo

+0

物理メモリアドレス – user4757174

+0

デバイスドライバが物理メモリアドレスに書き込む可能性があります。ただし、物理メモリページはページングファイルにダンプされる可能性があり、その逆もあります。通常、物理メモリページは特定のアプリケーション/ドライバにバインドされません。 – valdo

答えて

2

ドライバを作成する必要があります。通常のプログラムは、管理者として実行していても、任意のメモリアドレスに書き込むことはできません。実際、彼らは任意の物理アドレスにアクセスすることすらできません。

+0

カーネルモードのドライバは、Windowsにとって重要な他のカーネルモードプログラムの物理メモリを上書きできますか? – user4757174

+2

はい、カーネルモードに入ることができれば、好きなようにシステムをホースできます。 –

関連する問題