Ethereal-users: Re: [Ethereal-users] ip.checksum filtering
Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.
From: "James E. Flemer" <jflemer@xxxxxxxxxxx>
Date: Wed, 21 Feb 2001 14:16:20 -0500 (EST)
Sorry ... there was a bug in that patch. Here is to right one. To apply the patch, extract the ethereal sources. Change to the source directory (ethereal-0.8.15/) and then run: patch < bad_checksum.diff Then build ethereal as your normally would. -James On Wed, 21 Feb 2001, James E. Flemer wrote: Thanks to the pointers from Hartmut Mueller I got this patched up pretty quickly. I added hidden boolean fields for ip.checksum_bad and icmp.checksum_bad. With this patch you can set a filter of: ip.checksum_bad to just show the packets that don't have matching checksums. Thanks for the help. -James On Wed, 21 Feb 2001, James E. Flemer wrote: > On Tue, 20 Feb 2001, Guy Harris wrote: > > > > I scanned the docs, and google'd for it ... > > > Is there a way to filter ip.checksum to only show packets > > > that have incorrect checksums? > > > > No - a filter expression that checks "ip.checksum" could only compare it > > against a constant, which won't find invalid checksums. Currently, the > > best you could do would be to print the capture to a file (print the > > detail, not the summary), pull the editor into a file and look for > > packets with an incorrect checksum (search for "incorrect") or cook up a > > script that scans through the file, remembers the frame number of the > > current frame, and lists that frame number if it sees a line showing an > > incorrect checksum). > > > > Adding a hidden Boolean field "ip.bad_checksum" (and similar fields for > > other protocols with checksums) might be useful. > Yes I agree that would be nice. :-) > I have a few free hours this afternoon, I'll grab the > sources and see if I can hack this in. Of course I'm not > familiar with the sources (yet) so if someone beats me to > it let me know. > Thanks. > -James > >
*** packet-ip.c.orig Wed Feb 21 11:21:37 2001
--- packet-ip.c Wed Feb 21 11:40:27 2001
***************
*** 86,91 ****
--- 86,92 ----
static int hf_ip_ttl = -1;
static int hf_ip_proto = -1;
static int hf_ip_checksum = -1;
+ static int hf_ip_checksum_bad = 0;
static gint ett_ip = -1;
static gint ett_ip_dsfield = -1;
***************
*** 112,117 ****
--- 113,119 ----
static int hf_icmp_type = -1;
static int hf_icmp_code = -1;
static int hf_icmp_checksum = -1;
+ static int hf_icmp_checksum_bad = 0;
static gint ett_icmp = -1;
***************
*** 894,899 ****
--- 896,902 ----
"Header checksum: 0x%04x (correct)", iph.ip_sum);
}
else {
+ proto_tree_add_item_hidden(ip_tree, hf_ip_checksum_bad, tvb, offset + 10, 2, TRUE);
proto_tree_add_uint_format(ip_tree, hf_ip_checksum, tvb, offset + 10, 2, iph.ip_sum,
"Header checksum: 0x%04x (incorrect, should be 0x%04x)", iph.ip_sum,
in_cksum_shouldbe(iph.ip_sum, ipsum));
***************
*** 1124,1129 ****
--- 1127,1134 ----
cksum,
"Checksum: 0x%04x (correct)", cksum);
} else {
+ proto_tree_add_item_hidden(icmp_tree, hf_icmp_checksum_bad,
+ tvb, 2, 2, TRUE);
proto_tree_add_uint_format(icmp_tree, hf_icmp_checksum, tvb, 2, 2,
cksum,
"Checksum: 0x%04x (incorrect, should be 0x%04x)",
***************
*** 1447,1452 ****
--- 1452,1461 ----
{ &hf_ip_checksum,
{ "Header checksum", "ip.checksum", FT_UINT16, BASE_HEX, NULL, 0x0,
"" }},
+
+ { &hf_ip_checksum_bad,
+ { "Bad Header checksum", "ip.checksum_bad", FT_BOOLEAN, 4, NULL, 0x0,
+ "" }},
};
static gint *ett[] = {
&ett_ip,
***************
*** 1508,1513 ****
--- 1517,1526 ----
{ &hf_icmp_checksum,
{ "Checksum", "icmp.checksum", FT_UINT16, BASE_HEX, NULL, 0x0,
"" }},
+
+ { &hf_icmp_checksum_bad,
+ { "Bad Checksum", "icmp.checksum_bad", FT_BOOLEAN, 4, NULL, 0x0,
+ "" }},
};
static gint *ett[] = {
&ett_icmp,
- Follow-Ups:
- Re: [Ethereal-users] ip.checksum filtering
- From: Guy Harris
- Re: [Ethereal-users] ip.checksum filtering
- References:
- Re: [Ethereal-users] ip.checksum filtering
- From: James E. Flemer
- Re: [Ethereal-users] ip.checksum filtering
- Prev by Date: FW: [Ethereal-users] How to identify a runt and its source
- Next by Date: Re: [Ethereal-users] ip.checksum filtering
- Previous by thread: Re: [Ethereal-users] ip.checksum filtering
- Next by thread: Re: [Ethereal-users] ip.checksum filtering
- Index(es):