关于max病毒的初步解决办法

您所在的位置:网站首页 max撤回就崩溃 关于max病毒的初步解决办法

关于max病毒的初步解决办法

2023-03-22 23:12| 来源: 网络整理| 查看: 265

持续好几年的max病毒,最近在我电脑上大放异彩:自动删除灯光、无法撤销操作、曲线编辑器出现重复的Custom Attribute、重新打开其他文档软件直接崩溃……

迫于实在太过令人厌恶,于是开始寻找解决办法。

首先是max官方公布的脚本ALC_fixup.ms和CRP_fixup.ms(官方下载地址:https://forums.autodesk.com/autodesk/attachments/autodesk/919/3042/1/ALC_CRP_fixup.zip),将这两个文件放在C:\Program Files\Autodesk\3ds Max 201X\scripts\Startup文件夹里,打开max文件的时候程序会调用这两个代码文件对打开的max文件进行病毒查杀,发现病毒就会提示清除,点击“是”即可。

1.png

但是很讽刺的是,前几天发现很久以前放进目录里的这两个文件,居然被病毒感染并被添加进了恶意代码,官方6KB的文件现在已经有12KB了。简而言之,max在执行完杀毒操作后,会添加恶意代码到max文件,也就是说,白费力!

于是删掉之前的两个ms文件,在上面那个官方链接下下载最新的病毒查杀脚本,放进Startup文件夹里,并将此文件夹下面的所有ms文件设置为“只读”属性,这样病毒就无法对这两个脚本进行恶意代码的添加。

 

然后又下载了支持2015及以上版本的“Security Tools for Autodesk 3ds Max 2020-2015”(官方下载地址:https://apps.autodesk.com/3DSMAX/en/Detail/Index?id=7342616782204846316&appLang=en&os=Win64&autostart=true&_ga=2.66044782.1960296799.1587090033-1297498576.1587090033)【2021.8.13:现已更新到支持2015-2022】,安装后在max的“Customize”下面,会有一个“3ds Max Security Tools”的选项,默认会开启保护。

至此,在2015及以上版本中,几乎不会再遇到无法返回、软件崩溃的问题。但实测后发现,曲线编辑器里还是会出现重复的“Custom Attribute”。这个问题目前好像不影响使用,而且我也没找到彻底的解决办法(目前的解决办法是:重新打开max,然后将出问题的max文件合并进来并重新保存)。

2021.8.13更新:

有些max文件导出后在引擎里能看到一个“Particle View 001”的文件,这也是病毒生成的。

查看方法是点击max图标 → Properties → File Properties,打开的对话框里选择Contents,Objects下面会显示场景里所有物件,包括“Particle View 001”。

删除方法是在软件里按F11,打开MAX脚本侦听器(“MAXScript Listener”),选择MAXScript,输入

delete $' particle view *'

回车后显示的数字即为已经删除的“Particle View 001”数量,显示0则场景里已经没有“Particle View 001”。

 

之前无法删除的“Custom Attribute”,现已找到可以一键删除的插件,一并上传,按需自取。【好像不能上传文件,我就把代码贴出来,新建个文本文档,复制进去,保存一下,后缀名从txt改为ms,拖入max软件即可使用】

try (destroydialog delete_ca) catch() rollout delete_ca "删除场景中的CustAttribute" width:170 ( button but "删除"width:98 height:32 toolTip:"删除场景中的CustAttribute" align:#center fn deleteCustAttributeInstances ca_class = ( cas = getclassinstances ca_class deleted = [cas.count, 0] for ca in cas do ( owner = custattributes.getowner ca if isvalidobj owner do ( n = finditem owner.custattributes ca if (n > 0) do ( deleteitem owner.custattributes n deleted[2] += 1 ) ) ) deleted ) fn clean_ca x = ( z=1 c=1 while z !=undefined do ( z = custattributes.getdef x c if z != undefined then ( format "% %\n" z.name (custattributes.getdefdata z) c=c+1 ) ) while (c!=0) do ( z = custattributes.getdef x c if z != undefined then ( if (custattributes.getdefdata z)==undefined then ( custAttributes.delete x z ) ) c=c-1 ) ) on but pressed do( deleteCustAttributeInstances SimpleFaceData clean_ca(rootscene) clean_ca(meditmaterials) clean_ca(rootscene.Anim_Layer_Control_Manager) ) ) createDialog delete_ca fgcolor:(color 7 254 254)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3