- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:実行中のプロセスのシステムコールフックについて)
実行中のプロセスのシステムコールフックについて
このQ&Aのポイント
- 実行中のプロセスのシステムコールフックについて質問があります。Linux上の全てのプロセスが使用しているシステムコールとリソースへのアクセスを調査し、同様のソフトウェアをC言語で作成したいと考えています。
- 調査のために、straceというツールを試してみましたが、既に実行されているプロセスのシステムコールをトレースすることはできませんでした。
- 既に実行中のプロセスのシステムコールをフックする方法について教えていただけないでしょうか?開発環境はDebian 4.0、Kernel 2.6.20-16、gcc 4.1.2を使用しています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
straceの-pオプションでプロセスIDを指定することにより、実行中のプロセスにstraceをアタッチすることができたと記憶しています。
その他の回答 (1)
- hiroma1228
- ベストアンサー率85% (12/14)
回答No.2
ptraceではinitへのアタッチは出来ないようですよ。 下記URLの「エラー」の「EPERM」ところを参照。 http://www.linux.or.jp/JM/html/LDP_man-pages/man2/ptrace.2.html
質問者
お礼
ありがとうございます。 デーモン系のプロセスにはどうやらアタッチできないみたいですね。 カーネルをいじる必要があるようです。 お答えいただいて助かりました。
補足
ありがとうございます、こちらの調査不足でした。 プログラムを組んで任意のプロセスにアタッチしようとしたところ アタッチできるプロセスとそうでないプロセスがあることがわかりました。 例えばroot権限でinitにアタッチする場合は受け付けてもらえませんでした。 #strace -o aaa.txt -p 1 attach: ptrace(PTRACE_ATTACH, ...): Operation not permitted 権限がないとのことなのですが、 どのようにすればアタッチできるか教えていただけないでしょうか。