2012-02-01 31 views

答えて

1

短い答えはノーです - カーネルモードからページ保護ビットを操作するのない安全な、文書化方法はありません。これらのビットはメモリマネージャによって所有されています。

つまり、この方法で割り当てられたメモリにはNXビットが設定されていないため、このAPI経由で割り当てられたメモリからコードを実行することはできません。

編集:私は訂正しました - 私は上記のアレックスの答えに記載されているAPIを知らなかった。あなたは毎日何か新しいことを学びます!

+0

誤って、MmAllocateContiguousMemoryによって割り当てられたページの1つをコードページとして使用していました。私はBSODが見えなくなったときに興奮した。 Windowsは、固定されたメモリを実行許可でアロケートすることができます。 @Alex:MDLに感謝します。しかし、私はなぜウィンドウが割り当てられたページから実行することができますかと思います。それはページがNXビットが設定されていないページテーブルにあらかじめ割り当てられているからです。 –

4

メモリをMDLで割り当て、MmProtectMdlSystemAddress()を呼び出してページ保護を変更します。

Found here

+0

Alex:非ページプールから割り当てられたページのアクセス許可をチェックするルーチンがあるかどうかを知っていますか? –

+0

私は知らない。 –

関連する問題