2017-02-24 12 views
0

私は、特定のファイルに対してstat呼び出しをインターセプトして、すぐに検出されたアクションをすぐに実行したいと思います。Linuxファイルシステムのファイルでstat呼び出しを傍受することはできますか? (ユーザー空間から)

これまで、私はINotifyライブラリを使っていましたが、ファイルを開く/書き込む/閉じるときに私のために働いただけです。私が正しく覚えていれば、statはファイルシステム上のiノードの内容を読み込みます。ユーザー空間でバイナリを実行してコールを傍受する最善の方法でしょうか?

これは、ユーザー空間からのシステムコールを傍受するためにも一般化できると思いますか?

はまた、私は私がターゲットてるプロセスを知っていますか、それはなど

おかげで実行したときを制御することはできませんのでご注意したいです!

答えて

0

技術は、function interpositionとして知られている可能性があります。

起動環境を起動または制御して、環境変数LD_PRELOADを設定できるアプリケーションで使用できます。

+0

残念ながら、私はスタートアップ環境を制御することができず、バイナリはルートの下で実行されますが、私はあまり特権のないユーザーの下で実行されています。これはずっと難しいことですが、私はカーネルに変更を加えなければ不可能だと思っています。リンクに感謝していますが、このテクニックは関連する作業に役立ちます! –

+0

@AzeemIlyasこの場合、他のアプリケーションを破壊することはできません。セキュリティ機能です。 –

0

ライブラリー・レベルの関数ハイジャックは、LD_PRELOADとすることができますが、これはsetuid/setgidではない動的リンクバイナリーに対してのみ機能します。静的またはsetuid/setgidバイナリの場合、カーネルレベルで関数をハイジャックするためにカーネルモジュールを実装する必要があります。

関連する問題