• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:実行中のプロセスのシステムコールフックについて)

実行中のプロセスのシステムコールフックについて

このQ&Aのポイント
  • 実行中のプロセスのシステムコールフックについて質問があります。Linux上の全てのプロセスが使用しているシステムコールとリソースへのアクセスを調査し、同様のソフトウェアをC言語で作成したいと考えています。
  • 調査のために、straceというツールを試してみましたが、既に実行されているプロセスのシステムコールをトレースすることはできませんでした。
  • 既に実行中のプロセスのシステムコールをフックする方法について教えていただけないでしょうか?開発環境はDebian 4.0、Kernel 2.6.20-16、gcc 4.1.2を使用しています。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

straceの-pオプションでプロセスIDを指定することにより、実行中のプロセスにstraceをアタッチすることができたと記憶しています。

oh_yeah
質問者

補足

ありがとうございます、こちらの調査不足でした。 プログラムを組んで任意のプロセスにアタッチしようとしたところ アタッチできるプロセスとそうでないプロセスがあることがわかりました。 例えばroot権限でinitにアタッチする場合は受け付けてもらえませんでした。 #strace -o aaa.txt -p 1 attach: ptrace(PTRACE_ATTACH, ...): Operation not permitted 権限がないとのことなのですが、 どのようにすればアタッチできるか教えていただけないでしょうか。

その他の回答 (1)

回答No.2

ptraceではinitへのアタッチは出来ないようですよ。 下記URLの「エラー」の「EPERM」ところを参照。 http://www.linux.or.jp/JM/html/LDP_man-pages/man2/ptrace.2.html

参考URL:
http://www.linux.or.jp/JM/html/LDP_man-pages/man2/ptrace.2.html
oh_yeah
質問者

お礼

ありがとうございます。 デーモン系のプロセスにはどうやらアタッチできないみたいですね。 カーネルをいじる必要があるようです。 お答えいただいて助かりました。

関連するQ&A