zml84 发表于 2010-12-11 21:23:30

重定义函数防治lsp病毒

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==============================================")

zml84 发表于 2010-12-11 21:27:08

论坛对html的支持,有待改进。
原格式见: zml84.blog.sohu.com/161092224.html
页: [1]
查看完整版本: 重定义函数防治lsp病毒