网络安全参考 | UNIX参考 | GPS参考 | 无线参考 | 在线手册 | OSBUG.ORG | SUNNY-NETWORK.COM
网站地图 RSS订阅
高级搜索 收藏本站
Home | 业界动态 | 防火墙 | IDS/IPS | VPN | PKI | Honeypot | Hacker/Intruder | 黑客技术 | 破解技术 | 加密技术 | 病毒防护 | 木马 | 反垃圾邮件 | 反流氓软件 | 漏洞 | 无线安全 | UNIX | Windows | 安全编程 | 安全软件 | TPM/TCG | 数据恢复 | 企业信息安全 | 个人信息安全
 当前位置: Home > 安全编程 > 网络编程 > 文章  
原始套接字透析之综合实例:网络黑手
文章来源: 天极开发 文章作者: 宋宝华 发布时间: 2006-11-17   字体: [ ]
 

 m_hostList.SetText(i + 1, 5, "OFF");
}

m_hostList.Invalidate();

  上述代码的思路是给fromip~min(myip-1,toip),myip+1~toip范围内的主机发送ARP请求报文并监控其ARP回复,从而获得其IP与MAC的对应关系。当然,它首先用了同样的原理来获取本机的MAC地址。

  为了在表格的垂直滚动条滚动时正确的设置滚动条的位置和显示正确的主机列表,我们应该给XTable添加垂直滚动条消息处理函数:

void XTable::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar *pScrollBar)
{
 // TODO: Add your message handler code here and/or call default
 static UINT nVWndPos = 0;
 switch (nSBCode)
 {
  case SB_LINEDOWN:
  case SB_PAGEDOWN:
   nPos = nVWndPos + 13;
   SetScrollPos(SB_VERT, nPos);
   nVWndPos = nPos;
   break;
  case SB_LINEUP:
  case SB_PAGEUP:
   nPos = nVWndPos - 13;
   SetScrollPos(SB_VERT, nPos);
   nVWndPos = nPos;
   break;
  case SB_THUMBTRACK:
   SetScrollPos(SB_VERT, nPos);
   nVWndPos = nPos;
   break;
 }

 for (int i = nVWndPos / 13, j = 0; i < currentHstIndex; i++, j++)
 {
  CString str;
  SetText(j + 1, 0, inet_ntoa(*(struct in_addr*)(&(hostList[i].ip))));

  if (hostList[i].sniffer == 0)
   SetText(j + 1, 2, "OFF");
  else
   SetText(j + 1, 2, "ON");

  str.Format("%02x-%02x-%02x-%02x-%02x-%02x", hostList[i].mac[0],
   hostList[i].mac[1], hostList[i].mac[2], hostList[i].mac[3],
   hostList[i].mac[4], hostList[i].mac[5]);
  SetText(i + 1, 1, str);

  if (hostList[i].arpCheat == 0)
   SetText(j + 1, 3, "OFF");
  else
   SetText(j + 1, 3, "ON");
  if (hostList[i].ipConflict == 0)
   SetText(j + 1, 4, "OFF");
  else
   SetText(j + 1, 4, "ON");
 }
 for (; j < MAX_HOST; j++)
 {
  for (int k = 0; k < 5; k++)
   SetText(j + 1, k, "");
 }

 Invalidate();

 CWnd::OnVScroll(nSBCode, nPos, pScrollBar);
}

  上述程序依赖于监控(sniffer)相关代码,核心代码如下:

DWORD WINAPI Sniff(void *p)
{
 char recvbuf[1024 *250];

 memset(packetList, 0, MAX_PACKET *sizeof(PacketList));
 if (PacketSetHwFilter(lpadapter, NDIS_PACKET_TYPE_PROMISCUOUS) == FALSE)

 
推荐文章
·洪水攻击原理及代码实现全攻略(
·原始套接字透析之实现IP地址欺骗
·原始套接字透析之ARP欺骗
·原始套接字透析之实现包分析
·原始套接字透析之实现sniffer
·原始套接字透析之实现路由欺骗
·原始套接字透析之ICMP拒绝服务攻
·原始套接字透析之实现Ping
·原始套接字透析之Raw Socket基础
·黑客之旅 -- 原始套接字透析之前
 

 
共15页: 上一页 [1] [2] [3] [4] [5] 6 [7] [8] [9] [10] [11] [12] [13] [14] [15] 下一页
↑返回顶部   打印本页   关闭窗口↓  

Google
 
Web oldhand.org unixreference.net meshmea.org
热点文章
·原始套接字透析之Raw So
·原始套接字透析之ARP欺
·洪水攻击原理及代码实现
·原始套接字透析之实现Pi
·黑客之旅 -- 原始套接字
·原始套接字透析之实现路
·原始套接字透析之实现包
·原始套接字透析之ICMP拒
相关分类
相关文章
·洪水攻击原理及代码实现
·原始套接字透析之实现IP
·原始套接字透析之ARP欺
·原始套接字透析之实现包
·原始套接字透析之实现sn
·原始套接字透析之实现路
·原始套接字透析之ICMP拒
·原始套接字透析之实现Pi
更多...
 
 

Copyright(c) 2001-2008 OLDHAND ORGANIZATION, All Rights reserved.
Power by DedeCms 织梦内容管理系统
$Id: article_article.html,v 1.3 2007/02/10 12:00:37 yjs Exp $