|
请问如何使用 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) |