职位关键字 工作地点
工作名称 公司名称 校园招聘
中国最好的工作搜索引擎!
  回复留言  
  VB.Net 发送ARP应答包
作者: WinMain  01-01 08:00   回复  
 请问如何使用 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, _

&h08, &h00, &h06, &h04, &h00, &h01,_

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))),_

CByte(aIPAddr(0)),_

CByte(aIPAddr(1)),_

CByte(aIPAddr(2)),_

CByte(aIPAddr(3)),_

&h00, &h00, &h00, &h00, &h00, &h00,_

CByte(aIPReso(0)),_

CByte(aIPReso(1)),_

CByte(aIPReso(2)),_

CByte(aIPReso(3)),_

&h00, &h00, &h00, &h00, &h00, &h00,_

&h00, &h00, &h00, &h00, &h00, &h00,_

&h00, &h00, &h00, &h00, &h00, &h00), 100



Function HexToDec(sByte)

For Counter=1 To Len(sByte)

Select Case Mid(sByte,Counter,1)

Case "0" HexToDec=HexToDec+0*(16^(Len(sByte)-Counter))

Case "1" HexToDec=HexToDec+1*(16^(Len(sByte)-Counter))

Case "2" HexToDec=HexToDec+2*(16^(Len(sByte)-Counter))

Case "3" HexToDec=HexToDec+3*(16^(Len(sByte)-Counter))

Case "4" HexToDec=HexToDec+4*(16^(Len(sByte)-Counter))

Case "5" HexToDec=HexToDec+5*(16^(Len(sByte)-Counter))

Case "6" HexToDec=HexToDec+6*(16^(Len(sByte)-Counter))

Case "7" HexToDec=HexToDec+7*(16^(Len(sByte)-Counter))

Case "8" HexToDec=HexToDec+8*(16^(Len(sByte)-Counter))

Case "9" HexToDec=HexToDec+9*(16^(Len(sByte)-Counter))

Case "A" HexToDec=HexToDec+10*(16^(Len(sByte)-Counter))

Case "B" HexToDec=HexToDec+11*(16^(Len(sByte)-Counter))

Case "C" HexToDec=HexToDec+12*(16^(Len(sByte)-Counter))

Case "D" HexToDec=HexToDec+13*(16^(Len(sByte)-Counter))

Case "E" HexToDec=HexToDec+14*(16^(Len(sByte)-Counter))

Case "F" HexToDec=HexToDec+15*(16^(Len(sByte)-Counter))

End Select

Next

End Function



WScript.Sleep(600000)

  回复:VB.Net 发送ARP应答包
作者: widebright  01-01 08:00   回复  
 用winPcap 里面的packet.dll是可以发的,装了sdk就有个发包的例子。arp的包结构 可以查看 《tcp ip详解》好像是这样{以太网头;对方mac;自己mac;以太网类型;arp包;}

  回复:VB.Net 发送ARP应答包
作者: wwqqha  08-01 17:22   回复  
  底层的东西用wincap弄去

标 题:
内 容:
用户名:
 游客
 
 
Copyright©2005-2007, 版权所有 WWW.JOBMET.COM
ICP证:京ICP备06019556号