2024年1月16日发(作者:)

关于AutoCAD中的LISP病毒

目前CADr14有一种lisp代码具备病毒的特征,有一定危害

具体情况如下:

在有DWG文件里如果带有双击打开DWG文件,就会自动加载这个lisp,

此lisp的功能是:

加载后炸开命令 外部引用等命令失效。并且可传染:

加载后在你SUPPORT目录下生成一个,在ACAD添加(LOAD "ACADAPP")

(PRINC)

这样以后你打开acad就自动加载了ACADAPP,它在你每个操作过的acad图形文件的文件夹下生成带恶意代码的

这样如果你复制整个文件夹,或者通过局域网打开图形,就会导致在不同的机器内传染。

问题现象:

EXPLODE命令失效(同时还有XREF、XBIND);

每个编辑过dwg文件的目录下面都会有一个;

保存至另一目录时也同时产生;

打开别人的文件时,如果该目录下有,那么你必中招。

解决办法一: Autocadsupport下建立一个的空白文件,并将文件属性置为只读,你自己不会具有二次传染性,可以阻止病毒的扩散.如果中毒就删掉图形目录下的,最好进行网络全体搜索清除清除。

解决方法二:

用.Explode(在命令前加小数点“.”)可以分解;

删除所有这些文件。

解决方法三:

有个免疫设置的方法,将support目录下的设为只读,如果有就清空后也将其设为只读。

病毒名称 d

该病毒是使用绘图软件:AutoCAD的内嵌脚本语言的写成,

文件名为:"" 可由AutoCAD启动时自动执行,但它不影响图形文件。

此病毒使AutoCAD的内部命令-EXPLODE, XREF 和 XBIND无效,并定义一个新的命令

BRUST,此命令将

显示如下消息:

BURST----将图块中的文字炸开后成为实体

中了病毒"d.A"病毒之解決方案

我的電腦昨日中毒

諾頓掃描後顯示說

D:RECYCLERS-感染d.A

病毒

我從網路上各網站找沒有確切的方案有的說刪掉該檔案<有的提供出殺毒小軟件但均無法刪除

但我從各論壇的的二次開發看到一段很重要的話

ACAD有个很大的优点就是开放性它有很多开放的接口

这给用户自定义以及第三方二次开发提供了极大的方便。

ACAD用户化门槛不算高只要有兴趣、有些耐心你总可以亲自动手不同程度地进行自定义。

马上要讨论的是关于启动自动化的AUTOLISP接口,这个接口现在被人用来搞了点恶作剧。

我花了1天的結果,找出解決方案了試驗如下必須對症下藥-

1.卸載AUTO CAD及其相關軟體

2.使用"Always Right"清理移除軟體及接口之軟體來清除

上述清除工作完成再重新按裝auto cad軟體

4.再行掃描已無中毒情形了

先给不了解LSP的同志稍微铺垫一下。

ACAD有个很大的优点,就是开放性,它有很多开放的接口,这给用户自定义以及第三方二次开发提供了极大的方便。ACAD用户化门槛不算高,只要有兴趣、有些耐心,你总可以亲自动手不同程度地进行自定义。

马上要讨论的是关于启动自动化的AUTOLISP接口,这个接口现在被人用来搞了点恶作剧。

在ACAD启动或开图时会被自动加载的LSP文件

浅见,这种LSP包括:

,新装的纯ACAD里面没有这个文件。一般由用户自己编写或者第三方软件提供,放在ACAD目录或SUPPORT子夹都可以。

ACADR$.LSP,$是系统版本号,比如,在SUPPORT子夹。

还有一种先不说了.

加载时自动运行的由defun函数定义的函数名

就一种,S::STARTUP,它和配套,同时不支持其他扩展名为LSP的文件

可能是因为这个原因,目标被定位于? 不知道了,其实不一定非用S::STARTUP,用了那就说明这位大虾是个追求完美的人~

铺垫好了,来看看这个病毒的作用~

{00.定义自动函数S::STARTUP

{01.获取CMDECHO变量,改设为0,一般程序最后会再改回去,

目的是悄悄地进村打枪地不要.大家都喜欢这么干 }

{02.通过搜索文件,获取ACAD安装路径(support子夹) }

{03.获取菜单文件完整路径和名称,后来又没用~}

{04.获取当前图形文件完整路径和名称,截取当前工作路径}

{05.获取当前首选文件完整路径和名称,截取其路径}

{06.预设程序标记变量LSPBJ为0,意思是假设还没得手}

{07.用只读方式打开support中的,如文件不存在则建立同名文件

逐行检查此文件内容,一旦发现某行开头为(load "acadapp")

则设程序标记变量LSPBJ为1,表示已经得手过

只读任务结束,关闭文件}

{08.如果找到的路径和当前工作路径不同,

并且不在ACADsupport里面,则

{如果LSPBJ为0,也即尚未得手,那么

就在文件末尾添加(load "acadapp")(princ),

即ACAD启动或开图时自动加载并隐蔽命令行反应。

然后同路径创建文件,作为刚改过的的备份. }

{如果LSPBJ为1,即已得手,且当前绘图不是未命名的新绘图任务,则

用复写的方式

在当前工作路径创建. }

}

;注:到此为止,ACAD启动时必搜的程序文件路径里面都放好了此!

{09.程序开始做真正让大家不愉快的事情,

它取消了3个系统预设的命令名: 不止explode, 还有xref和xbind

可能因为Xref和xbind不是每个人都常用,所以好象报案的不多,

而explode几乎是所有用ACAD画图的人都难以避免使用的,就显得很典型}

S::STARTUP函数定义结束}

还没完,前面取消了那3个命令的定义,现在要重新定义它们,幸好这位大虾良心不算坏,只是让命令不起作用或者改成其他加法命令,并没写成破坏性函数或OS命令

EXPLODE的新功能和交互情况是:

command: EXPLODE

Seltct objects: 200 found

Select objects:

200 was not able to be explode

command:

随你怎么选,它就是说炸不了

然后XREF和XBIND这对难兄难弟双双被改成了insert,交互响应制作很不精良,根本就是空白,可能大虾忽然觉得倦了吧.

最后,它还重新定义了BONUS和EXPRESS TOOLS工具集里面提供的BURST命令,其实是个外部函数(c:burst)

BURST原来的用途是"Explode Attributes to Text",把属性文本炸成text类物体

被重新定义后这样:

command: BURST

BURST----将图块中的文字炸开后成为实体

Select objects: 200 found

Select objects:

command:

07.用只读方式打开support中的,如文件不存在则建立同名文件

逐行检查此文件内容,一旦发现某行开头为(load "acadapp")

则设程序标记变量LSPBJ为1,表示已经得手过

只读任务结束,关闭文件}

{08.如果找到的路径和当前工作路径不同,

并且不在ACADsupport里面,则

{如果LSPBJ为0,也即尚未得手,那么

就在文件末尾添加(load "acadapp")(princ),

即ACAD启动或开图时自动加载并隐蔽命令行反应。

然后同路径创建文件,作为刚改过的的备份. }

{如果LSPBJ为1,即已得手,且当前绘图不是未命名的新绘图任务,则

用复写的方式

在当前工作路径创建. }

}

;注:到此为止,ACAD启动时必搜的程序文件路径里面都放好了此!

ACAD的支持文件搜索路径(Support file search path)

ACAD在启动或开新图的时候,在程序进入ready状态前,首先会到支持文件搜索路径里面寻找系统需要的资源,在必须使用的东西全部找齐后,我们才有机会正常开始画图。这种路径分2种:

A、在preferences命令对话框的files分页最上面一项可以看到,一般新装的纯ACAD的这种路径包括support[外部命令、函数,图案、线形等资源库等]、fonts[ACAD专用字库、不包括TRUETYPE字体]、help[帮助文档],还可以有bonuscadtools[bonus资源,选装].通常*.lsp文件都集中在support子夹。

B、当前工作路径,就是现在刚打开的那张图的存放位置。

并不是系统保留的文件名,虽然样子很酷,其实它就是被感染的标志,当然,这个标志不如到处都是那么壮观

现在可以分析大家是怎么感染的了。

用已经感染的ACAD系统画图

根据上文08:

{如果LSPBJ为1,即已得手,且当前绘图不是未命名的新绘图任务,则

用复写的方式

在当前工作路径创建. }

这就是说,在这种情况下,它把已经被感染的CAD系统里面的克隆到当前工作路径,名字就叫

不小心工作路径里面混进了那个文件

一旦出现这种情况,即便你的ACAD原来是干净的,也瞬间就被做掉了。

还是根据上文08:

{如果LSPBJ为0,也即尚未得手,那么

就在文件末尾添加(load "acadapp")(princ),

即ACAD启动或开图时自动加载并隐蔽命令行反应。

然后同路径创建文件,作为刚改过的的备份. }

克隆这个到ACADsupport,名字改成,通过自动加载它。

注意,上面的自动加载和这里的通过加载效果都是一样的。

那么,怎么就被这个给混进了工作路径呢?

可能性有很多,比如你通过局域网跟别人共享同个文件夹里面的dwg文件,不幸你的同伴的ACAD先感染了;或者用移动盘在别人,尤其打图公司,那里画图甚至只是开图,不幸别人的ACAD已经感染了,等等

这大段代码的自我复制原理很简单。从上面概括下来就是:你的机器是干净的,它[工作路径里的]就把自己复制到ACAD目录;你的机器是感染的,它[support里的]就把自己复制到工作路径。只是名字有点变化,被复制的代码是一样的。

补充楼上说的关于杀毒、防毒的办法:如果确认未被感染,那么把自己的原来的(没有就建一个空文本文件,改成这名字,注意确信改掉扩展名)文件改成只读属性;如果已感

染,请采用mnhyyl 兄说的办法清除,之后再做前面的步骤(只读);同时安装多个CAD版本的要分别打“只读补丁”。

听说ACAD2000上就有VBA做的病毒。现在讨论的这个诚如“一般不管闲事”女士/先生/同志/朋友所说,只是在Lisp上做了些文章。是我看走眼了。

删除所有当然可以解决,但未免有些滥杀无辜。如果能下决心跟它和平相处的话,就到放的目录下,打开,删除这样的两段:

(command "undefine" "explode")

(command "undefine" "xref")

(command "undefine" "xbind")

以及从

(defun C:explode (/ p cont old_cmd)

到末尾的(princ)之前的

)

以后开图应该不会有问题了,当然已经感染的目录下的还是要删除。另一个好处是:在ACAD程序目录里留下的这个可以当疫苗,估计是终身免疫的。不过我没有试过,如果不灵权当“疗妒汤”了。

最近一段时间论坛关于病毒的消息较多,其实平时养成良好的习惯,是完全可以杜绝的。

1.不随便将目录(含cad图纸)拷入本机;不要盲目打开目录下含有文件的图纸。

2.经常升级自己的病毒库。

3.推荐使用acad2000以上版本,内含程序组加载程序,杜绝了的存在。

4.中了病毒也不要害怕,该病毒本身没有什么危害性,只是炸开命令不能用了,可以使用xplode替代。

还是把和改为只读比较好

现在好多好多的设计院都反映中了lisp病毒——还附带。中毒现象就是不能炸开块,不能用insert命令等等。

各路高手看看怎么能解决这个问题呀,瑞星查不出来,金山不置可否,KV倒是能查出来,但是过一会儿病毒还回来。手动删除的效果也不好。救命呀!!!

还有,大家能解释一下原因么,有说这个病毒是韩国过来的?

该病毒并不可怕。给你一种最简单的清除方法吧,赶快在你单位的所有计算机中(切记是所有计算机),搜索查硬盘内所有名为的文件和的文件,并将它们全部删除即可。

跟一样也是病毒,它是运行时自动生成的。

这是一个专门针对CAD的病毒程序,不是传统意义上的病毒,因此,用诺顿、金山毒霸等是不

能杀除的。它的作用机制是这样的: 某台机器上没有这个病毒程序,在通过网上邻居拷贝别人的图纸时,大家经常会把整个目录拷贝过来,如果拷贝的这个目录中包含有和,你的机器就有了这个病毒,但是还没有起作用。当你用CAD打开这个文件时,CAD会自动加载该目录下的,这个LSP程序会检测你的CAD支持support目录下是否有这两个文件,如果没有,它会自动在那里创建他们的副本。以后,在你打开别的图纸时,它会在判断你要打开的图纸目录下有没有这两个文件,如果没有,它又在该目录下创建这两个文件的副本。就这样,你的机器上的dwg文件目录中逐步都有了这个程序。随着别人按照目录拷贝你的dwg文件,他们也感染上了。因此,如果你的机器上没有CAD病毒程序,只要你从别处拷贝图纸时,只拷贝dwg文件就不会感染CAD病毒了