2014-02-28 5 views
0

PcapDotNet DLL을 내 응용 프로그램에 사용하고 IP Address 패킷을 변경하는 중 IP Address을 제외한 다른 값이 변경된 것 같습니다.PcapDotNet DLL을 사용하여 패킷 IP 주소를 변경 한 후에도 패킷 IP 주소를 제외한 추가 값이 변경됨

private Packet ChangePacketIp(Packet packet, IpV4Address oldIpAddress, IpV4Address newIpAddress) 
{ 
    try 
    { 
     EthernetLayer ethernet = (EthernetLayer)packet.Ethernet.ExtractLayer(); 
     IpV4Layer ipV4Layer = (IpV4Layer)packet.Ethernet.IpV4.ExtractLayer(); 
     IpV4Datagram ipV4Datagram = packet.Ethernet.IpV4; 
     ILayer layer = ipV4Datagram.ExtractLayer(); 
     DateTime packetTimestamp = packet.Timestamp; 
     ILayer payload = packet.Ethernet.IpV4.Payload.ExtractLayer(); 

     if (packet.Ethernet.IpV4.Source == oldIpAddress) 
     { 
      ipV4Layer.Source = newIpAddress; 
      ipV4Layer.HeaderChecksum = null; 
     } 
     else if (packet.Ethernet.IpV4.Destination == oldIpAddress) 
     { 
      ipV4Layer.CurrentDestination = newIpAddress; 
      ipV4Layer.HeaderChecksum = null; 
     } 

     return PacketBuilder.Build(packetTimestamp, ethernet, ipV4Layer, payload); 
    } 
    catch (Exception) 
    { 
     return null; 
    } 
} 

예를 들어, 원래 패킷은 다음과 같습니다 :

http://i.stack.imgur.com/vEWuS.jpg

그리고 IP 주소 후 새로운 패킷이 변경되었습니다

이것은 내가 IP Address을 변경 얼마나입니다

http://s8.postimg.org/4o78hzmyt/New_Packet.jpg

당신이 80.81.82.83212.25.99.74에서 IP Address을 변경 한 후에 볼 수있는 것처럼, 또 다른 2 바이트의 변화 :이 IPv4 패킷 또는 그 버그를 변경하는 방법입니다 7a d6

e6 16에서? 이 2 바이트는 무엇입니까?

+0

http://www.networksorcery.com/enp/protocol/ip.htm –

답변