Xはデスクトップ全体のスクリーンショットを撮ることができます。私はこれらの呼び出しが行われたら、サーバーレベルで呼び出しをパッチするのではなく、ebpfやsysdigのようなものを検出したいと思います。どうすればいいですか?これもできるプログラムがありますか?
答え1
[回答よりもコメントが多いが、コメントが長すぎます。]
これを実行するプログラムは、次のメカニズムを介してサーバーレベルでX11呼び出しを接続する必要があります。XACE
、 ~ebpf または sysdig がカーネル呼び出しに対して実行するのと同じです).私はこれを行う既製の製品を知りませんが、この問題について多くの研究を実行していません。 ;-)
X11 クライアントが実行した要求を監視する場合は、次のものを使用できます。RECORD
拡張子(例:xtruss
実際には、またはクライアントがX11プロキシを通過することを強制します。xscope
ルートウィンドウをソース(またはこのクライアントが所有していないウィンドウ/ピックスマップ)として使用して、CopyArea
要求などを見つけます。GetImage
全体として、X11アプリケーションが「スクリーンショット」を撮ることができるかどうかに集中しすぎることは意味がありません。なぜなら、X11サーバーにアクセスできるすべてのプログラムは、より多くのことを行うことができ、信頼できない場合は放置してはいけません。約。さらに、同じユーザで実行されるローカルプロセスは、ptrace(2)
互いに通信し、互いにメモリを直接読み取ることもできます。
答え2
はい、X11アプリがスクリーンショットを撮るかどうか疑問に思うよりも、他のものに集中したいのですが、今は問題を解決する必要があるようです。
これらのx11フックを作成する方法についてのオンライン資料はないようですが、xtrussを見てみましょう。
私は今xtrussを実行しています。 xwininfo -root -tree から取得した X ID を使用して xtruss を設定してリソースを監視しました。ただし、xwd -i -outファイルを実行すると、xtrussは何も報告しません。テスト方法が間違っていますか?