溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何使用IPCDump在Linux上跟蹤進程間通信

發(fā)布時間:2021-11-23 15:00:23 來源:億速云 閱讀:439 作者:iii 欄目:網(wǎng)絡(luò)安全

這篇文章主要講解了“如何使用IPCDump在Linux上跟蹤進程間通信”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“如何使用IPCDump在Linux上跟蹤進程間通信”吧!

IPCDump

IPCDump這款工具可以幫助廣大研究人員在Linux操作系統(tǒng)上跟蹤進程間通信(IPC)。該工具覆蓋了大多數(shù)常見的IPC機制,比如說管道、FIFO、Unix套接字、基于環(huán)回的網(wǎng)絡(luò)和偽終端等等。

該工具有助于研究和調(diào)試多進程引用程序,而且還可以幫助了解操作系統(tǒng)通信過程中不同組件之間的關(guān)聯(lián)。IPCDump可以跟蹤此通信的元數(shù)據(jù)和內(nèi)容,它特別適合在短生命周期的進程之間跟蹤IPC,而這種任務(wù)對于傳統(tǒng)的調(diào)試工具來說比較困難,如strace或gdb。它還有一些基本的過濾功能,可以幫助你篩選大量的事件。IPCDump收集的大部分信息來自放置在內(nèi)核中關(guān)鍵函數(shù)的kprobes和跟蹤點上的BPF鉤子。為此,IPCDump使用了gobpf,它可以為bcc框架提供Golang綁定功能。

功能介紹

  • 支持管道和FIFO;

  • 回環(huán)IPC;

  • 信號(常規(guī)和實時);

  • Unix流和數(shù)據(jù)圖表;

  • 基于偽終端的IPC;

  • 基于進程PID或進程名的事件過濾器;

  • 可讀性高或JSON格式的輸出數(shù)據(jù);

工具要求&使用

  • Golang >= 1.15.6

已測試平臺和內(nèi)核

軟件版本

Ubuntu 18.04 LTS

Ubuntu 20.04 LTS

4.15.0

已測試

未測試

5.4.0

未測試

已測試

5.8.0

未測試

已測試

工具構(gòu)建

依賴組件

首先,我們需要安裝Golang:

snap install go --classic

接下來,在操作系統(tǒng)上安裝好BCC即可。

構(gòu)建IPCDump

git clone https://github.com/guardicore/IPCDump

cd IPCDump/cmd/ipcdump

go build

工具使用

./ipcdump -h

Usage of ./ipcdump:

  -B uint

        max number of bytes to dump per event, or 0 for complete event (may be large). meaningful only if -x is specified.

  -D value

        filter by destination comm (can be specified more than once)

  -L    do not output lost event information

  -P value

        filter by comm (either source or destination, can be specified more than once)

  -S value

        filter by source comm (can be specified more than once)

  -c uint

        exit after <count> events

  -d value

        filter by destination pid (can be specified more than once)

  -f string

        <text|json> output format (default is text) (default "text")

  -p value

        filter by pid (either source or destination, can be specified more than once)

  -s value

        filter by source pid (can be specified more than once)

  -t value

        filter by type (can be specified more than once).

        possible values: a|all  k|signal  u|unix  ud|unix-dgram  us|unix-stream  t|pty  lo|loopback  lt|loopback-tcp  lu|loopback-udp  p|pipe

  -x    dump IPC bytes where relevant (rather than just event details).

One-liner

以Root權(quán)限運行:

# 導出目標系統(tǒng)中所有的IPC

./ipcdump

 

# 導出任意兩個進程間的通信信號

./ipcdump -t kill

 

# 導出跟PID 1337相關(guān)的所有回環(huán)TCP連接

./ipcdump -t loopback-tcp -p 1337

 

# 導出Unix套接字IPC元數(shù)據(jù)和內(nèi)容

./ipcdump -t unix -x -S Xorg

 

# 導出JSON格式的管道I/O元數(shù)據(jù)和前64字節(jié)的數(shù)據(jù)內(nèi)容

./ipcdump -t pipe -x -B 64 -f json

感謝各位的閱讀,以上就是“如何使用IPCDump在Linux上跟蹤進程間通信”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對如何使用IPCDump在Linux上跟蹤進程間通信這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI