2016-10-23 10 views
4

カーネル空間のコールバック関数をユーザー空間から呼び出すのがなぜ「悪い」とみなされるのか、ユーザー空間のコールバック関数がユーザー空間から呼び出されるのはなぜですか?カーネルモードでコールバック関数を実行していないのはなぜですか?

+0

[ユーザーモードとカーネルモードのコールバック関数]の複製があります(http://stackoverflow.com/questions/36266834/callback-function-in-user-mode-vs-kernel-mode) –

+0

前の質問はあいまいです。 – Nadeemm

+0

あなたはどういう意味ですか?カーネル空間のコールバック関数をユーザー空間から呼び出すことと、ユーザー空間のコールバック関数をユーザー空間から呼び出すことを意味しますか?あるいは、カーネル空間のコールバック関数をカーネル空間から呼び出して、ユーザー空間のコールバック関数をユーザー空間から呼び出すことを意味しますか? – glauxosdever

答えて

3

ユーザーがカーネルモードでコードを実行できるようにすると、セキュリティ上のリスクが非常に高くなります。つまり、ユーザー空間プログラムがカーネルモードで実行されている場合、は、というセキュリティはありません。ゲームは完全に失われ、ユーザーは誰もがすべてにアクセスできます。

カーネルモードで実行している場合、仮想メモリのルックアップはもはや特権レベルによって保護されていないことを考慮してください。 x86では、カーネルモードでは特権レベルは0です。物理メモリ内のすべてにアクセスできます。したがって、プロセスのコールバックがカーネル空間で実行されていれば、マシン上で文字通り何かを実行することができます。

誰のページテーブルも消去したいですか? K。代わりに、そのページテーブルの内容を確認したいですか?あなたはそれを持っています。カーネルメモリをゼロにして、システム全体をクラッシュさせたいですか? Lolz良いアイデア。マシン上で別のプロセスをハックしてI/Oトラフィックを記録したいのですか?スジは通ってるようだ。

カーネル空間でコードを実行させないでください。

0

このようなコールバックをサポートするシステムがあります。例えば:

http://h41379.www4.hpe.com/doc/732final/4527/4527pro_001.html#index_x_190

このような場合は、あなたのプロセスはカーネル・モードで実行するための適切な権限を持っている必要があります。

カーネルモードでコードを実行できるようにすると、システムがクラッシュしてセキュリティ上の問題を引き起こします。

関連する問題