2011-12-17 4 views
2


を特定の命令が特権または敏感であることを把握するためにどのような方法がある見つける?/
私たちは、ドキュメントを参照してくださいすることができ、これを締結することができ、アセンブリ命令を使用することによって、これを把握することが可能ですか?
編集:さらに、すべてのisaのドキュメントでは、命令がアームのように機密であるかどうかは指定されていません(x86ではこれを明示していますが)。だから、これを理解する方法があるはずです。(x86または腕を言うことができます)指定されたISAでは特権と機密命令

+1

ほとんどのアセンブリ言語には、メタプログラミング機能は含まれていません。あなたが特権を持っていないことを知っているならば、命令を実行し違反を知らせることができるかもしれませんが、その方法はOS /環境特有です。 –

答えて

1

障害を報告するハンドラを指すようにPrivilegeExceptionベクトル(または同等のもの)をフックします。命令を実行します。例外が表示されない場合は、特権がありません。

+0

特権のデータ構造を変更することができる機密命令はどうですか? – peeyush

+0

私は、特権的なデータ構造(例えば、割り込みベクタテーブル)が必ずユーザモードからアクセス可能であるとは確信していません。つまり、CPUはスーパバイザモード(または同等のもの)でなければなりません。それを変更してください。しかし、命令は必ずしも「通常の」もの以外のものではなく、より高い特権レベルで実行しているということだけです。だから私は、特定の命令が本質的に敏感であることを検出する簡単な方法はないと思う。なぜなら、その感度は実行コンテキストに依存するからだ。 –

関連する問題