- UID
- 14
- 积分
- 8264
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2002-1-4
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本程序原是 秋枫 用 VBS 所写的一个删除 acad,lsp acadpqd.lsp 程序,后来增加了删除 acad.fas acadiso.lsp acaddoc.lsp 等文件。
一般来说 cad 病毒都是利用了 acad 的自动加载,包括 acaddoc.lsp、 acad.lsp(acad.fas) 、acaddoc2xxx.lsp、acad.mnl ,只要清除这些文件就可以清除“病毒”,但是某些外挂或者专业软件有时候也会用到自动加载文件,比如 acaddoc.lsp ,这时就不能全盘删除该文件,要进行判断。
下面的 VBS 就是对 acad.lsp acaddoc.lsp 文件先收集路径,最后判断文件中是否有一些特征字符,如果有病毒特征字符才执行删除,使用中对新增加的“病毒”文件可以自己手动添加进来实现自动删除。
运行前请关闭所有 Autocad 程序,另外,病毒程序可能在 acad.mnl 中会自动添加 load 语句,查杀完成后请在次检查 acad.mnl 文件,删除最后的 load 语句。

- '==========================================================================
- '
- ' VBScript Source File -- Created with SAPIEN Technologies PrimalSCRIPT(TM)
- '
- ' NAME: CheckLsp.vbs
- '
- ' AUTHOR: Qiu Feng , cj
- ' DATE : 2003-8-20
- '
- ' Modified: Eachy , 2008-9-6
- '
- ' COMMENT: 针对导致AutoCAD中explode命令不能使用的acad.lsp恶意代码设计了本程序,
- ' 本程序仅用于查杀此项恶意代码。
- '
- '==========================================================================
- Option Explicit
- ' Drive type constants
- Const Unknown = 0
- Const Removable = 1 ' Removable medium
- Const Fixed = 2 ' Fixed medium (hard disk)
- Const Remote = 3 ' Network drive
- Const CDROM = 4 ' CD-ROM
- Const RAMDisk = 5 ' RAM disk
- Const tmpFolder = 2 ' System's temp folder
- Dim AboutText
- AboutText = "[程序用途]" & vbCrLf & _
- "针对导致AutoCAD中explode命令不能使用的acad.lsp,acaddoc.lsp恶意代码设计了本程序," & _
- "本程序仅用于查杀此项恶意代码。" & vbCrLf & vbCrLf & _
- "[声明]" & vbCrLf & _
- "作者保留本程序的一切权利,但你可以自由拷贝与复制、修改本程序用于非商业目的。" & _
- "作者尽力将本程序做得完善,但不会因本软件的错失而造成的损失承担任何责任。" & _
- "本程序仅提供作为应用上的参考, 而未声明或隐含任何保证; 对于任何特殊用途之适" & _
- "应性, 以及商业销售所隐含作出的保证, 在此一概予以否认。" & vbCrLf & vbCrLf & _
- "[是]接受上述条件,[否]退出程序。" & vbCrLf & vbCrLf & _
- "秋枫, 2005.8"
- Dim WshShell
- Set WshShell = WScript.CreateObject("WScript.Shell")
- Dim fso, oDrive, curDrive ' Object variables
- ' Create FileSystemObject object to access the file system.
- Set fso = WScript.CreateObject("Scripting.FileSystemObject")
- Dim TempFileName
- TempFileName = fso.GetSpecialFolder(tmpFolder) & "" & fso.GetTempName
- Function IsCScript()
- ' Check whethe CScript.exe is the host.
- If (InStr(UCase(WScript.FullName), "CSCRIPT") <> 0) Then
- IsCScript = True
- Else
- IsCScript = False
- End If
- End Function
- Function YesOrNo(s)
- Dim r
- WScript.StdOut.Write(s)
- r = WScript.StdIn.Read(1)
- WScript.StdOut.Write(r)
- If (UCase(r) = "Y") Then
- YesOrNo = True
- Else
- YesOrNo = False
- End If
- End Function
- Function DlgYesOrNo(s)
- If (vbYes = MsgBox(s, vbYesNo)) Then
- DlgYesOrNo = True
- Else
- DlgYesOrNo = False
- End If
- End Function
- Function ChkStr(Filename, Str)
- Dim F, txt
- ChkStr = False
- If fso.FileExists(Filename) Then
- Set F = fso.OpenTextFile(Filename)
- txt = f.ReadAll
- If (InStr(UCase(txt), UCase(Str)) <> 0) Then
- ChkStr = True
- Else
- ChkStr = False
- End If
- End If
- End Function
- ' Test whether the host is CScript.exe.
- If (Not IsCScript()) Then
- WshShell.Run "CScript.exe " & """" & WScript.ScriptFullName & """"
- WScript.Quit ' Terminate script.
- End If
- ' Main
- WScript.Echo "*******************************************"
- WScript.Echo "* LISP病毒检查程序 -- 秋枫, 2005年10月9日 *"
- WScript.Echo "* 修改 -- Eachy,2008年09月6日 *"
- WScript.Echo "*******************************************"
- If Not DlgYesOrNo(AboutText) Then
- WScript.Quit()
- End If
- Set oDrive = fso.Drives ' Get Drives collection.
- Dim CmdLine
- For Each curDrive In oDrive ' All drive objects
- If (curDrive.DriveType = Fixed) Or (curDrive.DriveType = Remote) Then
- WScript.StdOut.WriteLine "扫描 " & curDrive.DriveLetter & "盘..."
- CmdLine = """%comspec%"" /c dir /b/s " & curDrive.DriveLetter &_
- ":\acaddoc.lsp >> " &_
- """" & TempFileName & """"
- WshShell.Run CmdLine, 0, True
- CmdLine = """%comspec%"" /c dir /b/s " & curDrive.DriveLetter &_
- ":\acad.lsp >> " &_
- """" & TempFileName & """"
- WshShell.Run CmdLine, 0, True
- CmdLine = """%comspec%"" /c del /s/f " &_
- curDrive.DriveLetter & ":\acad.fas,acadapp.lsp,acadapq.lsp,acadiso.lsp,lcm.fas"
- WshShell.Run CmdLine, 0, True
- End If
- Next
- If fso.GetFile(TempFileName).Size <> 0 Then
- Dim fList, f, fname
- Set f = fso.OpenTextFile(TempFileName)
- fList = Split(f.ReadAll, vbCrLf)
- For Each fname In fList
- If ChkStr(fname, """ACAD.LSP""") Or ChkStr(fname, """ACADAPP""") _
- Or ChkStr(fname, """ACADAPQ""") Or ChkStr(fname, VbCrLf & Trim("CHR") & VbCrLf) _
- Or ChkStr(fname, """ACADDOC.LSP""") Then
- WScript.StdOut.Write "删除 " & fname & "..."
- fso.DeleteFile fname, True
- WScript.StdOut.WriteLine "OK!"
- End If
- Next
- Else
- WScript.Echo "没有找到感染的LSP文件."
- End If
- WshShell.run """%comspec%"" /c del /s/f c:\boot.dat", 0, True
- WScript.Echo "扫描清除完毕."
- WshShell.Popup "清理完毕。", 10, "Check Lisp Virus", vbOKOnly + vbInformation
将以上内容保存为后缀为 vbs 的文件,双击运行,也可以下载附件查杀。 |
|