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_)