2
私はptraceを使用してデータフロー異常検出を実装しようとしています。少しの研究の後、私はstraceに似たプログラムを実装しました。今、私はウィキのシステムコールについて私に指示するものである、このことについて困惑している:ptraceはユーザーレベルまたはカーネルレベルで機能しますか?
私が使用している場合は
「システムコールは、プロセスとオペレーティングシステム間のインタフェースを提供します」 ptraceを使用してプロセスのメモリを変更するには、私はユーザー空間またはカーネル空間で作業していますか?私は本当にこれについて混乱しています。
実際、ptraceはシステムコールごとに 'int 0x80'を生成しますか?だから私は割り込みを扱っているので、私はカーネル空間にいるのですか?これが私の最初の考えでした。私は間違っていた? –
正確には、* it *がシステムコールを行うとき(IntelのLinuxでは既にint 0x80)、プロセスのメモリやレジスタを調べるだけでプロセスを停止することはできません。ただし、これらのいずれも、別のプロセスによってプロセスに直接実行することはできません。その2番目のプロセスは代わりに、カーネルに 'ptrace'と同じように最初に動作するように要求する必要があります。 – geekosaur
カーネル空間で直接操作したいのですが、どうすればいいですか? –