www.pudn.com > IPFlood.rar > IPFloodDlg.h


// IPFloodDlg.h : header file 
// 
 
#if !defined(AFX_IPFLOODDLG_H__7112BB3D_4A38_4183_890C_1A64168F86B8__INCLUDED_) 
#define AFX_IPFLOODDLG_H__7112BB3D_4A38_4183_890C_1A64168F86B8__INCLUDED_ 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
 
#include "SetupDlg.h" 
#include "RegisterDlg.h" 
#include "md5.h" 
#include  
 
///////////////////////////////////////////////////////////////////////////// 
// CRegisterDlg dialog 
 
#define		OID_802_3_PERMANENT_ADDRESS		0x01010101 
 
#define		FILE_DEVICE_PHYSICAL_NETCARD    0x00000017 
#define		METHOD_IN_DIRECT				1 
#define		METHOD_OUT_DIRECT               2 
#define		FILE_READ_ACCESS				( 0x0001 ) 
#define		FILE_ANY_ACCESS                 0 
#define CTL_CODE( DeviceType, Function, Method, Access ) (                 \ 
    ((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method) \ 
) 
#define		_NDIS_CONTROL_CODE(request,method) \ 
				CTL_CODE(FILE_DEVICE_PHYSICAL_NETCARD, request, method,FILE_ANY_ACCESS) 
#define		IOCTL_NDIS_QUERY_GLOBAL_STATS	_NDIS_CONTROL_CODE( 0, METHOD_OUT_DIRECT ) 
 
#define		MAXLEN		128 
#define		MAXADAPTER	10 
#define		WM_SHOWTASK WM_USER+1 
 
/* 
	BYTE	:	1		SHORT	:	2		INT		:	4 
	LONG	:	4		WORD	:	2		DWORD	:	4	LONGLONG	:	8 
*/ 
typedef struct __MAC_hdr //定义802.3 MAC首部  
{ 
	char	DestMAC[6]; 
	char	SrcMAC[6]; 
	USHORT	MACProto; 
	USHORT	MACLen; 
}	MACHDR,*pMACHDR; 
 
typedef struct __ip_hdr //定义IP首部  
{  
	BYTE	VHlen; 
	BYTE	Tos; 
	USHORT	TLen; 
	USHORT	Ident; 
	USHORT	FragOffset; 
	BYTE	TTL; 
	BYTE	Protocol; 
	USHORT	Checksum; 
	UINT	SrcIP; 
	UINT	DestIP; 
}	IPHDR,*pIPHDR;  
 
typedef struct __icmp_hdr 
{ // echo and echo reply 
	BYTE	type; 
	BYTE	code; 
	USHORT	checksum; 
	USHORT	Ident; 
	USHORT	Seqence; 
}	ICMPHDR,*pICMPHDR; 
 
typedef struct __tcp_hdr 
{//no options 
	USHORT	SrcPort; 
	USHORT	DestPort; 
	UINT	Sequence; 
	UINT	Ack; 
	BYTE	Offset; 
	BYTE	Flag; 
	USHORT	Winsize; 
	USHORT	Checksum; 
	USHORT	Ptr; 
}	TCPHDR,*pTCPHDR; 
 
typedef struct	__udp_hdr 
{ 
	USHORT	SrcPort; 
	USHORT	DestPort; 
	USHORT	TLen; 
	USHORT	Checksum; 
}	UDPHDR,*pUDPHDR; 
 
typedef struct __ps_hdr_ 
{ 
	BYTE	mbz; 
	BYTE	ip_protocol; 
	USHORT	t_len; 
	UINT	ipsrc; 
	UINT	ipdest; 
}	PSHDR,*pPSHDR; 
 
typedef struct	__TaskItem 
{ 
	UINT	m_TaskID; 
	USHORT	m_SendMode; 
	char	m_SrcMAC[7]; 
	char	m_DestMAC[7]; 
	USHORT	m_MacProto; 
	USHORT	m_MacLen; 
	BOOL	m_IncSrcMAC; 
	BOOL	m_RandSrcMAC; 
	BOOL	m_IncDestMAC; 
	BOOL	m_RandDestMAC; 
	BYTE	m_IcmpCode; 
	BYTE	m_IcmpType; 
	BYTE	m_IpProtocol; 
	USHORT	m_IpLen; 
	DWORD	m_Number; 
	USHORT	m_IpFragOffset; 
	UINT	m_PPS; 
	BOOL	m_IpRandom; 
	BYTE	m_IpTos; 
	BYTE	m_IpTTL; 
	USHORT	m_PDestPort; 
	USHORT	m_PSrcPort; 
	USHORT	m_TcpPtr; 
	BYTE	m_TcpFlag; 
	ULONG	m_TcpAckNumber; 
	BOOL	m_State; 
	BOOL	m_RandomSrcIp; 
	BOOL	m_RandomDestIp; 
	BOOL	m_SpecialSrcIp; 
	BOOL	m_IncSrcIP; 
	BOOL	m_IncDestIP; 
	BOOL	m_Ipchk; 
	USHORT	m_Ipchksum; 
	BOOL	m_FillRandom; 
	BYTE	m_FillVal; 
	UINT	m_ProcessID; 
	DWORD	m_sent; 
	DWORD	m_DestIP; 
	DWORD	m_SrcIP; 
	DWORD	m_MyPPS; 
	DWORD	m_SendErrors; 
	CRITICAL_SECTION m_CriticalSetion; 
	struct	__TaskItem *next; 
}	TaskItem,*pTaskItem; 
 
typedef struct __Adapter_info 
{ 
	char mac[18]; 
	char desc[MAXLEN]; 
}	ADAPTER,*pADAPTER; 
 
typedef struct _PACKET_OID_DATA { 
    ULONG Oid; 
	ULONG Length; 
    UCHAR Data[1]; 
}	PACKET_OID_DATA, *PPACKET_OID_DATA; 
 
///////////////////////////////////////////////////////////////////////////// 
// CIPFloodDlg dialog 
 
class CIPFloodDlg : public CDialog 
{ 
// Construction 
public: 
	BOOL GetAdapters(); 
	BOOL CheckReg(); 
	virtual BOOL PreTranslateMessage(MSG* pMsg); 
	CIPFloodDlg(CWnd* pParent = NULL);	// standard constructor 
	LRESULT onShowTask(WPARAM wParam,LPARAM lParam); 
	virtual void OnOK(); 
	virtual void OnCancel(); 
	 
	CSetupDlg m_SetupDlg; 
	CRegisterDlg m_RegisterDlg; 
	NOTIFYICONDATA nid; 
	pTaskItem	pTaskList; 
	BOOL		m_RegPassed; 
	BOOL		SetupDlgShow; 
 
	ADAPTER	Adapters[MAXADAPTER]; 
 
	CRITICAL_SECTION CSGetAdapters; 
	// Should use Global CTypedPtrList  TaskList, 
	// and comment the *next member,now I do it myself.	 
// Dialog Data 
	//{{AFX_DATA(CIPFloodDlg) 
	enum { IDD = IDD_IPFLOOD_DIALOG }; 
	CListCtrl	m_TaskList; 
 
	//}}AFX_DATA 
 
	// ClassWizard generated virtual function overrides 
	//{{AFX_VIRTUAL(CIPFloodDlg) 
	protected: 
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV support 
	//}}AFX_VIRTUAL 
 
// Implementation 
protected: 
	CToolTipCtrl	m_tooltip; 
	HICON m_hIcon; 
 
	// Generated message map functions 
	//{{AFX_MSG(CIPFloodDlg) 
	virtual BOOL OnInitDialog(); 
	afx_msg void OnSysCommand(UINT nID, LPARAM lParam); 
	afx_msg void OnPaint(); 
	afx_msg HCURSOR OnQueryDragIcon(); 
	afx_msg void OnTrayadd(); 
	afx_msg void OnTrayshow(); 
	afx_msg void OnTrayexit(); 
	afx_msg void OnTimer(UINT nIDEvent); 
	afx_msg void OnRclickTasklist(NMHDR* pNMHDR, LRESULT* pResult); 
	afx_msg void OnTasklistaddtask(); 
	afx_msg void OnTasklistdeltask(); 
	afx_msg void OnTaskliststarttask(); 
	afx_msg void OnTaskliststoptask(); 
	afx_msg void OnTasklistabout(); 
	afx_msg void OnTasklistquit(); 
	afx_msg void OnTasklistreadme(); 
	afx_msg void OnTrayreadme(); 
	afx_msg void OnTrayabout(); 
	afx_msg void OnTasklisttray(); 
	//}}AFX_MSG 
	DECLARE_MESSAGE_MAP() 
}; 
 
//{{AFX_INSERT_LOCATION}} 
// Microsoft Visual C++ will insert additional declarations immediately before the previous line. 
 
#endif // !defined(AFX_IPFLOODDLG_H__7112BB3D_4A38_4183_890C_1A64168F86B8__INCLUDED_)