?? packetah.cpp
字號:
//---------------------------------------------------------------------------
#pragma hdrstop
#include "PacketAH.h"
#include "Functions.h"
#include "PacketICMP.h"
#include "PacketIGMP.h"
//#include "PacketDVMRP.h"
#include "PacketTCP.h"
#include "PacketUDP.h"
//---------------------------------------------------------------------------
/*const int AH_Prot_ICMP = 1;
const int AH_Prot_IGMP = 2;
const int AH_Prot_DVMRP = 2;
const int AH_Prot_TCP = 6;
const int AH_Prot_UDP = 17; */
#pragma package(smart_init)
void PacketAHParser(unsigned char *p_data,int index,Layer layer,Sel *SelInfo,NodeInfo *nodes0,
NodeInfo *nodes1,NodeInfo *nodes2,TTreeView *tvPacket,unsigned int datalength)
{
TTreeNode *mNodex;
//int prot;
String Length;
PACKET_AH PAh;
unsigned int PreviousHttpSequence;
unsigned short LastTftpPort;
mNodex = tvPacket->Items->Add(tvPacket->Selected,"AH ( Authentication Header )");
nodes0->Node[layer.layer1] = mNodex;
SelInfo->Start1[layer.layer1] = index;
if((index+12)>datalength){
tvPacket->Items->AddChild(mNodex,"[ Malformed AH packet. Remaining bytes don't fit an AH packet. Possibly due to bad decoding ]");
return;
}
PAh.NextHeader = *(p_data+index);
SelInfo->Start2[layer.layer1][0] = index;
index += 1;
SelInfo->End2[layer.layer1][0] = index;
nodes1->Node[layer.layer2++] = tvPacket->Items->AddChild(mNodex,"NextHeader : 0x"+IntToHex(PAh.NextHeader,2)+" ( "+IntToStr(PAh.NextHeader)+" ) ");
PAh.Length = *(p_data+index);
SelInfo->Start2[layer.layer1][1] = index;
index += 1;
SelInfo->End2[layer.layer1][1] = index;
nodes1->Node[layer.layer2++] = tvPacket->Items->AddChild(mNodex,"Length : 0x"+IntToHex(PAh.Length,2)+" ( "+IntToStr(PAh.Length)+" ) ");
Length = IntToHex(PAh.Length,2);
PAh.Reserved = Get2Bytes(p_data,index,1);
SelInfo->Start2[layer.layer1][2] = index;
index += 2;
SelInfo->End2[layer.layer1][2] = index;
nodes1->Node[layer.layer2++] = tvPacket->Items->AddChild(mNodex,"Reserved : 0x"+IntToHex(PAh.Reserved,4)+" ( "+PAh.Reserved+" ) ");
PAh.SecurityParametersIndex = Get4Bytes(p_data,index,1);
SelInfo->Start2[layer.layer1][3] = index;
index += 4;
SelInfo->End2[layer.layer1][3] = index;
nodes1->Node[layer.layer2++] = tvPacket->Items->AddChild(mNodex,"SecurityParametersIndex : 0x"+IntToHex((int)PAh.SecurityParametersIndex,8)+" ( "+PAh.SecurityParametersIndex+" ) ");
PAh.SequenceNumber = Get4Bytes(p_data,index,1);
SelInfo->Start2[layer.layer1][4] = index;
index += 4;
SelInfo->End2[layer.layer1][4] = index;
nodes1->Node[layer.layer2++] = tvPacket->Items->AddChild(mNodex,"SequenceNumber : 0x"+IntToHex((int)PAh.SequenceNumber,8)+" ( "+PAh.SequenceNumber+" ) ");
SelInfo->End1[layer.layer1] = index;
/* if(PAh.NextHeader ==1){
layer.layer1 += 1;
PacketICMPParser(p_data,index,datalength,layer,SelInfo,nodes0,nodes1,nodes2,tvPacket);
}
else if(PAh.NextHeader ==2){
layer.layer1 += 1;
PacketIGMPParser(p_data,index,layer,datalength,SelInfo,nodes0,nodes1,nodes2,tvPacket);
}
else if(Length =="c0"){
layer.layer1 += 1;
PacketDVMRPParser(p_data,index,layer,datalength,SelInfo,nodes0,nodes1,nodes2,tvPacket);
}
else if(PAh.NextHeader ==6){
layer.layer1 += 1;
PacketTCPParser(p_data,index,PreviousHttpSequence,layer,datalength,SelInfo,nodes0,nodes1,nodes2,tvPacket);
}
else if(PAh.NextHeader ==17){
layer.layer1 += 1;
PacketUDPParser(p_data,index,LastTftpPort,layer,datalength,SelInfo,nodes0,nodes1,nodes2,tvPacket);
} */
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -