2014-03-26 70 views
2

我需要做一個關於分析一些數據包功課。
我發現BPF過濾是我的功課是一件好事,我希望篩選具有與類似「測試一下」的特定字符串開頭的有效載荷的所有數據包。數據包是TCP,UDP和ICMP的組合,有些甚至可能沒有有效負載。
如何設置過濾器?如何使用BPF過濾器來過濾數據包有效載荷?

回答

0

我找到了答案,
http://www.foo.be/cours/dess-20112012/bpf/bpf.pdf

本PDF

,有談論BPF語法來篩選有效載荷的地方。以下是從PDF,這樣,我們就可以使用BPF跳過頭
一個例子,你想在TCP有效載荷匹配「GE」的字符串:
回聲-n「GE」 | hexdump都-C 47 45 | GE |
sudo tcpdump -s0 -n -i ath0「tcp [20:2] = 0x4745」

+1

我確實認爲原始問題是關於「浮動」文本匹配。你的例子假定一個文本字符串從開頭的固定偏移量開始。 BPF不會執行「浮動文本匹配」。 –

+0

BPF在過去幾年中經歷了一些返工,新版本現在可以實現一些向後跳轉。它仍然有循環的限制,所以我不知道你是否可以在有效載荷的_each_偏移處測試字符串的存在......可能有趣的檢查。 – Qeole