katsuhiro/refmon/ptrace
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[katsuhiro]] > [[katsuhiro/refmon]] -> katsuhiro/refmon/...
*ptrace 周りの勉強 [#be698a7a]
ネストされたリファレンスモニタを実現するための ptrace の...
**返ってこないシステムコール [#u78dffcf]
***来たときの処理 [#jacbaa3e]
-sys_rt_sigreturn などの戻ってこないシステムコールのとき...
--戻ってこないシステムコールを積むとずっと残ってしまう。
***具体的な関数名 [#td37cb87]
リファレンスモニタは監視対象が発行したシステムコールの呼...
(確認に用いた環境のカーネルは 2.4.31 である)~
返ってくることを確認した
-sys_exitgroup
返ってこないことを確認した
-sys_rt_sigreturn
-sys_exit
--返ってこないのは確かだが、直後に終了してしまうため関係...
未確認だがおそらく返ってこない
-sys_sigreturn
**2.6 系と 2.4 系の差 [#sb4b95ed]
一見似たような動きをするけれども CLONE_PTRACE で子プロセ...
-2.4.31
--clone(flags | CLONE_PTRACE, ...
--SIGTRAP(at clone の出口)
--SIGSTOP(特に何処ということはなく、適当に飛んでくる)
--SIGTRAP(at 次のシステムコールの入り口)
-2.6.13.3
--clone(flags | CLONE_PTRACE, ...
--SIGSTOP(at clone の出口)
--SIGTRAP(at 次のシステムコールの入り口)
それと 2.6系では wait 系をエミュレートしなくてもきちんと...
本当にちゃんと動いているか、要調査。
**2.4 と 2.6 系両方で動かすには [#lbddb286]
2.4 なら一回目の SIGSTOP を無視しても動いたが、2.6 だと最...
**ptrace の困ったところ [#s171ca9f]
***SIGTRAP でトレースが知らされる [#p6c446f1]
-自分自身や、他のプロセスから恣意的に送られた SIGTRAP と...
--外から SIGTRAP を送りまくると、orig_eax の値によっては...
-エイラク神によって、PTRACE_SETOPTIONS の存在を知った。こ...
-このオプションがないシステムも考慮したが、そのときは kil...
***PTRACE_O_TRACESYSGOOD オプションの使い方 [#o45c8be8]
ptrace(PTRACE_SETOPTIONS, pid, 0, PTRACE_O_TRACESYSGOOD);
---プロセス pid は停止している必要がある。動いているプロ...
--ここでもはまった。PTRACE_SETOPTIONS の値が i386/sparc ...
---きちんと設定したのに EIO が帰ってくるときは要注意です...
終了行:
[[katsuhiro]] > [[katsuhiro/refmon]] -> katsuhiro/refmon/...
*ptrace 周りの勉強 [#be698a7a]
ネストされたリファレンスモニタを実現するための ptrace の...
**返ってこないシステムコール [#u78dffcf]
***来たときの処理 [#jacbaa3e]
-sys_rt_sigreturn などの戻ってこないシステムコールのとき...
--戻ってこないシステムコールを積むとずっと残ってしまう。
***具体的な関数名 [#td37cb87]
リファレンスモニタは監視対象が発行したシステムコールの呼...
(確認に用いた環境のカーネルは 2.4.31 である)~
返ってくることを確認した
-sys_exitgroup
返ってこないことを確認した
-sys_rt_sigreturn
-sys_exit
--返ってこないのは確かだが、直後に終了してしまうため関係...
未確認だがおそらく返ってこない
-sys_sigreturn
**2.6 系と 2.4 系の差 [#sb4b95ed]
一見似たような動きをするけれども CLONE_PTRACE で子プロセ...
-2.4.31
--clone(flags | CLONE_PTRACE, ...
--SIGTRAP(at clone の出口)
--SIGSTOP(特に何処ということはなく、適当に飛んでくる)
--SIGTRAP(at 次のシステムコールの入り口)
-2.6.13.3
--clone(flags | CLONE_PTRACE, ...
--SIGSTOP(at clone の出口)
--SIGTRAP(at 次のシステムコールの入り口)
それと 2.6系では wait 系をエミュレートしなくてもきちんと...
本当にちゃんと動いているか、要調査。
**2.4 と 2.6 系両方で動かすには [#lbddb286]
2.4 なら一回目の SIGSTOP を無視しても動いたが、2.6 だと最...
**ptrace の困ったところ [#s171ca9f]
***SIGTRAP でトレースが知らされる [#p6c446f1]
-自分自身や、他のプロセスから恣意的に送られた SIGTRAP と...
--外から SIGTRAP を送りまくると、orig_eax の値によっては...
-エイラク神によって、PTRACE_SETOPTIONS の存在を知った。こ...
-このオプションがないシステムも考慮したが、そのときは kil...
***PTRACE_O_TRACESYSGOOD オプションの使い方 [#o45c8be8]
ptrace(PTRACE_SETOPTIONS, pid, 0, PTRACE_O_TRACESYSGOOD);
---プロセス pid は停止している必要がある。動いているプロ...
--ここでもはまった。PTRACE_SETOPTIONS の値が i386/sparc ...
---きちんと設定したのに EIO が帰ってくるときは要注意です...
ページ名: