2017-08-07 51 views
0

Wireshark中有錯誤嗎?Wireshark UDP過濾十六進制無法正常工作不?

不正確 過濾ip.addr == 10.222.22.77和UDP包含0a2001112233 正確 是否過濾ip.addr == 10.222.22.77和UDP包含0a20

Frame 9594: 74 bytes on wire (592 bits), 74 bytes captured (592 bits) on 
interface 0 
Ethernet II, Src: QQ!! (ZZ!!), Dst: BrocadeC_16:d4:00 (XX!!) 
Internet Protocol Version 4, Src: 10.222.22.82, Dst: 10.222.22.77 
User Datagram Protocol, Src Port: 6060, Dst Port: 6060 
Data (32 bytes) 
Data: 0a20011122334455660000000a05000631090000082a0000... 
[Length: 32] 

回答

0

你可以嘗試:

ip.addr == 10.222.22.77 and udp contains 0a:20:01:11:22:33 

編輯:如果你有dftest,你可以運行dftest "udp contains 0a20",你會得到:

Filter: "udp contains 0a20" 

Constants: 
00000 PUT_FVALUE  0a:20 <FT_PROTOCOL> -> reg#1 

Instructions: 
00000 READ_TREE   udp -> reg#0 
00001 IF-FALSE-GOTO  3 
00002 ANY_CONTAINS  reg#0 contains reg#1 
00003 RETURN 

...然後與之比較的dftest "udp contains 0a2001112233"

Filter: "udp contains 0a2001112233" 

Constants: 
00000 PUT_FVALUE  30:61:32:30:30:31:31:31:32:32:33:33 <FT_PROTOCOL> -> reg#1 

Instructions: 
00000 READ_TREE   udp -> reg#0 
00001 IF-FALSE-GOTO  3 
00002 ANY_CONTAINS  reg#0 contains reg#1 
00003 RETURN 

要從wireshark-filter手冊頁報:

的 「contains」 運營商允許過濾器來搜索字符序列,表示爲一個字符串(帶引號或不帶引號)或字節,表示爲一個字節數組,或者表示爲一個C字符常量的單個字符。

在前一種情況下,Wireshark將數據解釋爲字節數組,但在後一種情況下,它將數據解釋爲未加引號的字符串,因此通過在字節之間包含冒號來指示Wireshark解釋數據作爲字節數組,這是意圖。

我不知道這種行爲(將1或2個字節解釋爲字節數組,但將任何多於2個解釋爲字符串)應該被認爲是Wireshark錯誤,但也許它應該在哪種情況下可隨意提交Wireshark bug。不過,這是當前的行爲,所以最好的做法是在每個字節之後總是添加冒號,以便搜索字節,以便Wireshark按預期工作。

+0

這有些如何工作。長度限於字符串一些如何? – Sein3i8

+0

我修改了我的答案以提供更詳細的解釋。 –