网站公告列表     学友堂,成就你我!  [admin  2006年11月29日]        
加入收藏
设为首页
联系站长
您现在的位置: 学友堂 >> 电脑网络 >> 防病毒 >> 文章正文
  全自动双向绑定MAC地址的VBS代码,防范ARP攻击。           
全自动双向绑定MAC地址的VBS代码,防范ARP攻击。
文章来源:不详 更新时间:2008-4-17 0:07:47 本站:学友堂  网址:www.3i3i.cn
学友堂 www.3i3i.cn

虽然网上的防范ARP攻击脚本代码满天飞,但是或多或少都有一些不足,为此,我用VBS重新写了一个全自动的双向绑定MAC地址的代码,使用很简单,只需把以下代码用记事本保存为vbs脚本文件,然后双击运行即可!
-
'_______________________________________________________________________________________
'概述:防范ARP攻击的VBS脚本代码,运行该脚本即可为您的计算机打上补丁,可有效抵御ARP攻击。
'参考文献:《Windows脚本技术》
'实现方式:该脚本程序采取的是双向绑定MAC地址,可以有效防止局域网的ARP攻击。
'脚本程序编写者:By HJQ, QQ:569250030
'_______________________________________________________________________________________
On Error Resume Next
Set fs=CreateObject("Scripting.FileSystemObject")
Set dir1=fs.GetSpecialFolder(0)
'实现自我复制到用户的启动目录,文件名为ARPover.vbs,实现开机自我运行,至于为什么不通过修改注册表来实现自我启动,那是因为如果这样写脚本,会引起类似卡巴这样强悍的杀毒软件误报!
dir1 = left(dir1,2) + "\Documents and Settings\All Users\「开始」菜单\程序\启动\ARPover.vbs"
fs.GetFile(WScript.ScriptFullName).copy(dir1)
-
'以下是捆绑网关MAC地址
Set objShell = CreateObject("WScript.Shell")
Set objWshScriptExec = objShell.Exec("ipconfig")
Set objStdOut = objWshScriptExec.StdOut
While Not objStdOut.AtEndOfStream
strLine = objStdOut.Readline
if InStr(strLine,"Default Gateway") Then
gw_str = strLine
End if
Wend
temp = split(gw_str,":")
GatewayIP = left(temp(1),Len(temp(1))-1) '获取网关IP地址
MACmd = "arp -a" + GatewayIP
Set objWshScriptExec = objShell.Exec(MACmd)
Set objStdOut = objWshScriptExec.StdOut
While Not objStdOut.AtEndOfStream
strLine = objStdOut.Readline
if InStr(strLine,GatewayIP) Then
gw_str = strLine
End if
Wend
temp = split(gw_str,"-")
GatewayMAC = right(temp(0),2) & "-" & temp(1) & "-" & temp(2) & "-" & temp(3) & "-" & temp(4) & "-" & left(temp(5),2) '获取网关MAC地址
BindCmd = "arp -s" + GatewayIP + " " + GatewayMAC
'MsgBox BindCmd '输出捆绑的命令,用于调试。
objShell.Exec(BindCmd) '绑定网关MAC地址
'MsgBox "GatewayIP:" + GatewayIP '输出网关IP地址,用于调试。
'MsgBox "GatewayMAC:" + GatewayMAC '输出网关MAC地址,用于调试。
-
'以下是捆绑本机MAC地址
Set objShell = CreateObject("WScript.Shell")
Set objWshScriptExec = objShell.Exec("ipconfig /all")
Set objStdOut = objWshScriptExec.StdOut
While Not objStdOut.AtEndOfStream
strLine = objStdOut.Readline
if InStr(strLine,"IP Address") Then
gw_ip = strLine
End if
if InStr(strLine,"Physical Address") Then
gw_mac = strLine
End if
Wend
temp = split(gw_ip,":")
LocalIP = left(temp(1),Len(temp(1))-1) '获取本机IP地址
temp = split(gw_mac,":")
LocalMAC = left(temp(1),Len(temp(1))-1) '获取本机MAC地址
BindCmd = "arp -s" + LocalIP + " " + LocalMAC
'MsgBox BindCmd '输出捆绑的命令,用于调试。
objShell.Exec(BindCmd) '绑定本机MAC地址
'MsgBox "LocalIP:" & LocalIP '输出本机IP地址,用于调试。
'MsgBox "LocalMAC:" & LocalMAC '输出本机MAC地址,用于调试。

参考资料

《Windows脚本技术》

文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    群基火花机自动编程系统
    电脑自动重启应该考虑的
    自动化设备会停止服务吗
    系统登陆后自动注销
    分清电脑自动关机的原因
    自动新闻代码
    staf --软件自动化测试框
    EXCEL中怎样自动加序列号
    Windows XP自动关机
    系统无法自动保存设置
     
    版权所有 2004-2012  学友堂 [3i3i.cn] 最佳分辨率 1024×768
    Copyright www.3i3i.cn All rights reserved.