これで、プロセスとそのmm_structにアクセスできるとします。マッピングの1つを変更したり、マッピングを削除して一時的なものを作成する方法があります。私はページよりも小さな量を割り当てて、それにメモリを書き込むことができますか?Linuxカーネルのユーザープロセスのページマッピングを変更する
たとえば、ADD命令でエラーを処理します。私は、比較的容易に障害のアドレスとサイズを得ることができます。私は8バイトをローカルに割り当て(最大の単一命令サイズ)、マッピングを混乱させ、フォールトした仮想アドレスがそれらの8バイトの最初のバイトを指し示すようにします。次に、別のページを対象としたデータを取得し、元のページをマッピングに戻すよう指示します。私は、ページ以外のものがプロセスの仮想メモリ領域で使用できるかどうかについて興味があります。
メモリオーバーヘッドがそれほど多くないため、ページサイズはわずか4,8kですが、最初の8バイトしか使用しません。 sidenoteとして、(カーネル空間から明らかに)ユーザ空間命令を単一ステップで実行する最も簡単な方法を知っていますか? –
@Jesus:私は正確には分かりませんが、私は['ptrace()'](http://linux.die.net/man/2/ptrace)で使われているコードを見て、 PTRACE_SINGLESTEP'リクエスト。 – Karmastan