Jeśli
sudo tcpdump -i eth0 -X
daje mi
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
16:16:11.837543 IP cnt62-i386.gci.xxxx.org.ssh > jazz.gci.xxxx.org.49283: Flags [P.], seq 291677310:291677502, ack 4122992911, win 1002, options [nop,nop,TS val 2421999802 ecr 2194736071], length 192
0x0000: 4510 00f4 7f77 4000 4006 7f84 ac16 f184 E....w@.@.......
0x0010: ac16 f146 0016 c083 1162 a47e f5bf e10f ...F.....b.~....
...
jak filtrować wyświetlane dane (np. początkową wartość szesnastkową 45)?
W szczególności,
sudo tcpdump -i eth0 -X 'tcp[0]=0x45'
sudo tcpdump -i eth0 -X 'tcp[12]=0x45'
sudo tcpdump -i eth0 -X 'tcp[14]=0x45'
sudo tcpdump -i eth0 -X 'tcp[20]=0x45'
wszystkie nie dają żadnych dopasowań (przy użyciu różnych odsunięć od losowo i bezsensownie googlujących się).
tcp[0]
po 20 bajtachip[0]
jest 0x00, następnie 0x16, następnie 0xc0, a następnie 0x83. Jest to jednak HEADER TCP , a nie TCP PAYLOAD , więc jeśli chcesz filtrować dane przesyłane przez TCP, musisz pominąć nagłówek TCP (który ma zmienną długość, podobnie jak nagłówek IP).