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

       TCP_HEADER *pTcpHeader;
       pTcpHeader = (TCP_HEADER*)(pChar + sizeof(ETHDR) + (ip->h_lenver &0xf) *4);
       packetList[currentPktIndex].srcPort = ntohs(pTcpHeader->th_sport);
       packetList[currentPktIndex].desPort = ntohs(pTcpHeader->th_dport);

       memcpy(packetList[currentPktIndex].data, pChar + sizeof(ETHDR) + (ip->h_lenver &0xf) *4+20, 255);
       packetList[currentPktIndex].data[255] = 0;
       break;
      case IPPROTO_UDP:
       UDP_HEADER *pUdpHeader;
       pUdpHeader = (UDP_HEADER*)(pChar + sizeof(ETHDR) + (ip->h_lenver &0xf) *4);
       packetList[currentPktIndex].srcPort = ntohs(pUdpHeader->uh_sport);
       packetList[currentPktIndex].desPort = ntohs(pUdpHeader->uh_dport);
       memcpy(packetList[currentPktIndex].data, pChar + sizeof(ETHDR) + (ip->h_lenver &0xf) *4+sizeof(UDP_HEADER), 256);
       packetList[currentPktIndex].data[255] = 0;
       break;
      default:
       packetList[currentPktIndex].data[0] = 0;
       break;
     }
     currentPktIndex++;
     currentPktIndex %= MAX_PACKET;
     if (currentPktIndex == 0)
      mailDlg->PostMessage(RECV_PKT);
     break;
    }
   }
  continue;
 }
 else if (eth->eh_type == htons(ETH_ARP))
 {
  if (arp->arp_tpa == htonl(myip) && arp->arp_opt == htons(ARP_REPLY))
  {
   int i;
   for (i = 0; i < currentHstIndex; i++)
   {
    if (hostList[i].ip == arp->arp_spa)
    {
     break;
    }
   }
   if (i >= currentHstIndex)
   {
    hostList[currentHstIndex].ip = arp->arp_spa;
    memcpy(hostList[currentHstIndex].mac, eth->eh_src, 6);
    currentHstIndex++;
   }
  }
  else if (arp->arp_spa == htonl(myip) && arp->arp_opt == htons(ARP_REPLY))
   memcpy(mmac, eth->eh_src, 6);
   for (int i = 0; i < oldHstIndex; i++)
   {
    if ((oldHostList[i].ip == arp->arp_spa || oldHostList[i].ip == arp->arp_tpa) && oldHostList[i].sniffer == 1)
    {
     packetList[currentPktIndex].srcIp = arp->arp_spa;
     packetList[currentPktIndex].desIp = arp->arp_tpa;
     packetList[currentPktIndex].protocol = ARP;
     packetList[currentPktIndex].data[0] = 0;

     currentPktIndex++;
     currentPktIndex %= MAX_PACKET;
     if (currentPktIndex == 0)
      mailDlg->PostMessage(RECV_PKT);
      break;
    }
   }
  }
 }
}

  我们需要动态追踪局域网内节点的活动状态,以定时器实现:

void CNetHackerDlg::OnTimer(UINT nIDEvent)
{
 // TODO: Add your message handler code here and/or call default
 if (sthread == 0)

 
推荐文章
·洪水攻击原理及代码实现全攻略(
·原始套接字透析之实现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 $