/sys/i386/i386/tace.cにこんな記述が。。。
PTRACESTOP_SC(p, td, S_PT_SCE);
なんだトラップしかけられるっぽい。
manが正しいとするならばアーキテクチャ依存ってことになるんだろうけどIA32しかもってないので関係ないし。
/sys/kern/sys_process.cのkern_ptraceをみるかぎり
ptrace(2)にPT_STEPを渡すのと同じようにPT_TO_SCX,PT_TO_SCEをわたせばよいらしい。
ちなみにuser mode linuxってこれに、さらに引数書き換えをやって動いてるらしい。
たしかにrootである必要すらないね~。
ちなみにptraceつかっても、システムコールでのstop時点でシステムコールの引数書き換えはむりぽ
/sys/kern/sys_process.cのptraceを読む限り、td(スレッドディスクリプタ?)アクセスする方法はなさげ。
0 件のコメント:
コメントを投稿