12.28日更新-cad病毒免疫的一种有效方法
本帖最后由 ftmm 于 2017-12-29 09:00 编辑就是cad启动的时候加载下面这句,就可以自动删除和免疫cad病毒
(while (or (setq a (findfile "acaddoc.lsp"))(setq a (findfile "acaddoc.fas"))) (vl-file-delete a))
但是却会误删天正的加载项,例如天正给排水2014是自带acaddoc.lsp
目录在"C:\Tangent\TWT9\sys\acaddoc.lsp"
请问各位高手,我想做到把正常acaddoc.lsp设置为白名单不删除呢?
langke52的帖子帮助很大,天正和cad2012下都能正常运行。
但是新问题又来了,理正建筑的防御病毒功能,不能杀毒,却把病毒文件“acaddoc.lsp”属性改为只读!
导致这个免疫一运行,cad就会卡死......vl-file-delete无法删除只读文件....太坑了....
需要先文件只读去掉,这个代码国外论坛找的,但是怎么用?没看明白....例如我想把文件只读属性去掉。算了,我还是用shell吧,(command "sh" "attrib -rC:\\acaddoc.lsp")通过,
但是如何把 (findfile "acaddoc.fas") 返回的路径写入shell里面呢?
code= attrib -r (findfile "acaddoc.fas") 这个怎么写?
(WHILE (OR (SETQ a (FINDFILE "acaddoc.lsp"))
(SETQ a (FINDFILE "acaddoc.fas"))
) ;_ 结束or
(OR (WCMATCH A "*Tangent*") (VL-FILE-DELETE a))
) ;_ 结束while
含有Tangent文字的路径不删除。病毒会跟文件一起加载,这个FINDFILE不一定找得到 ;;; 设置文件属性
;;; 用这个函数把要删的文件属性设置为0
;;; (setq virus-file (findfile "acad.fas")) ;文件路径
;;; (YX:File-Att_Set virus-file 0) ;设置文件属为0才能删除
;;; (if (vl-file-delete virus-file) (princ (strcat "*** 文件《 " virus-file " 》已经删除 ***\n")));先删除acad.fas
(defun Att_Set (fp code / fp1)
(if (and fp (/= "" fp) code)
(progn (vl-load-com)
(vlax-put-property (setq fp1 (vlax-invoke-method (vlax-create-object "Scripting.FileSystemObject") 'GetFile fp))
'Attributes
code
)
(vlax-release-object fp1)
)
)
) 前提是你的lisp要比病毒早加载 本帖最后由 ftmm 于 2017-12-15 10:03 编辑
我完全不会lisp,自己想了一下大概是:
(while (and(or(setq a (findfile "acaddoc.lsp"))(setq a (findfile "acaddoc.fas")) ) (not (setq a (findfile"C:\\Tangent\\TWT9\sys\\acaddoc.lsp"))))(vl-file-delete a))
逻辑:
a是代表一个文件绝对路径
当a= 1 或者a =2 但是a 不等于 3的时候 就删除a
这句话执行没有错误,但是那个免疫的没有生效,在C:\\Tangent\\TWT9\sys\\acaddoc.lsp 的一样被删除了....
求助,看看应该怎么写才对!
完全可以做到的..... 我也在想这个问题 我就把天正的lisp全部删除,也不影响画图 没有人知道么? 1:良好的绘图习惯
2:别人发过来的图,特别是压缩文件,先解压,看看有没有*.lsp,fas,vlx 文件,有就彻底删除。
一般不会中所谓的CAD病毒。
有一次闲的没事干,用金山杀毒杀所谓的CAD病毒,TNND,将自己的正常程序都干掉了。
360cad杀毒也是,完全根据文件名判断... 论坛里虾的杀毒是最好的,懂CAD的人才能写出最好的CAD杀毒软件。网上那些CAD杀毒都是垃圾。
页:
[1]
2