如何分辨嗅到到的广播包(ARP)是本机发出的还是来自其他机发出的啊?

dodo888 2006-12-13 08:23:01
本人用C在编写一个嗅探程序,基于WINPCAP,按我对WINPCAP的了解,它在混杂模式下,可以接收流经本机网卡的所有数据包。现在有一个要求,在接受到ARP包时,)需要识别出是本机发出的还是其他机发出的??--主要是追踪伪造的ARP包。
ARP广播包:
目标MAC:FFFFFFFFFFFF,目标IP:0.0.0.0
伪造的MAC和IP
用判断包目标信息为进还是为去行不通
有谁知道,给个提示(方法或点子,编程语言不限)
谢谢。
急,在线等!!!!!

while(off<(lpPacket->ulBytesReceived))//嗅探到流经"网卡"(流进\流出)的数据包
{

bpf_hdr *hdr=(struct bpf_hdr *)(buf+off);
off+= hdr->bh_hdrlen;
buffer=(char *)(buf+off);
buflen=hdr->bh_datalen;
lpEthdr=(ET_HEADER *)(buffer);
if(lpEthdr->eh_type==htons(0x0806))
{
ARP_HEADER *arpheader=(ARP_HEADER *)(buffer+sizeof(ET_HEADER));

如果判断是本机发出的呢?

}
...全文
609 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
sbkopoky 2007-02-17
  • 打赏
  • 举报
回复
有一个香港和悦网络电话的源文件 ,有兴趣妨进入我的BLOG看看
wcpjavastudy 2007-01-10
  • 打赏
  • 举报
回复
邀请c/c++学习的各路好友加入c/c++学习群:17185131
alickguo 2007-01-06
  • 打赏
  • 举报
回复
理论上是没有办法的,如果发送方也用WINCAP,把ARP报文从SMAC开始都修改为非本地的.

如果ARP欺骗的目的是为了别的机器把数据报文or路由报文发送到指定的PC,以便截取信息的话,那么这个ARP报文的L2 Source MAC以及Sender MAC一定是这台机器的。

所以在你拥用正确的所有PC的APR表的情况,可以嗅探网络上的ARP,分析Sender IP,Sender mac与ARP表是否一致的方式发现欺骗。

至于要确切的发现问题机器的话,就要通过物理手段侦测了。
TinyAnt 2006-12-31
  • 打赏
  • 举报
回复
没办法的。
dodo888 2006-12-14
  • 打赏
  • 举报
回复
A机为嗅探监听机(不限于WINPCAP):
现在有个网关欺骗包:
网关IP:192.168.1.1,mac:00e04c513adf
现在把网关伪造信息广播出去:
源IP:192.168.1.1
源伪MAC:000000000000
目标IP:0.0.0.0
目标MAC:FFFFFFFFFFF

这个包所有的一个域的机子都会收到。嗅探机A当然也收到。
我要想知道的是如何辨别这个包是谁发出的(考虑本机发出的在内)????

嗅探到的包就是这个样子:
源IP:192.168.1.1
源伪MAC:000000000000
目标IP:0.0.0.0
目标MAC:FFFFFFFFFFF

这个ARP广播包的难处就在于:就像你蒙着眼站在窗户边, 一个果子打中你的头,你怎么知道这个果子是从窗外来的还是室内来的一样

IP包很容易:判断目标IP或MAC就行了


lailaiququ 2006-12-14
  • 打赏
  • 举报
回复
MAC也造假啊,我不懂,帮顶。
lailaiququ 2006-12-14
  • 打赏
  • 举报
回复
arp 也有源MAC地址啊
dodo888 2006-12-14
  • 打赏
  • 举报
回复
谁有变通的方法实现ARP欺骗的追踪??
dodo888 2006-12-14
  • 打赏
  • 举报
回复
请高手不吝赐教啊

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧