VB.Net 发送ARP应答包

来源:百度知道 编辑:UC知道 时间:2024/06/23 23:05:20
请问如何使用 Vb.Net 发送 Arp 应答包对目标IP来制造一个假网关?
我引用了 PacketX 控件,该控件可以发送 Arp 包,但是示例代码是 vbs 的,如何转换到 Vb.Net 里用呢?

vbs 示例代码如下:

'// Get adapter hardware address and IP address
sHWAddr = oPktX.Adapter.HWAddress '我的MAC地址
sIPAddr = oPktX.Adapter.IpAddress '我的IP地址
sIPMask = oPktX.Adapter.NetMask '255.255.255.0

'// Send ARP request for this IP address
sIPReso = "192.168.1.102"
aIPReso=Split(sIPReso, ".", -1, 1)
aIPAddr=Split(sIPAddr, ".", -1, 1)

'// Send 100 ARP requests
oPktX.Adapter.SendPacket Array(&hFF, &hFF, &hFF, &hFF, &hFF, &hFF,_
CByte(HexToDec(Mid(sHWAddr,1,2))),_
CByte(HexToDec(Mid(sHWAddr,3,2))),_
CByte(HexToDec(Mid(sHWAddr,5,2))),_
CByte(HexToDec(Mid(sHWAddr,7,2))),_
CByte(HexToDec(Mid(sHWAddr,9,2))),_
CByte(HexToDec(Mid(sHWAddr,11,2))),_
&h08, &h06, &h00, &h01, _
&h

用winPcap 里面的packet.dll是可以发的,装了sdk就有个发包的例子。arp的包结构 可以查看 《tcp ip详解》好像是这样{以太网头;对方mac;自己mac;以太网类型;arp包;}

在每台客户机上绑定网关 可以用批处理的方式 但是会闪一下,不过不爽 可以用VB编一下,放在所有用户的启动项里,如果你用伙狐的话最好用动态修补。。
代码如下,请根据实际情况修改

Private Sub Form_Load()
shell "arp -d" , 0
shell "arp -s 192.168.1.254 00-14-78-92-48-B1",0
End
End Sub

192.168.1.254是你网关的IP 00-14-78-92-48-B1是你网关的MAC地址

你试下

底层的东西用wincap弄去