katsuhiro/refmon/todo
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[katsuhiro]] -> [[katsuhiro/refmon]] -> katsuhiro/refmon...
* To Do [#w0d33117]
未解決の問題が山積みでござる。
*制限 [#t220be86]
-setuid されていても実効ユーザ ID は変化しません。
--ptrace の制限です。
*未解決で既知の問題 [#j47e7649]
**シグナルのエミュレーション [#va9a5663]
-sigaction の SA_xxxx というフラグに全対応していない。
-sys_kill やシグナルを受けて停止したときの処理が正しいの...
--man はなんとか動いているみたいだけど。mozilla の起動ス...
原因は恐らく 2.6 系の wait が変な動きをするからだと思う。
-2.6 系は一回 wait してしまうと、ptrace(PTRACE_SYSCALL, ....
--SIGSTOP のエミュレーションとして、以下のような処理を考...
--wait で子プロセスにシグナルが来るのを待つ
--SIGSTOP が来た: 何もしない(子プロセスは TRACED 状態の...
--SIGCONT が来た: ptrace で次に進める(子プロセスは RUNNI...
--再び wait する
--でも残念ながら、SIGSTOP の後、SIGCONT を送っても、リフ...
**スレッド用のシグナルのエミュレーション [#hed994a9]
-tkill や tgkill はまだ。
**clone のエミュレーション [#ufa304bf]
-ptrace の禁止(CLONE_UNTRACED(Linux 2.5.46 以降))が指定さ...
-スレッド ID を返す呼び出し(CLONE_THREAD)の動作はするが、...
-シグナルハンドラの共有(CLONE_SIGHAND)のエミュレーション...
--CLONE_PARENT_SETTID, CLONE_CHILD_SETTID, CLONE_CHILD_CL...
-vfork の動作(CLONE_VFORK)はサポートする予定なし。
**wait のエミュレーション [#wbd41e90]
-外部からスレッドグループを取得する方法が無い。そのため w...
--妥当なやり方としては、clone のフラグを見張って CLONE_TH...
--関連: プロセスグループ ID(pgid)は外部から取れるので特...
-それ以外はなんとかなったっぽい。
-2.4 でさえ面倒なのに、2.6 系だとオプションが増えて、sys_...
-sys_pause と sys_nanosleep の動きがおかしくなってる気が...
--sys_pause は何もしなくても大丈夫?ほんと?
**ptrace のエミュレーション [#r2feef54]
-ptrace しているプロセスはどんなシグナル(無視されるシグ...
-特殊な動きをするシステムコールがある。
--sys_execve のあとに SIGTRAP を送るなど。
-wait 系がおかしくなる動作(2.4系の)をエミュレーションす...
--そうならないようにすべきですね…。
**コールスタックトレース [#aa0eea19]
-sys_mmap2 が来た時はトレースできない。ebp に第 6引数を入...
--関連: sys_mmap の場合は、5個以上の引数を持ったシステム...
**ELF ファイルの読み込み [#p9e3ae9c]
-ELF の定義が難しくてよくわからない。固定配置のセクション...
**ARM へのポーティング [#x53dc245]
-スタックの使い方がまちまちなため、スタックトレースがうま...
--少なくとも gcc は fp を使ってスタックフレームの開始位置...
--リターンアドレスから返る先の関数を調べておいて、関数の...
---strip されると動きませんが、何か?
-システムコール番号を書き換えても反映されない。
--i386 では特に問題のなかった点だった。これはカーネルパッ...
*不安な点 [#lc5ec8f4]
終了行:
[[katsuhiro]] -> [[katsuhiro/refmon]] -> katsuhiro/refmon...
* To Do [#w0d33117]
未解決の問題が山積みでござる。
*制限 [#t220be86]
-setuid されていても実効ユーザ ID は変化しません。
--ptrace の制限です。
*未解決で既知の問題 [#j47e7649]
**シグナルのエミュレーション [#va9a5663]
-sigaction の SA_xxxx というフラグに全対応していない。
-sys_kill やシグナルを受けて停止したときの処理が正しいの...
--man はなんとか動いているみたいだけど。mozilla の起動ス...
原因は恐らく 2.6 系の wait が変な動きをするからだと思う。
-2.6 系は一回 wait してしまうと、ptrace(PTRACE_SYSCALL, ....
--SIGSTOP のエミュレーションとして、以下のような処理を考...
--wait で子プロセスにシグナルが来るのを待つ
--SIGSTOP が来た: 何もしない(子プロセスは TRACED 状態の...
--SIGCONT が来た: ptrace で次に進める(子プロセスは RUNNI...
--再び wait する
--でも残念ながら、SIGSTOP の後、SIGCONT を送っても、リフ...
**スレッド用のシグナルのエミュレーション [#hed994a9]
-tkill や tgkill はまだ。
**clone のエミュレーション [#ufa304bf]
-ptrace の禁止(CLONE_UNTRACED(Linux 2.5.46 以降))が指定さ...
-スレッド ID を返す呼び出し(CLONE_THREAD)の動作はするが、...
-シグナルハンドラの共有(CLONE_SIGHAND)のエミュレーション...
--CLONE_PARENT_SETTID, CLONE_CHILD_SETTID, CLONE_CHILD_CL...
-vfork の動作(CLONE_VFORK)はサポートする予定なし。
**wait のエミュレーション [#wbd41e90]
-外部からスレッドグループを取得する方法が無い。そのため w...
--妥当なやり方としては、clone のフラグを見張って CLONE_TH...
--関連: プロセスグループ ID(pgid)は外部から取れるので特...
-それ以外はなんとかなったっぽい。
-2.4 でさえ面倒なのに、2.6 系だとオプションが増えて、sys_...
-sys_pause と sys_nanosleep の動きがおかしくなってる気が...
--sys_pause は何もしなくても大丈夫?ほんと?
**ptrace のエミュレーション [#r2feef54]
-ptrace しているプロセスはどんなシグナル(無視されるシグ...
-特殊な動きをするシステムコールがある。
--sys_execve のあとに SIGTRAP を送るなど。
-wait 系がおかしくなる動作(2.4系の)をエミュレーションす...
--そうならないようにすべきですね…。
**コールスタックトレース [#aa0eea19]
-sys_mmap2 が来た時はトレースできない。ebp に第 6引数を入...
--関連: sys_mmap の場合は、5個以上の引数を持ったシステム...
**ELF ファイルの読み込み [#p9e3ae9c]
-ELF の定義が難しくてよくわからない。固定配置のセクション...
**ARM へのポーティング [#x53dc245]
-スタックの使い方がまちまちなため、スタックトレースがうま...
--少なくとも gcc は fp を使ってスタックフレームの開始位置...
--リターンアドレスから返る先の関数を調べておいて、関数の...
---strip されると動きませんが、何か?
-システムコール番号を書き換えても反映されない。
--i386 では特に問題のなかった点だった。これはカーネルパッ...
*不安な点 [#lc5ec8f4]
ページ名: