[Winpcap-users] UDP Checksum

leekyung moon gilgil1973 at hotmail.com
Mon Aug 25 10:45:54 GMT 2008


Hi, all, this is code of calculation udp checksum.

http://www.gilgil.co.kr/snoop/

//
// All UDPHdr field except UDPHdr.Checksum
// IPHdr.Source, IPHdr.Destination, UDPHdrLen
//
function snoopUDPChecksum(IPHdr: PIP_HDR; UDPHdr: PUDP_HDR): UINT16;
var
  i: Integer;
  UDPHdrLen: Integer;
  Source, Destination: UINT32;
  Sum: UINT32;
  p: PUINT16;
begin
  UDPHdrLen := ntohs(UDPHdr.Len);
  Sum := 0;

  // Add UDPHdr and Data Buffer as array of UINT16
  p := PUINT16(UDPHdr);
  for i := 0 to UDPHdrLen div 2 - 1 do
  begin
    Sum := Sum + htons(p^);
    inc(p);
  end;

  // if Len is OddNumber, Add Last Data
  if (UDPHdrLen div 2) * 2 <> UDPHdrLen then
    Sum := Sum + (htons(p^) and $FF00);

  // Decrease Checksum from Sum
  Sum := Sum - ntohs(UDPHdr.Checksum);

  // Add Source Address
  Source := ntohl(IPHdr.Source);
  Sum := Sum + ((Source and $FFFF0000) shr 16) + (Source and $0000FFFF);

  // Add Destination Addres
  Destination := ntohl(IPHdr.Destination);
  Sum := Sum + ((Destination and $FFFF0000) shr 16) + (Destination and $0000FFFF);

  // Add Extra Information
  Sum := Sum + PROTO_UDP + UINT32(UDPHdrLen);

  // Recalculate Sum
  while (Sum shr 16) > 0 do
    Sum := (Sum and $FFFF) + (Sum shr 16);
  Sum := not Sum;

  Result := UINT16(Sum);
end;

From: gianluca.varenni at cacetech.com
To: winpcap-users at winpcap.org
Subject: Re: [Winpcap-users] UDP Checksum
Date: Tue, 19 Aug 2008 13:12:32 -0700










I would have a look at
- the tcpdump source code
- the wireshark source code
 
Have a nice day
GV

  ----- Original Message ----- 
  From: 
  Gangadharan, Sandeep 
  To: winpcap-users at winpcap.org 
  Sent: Tuesday, August 19, 2008 4:01 
  AM
  Subject: [Winpcap-users] UDP 
  Checksum
  

  
  Anyone has a sample code to do udp checksum calculation? 
  
   
  
  

  _______________________________________________
Winpcap-users 
  mailing list
Winpcap-users at winpcap.org
https://www.winpcap.org/mailman/listinfo/winpcap-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.winpcap.org/pipermail/winpcap-users/attachments/20080825/7d034c50/attachment.htm


More information about the Winpcap-users mailing list