先给结论:不要直接改扫描路径或后缀名,而要先判断“格式变化”是容器变了、编码变了,还是内容从单文件变成了归档集合。三者对应的输入规范完全不同。缺少完整样本或权限时,最小动作是拿一个可公开的替代样本做一次“可解析性验证”,只确认工具能否读入,不能据此推断它能检出木马。
常见情况是:输入目录、命令行参数、排除规则都没动,但换了批文件后,工具要么报错跳过,要么扫得很快却几乎没结果。此时有两种解释。
这两种解释的处理方向相反:前者要改输入规范,后者要改解包或递归策略。改错方向会让下一步全部白做。
关键证据不是“有没有报毒”,而是“有多少对象真正进入了扫描”。可以按下面顺序取证据,且不需要完整数据权限。
要注意:抓取量或扫描量归零,不能单独证明输入规范正确,也不能证明对象干净。它还可能来自权限不足、路径不可达、工具提前退出。只有把“进入扫描的对象数”和“日志中的跳过原因”对上,才能把结论落到某一种解释上。
如果对象从散文件变成了压缩包、镜像或嵌套目录,输入规范要补的是“展开层级”和“临时目录”。假设一个场景:原来输入是若干独立文件,现在改成一个压缩包。若工具默认不展开,正确的最小动作是显式开启归档解析,并指定一个有写权限的临时目录。这样做之后,如果已扫描对象数上升到接近包内文件数,说明输入规范已匹配;如果仍偏低,下一步应查嵌套层数限制,而不是继续调检测规则。
如果对象从可读文本变成了二进制、宽字符或另一种编码,输入规范要补的是“按字节读取”或“指定编码”。判断依据是日志里是否出现解码错误。若出现,先固定编码再重跑;若不再报解码错误但结果仍异常,问题可能回到内容本身,而不是输入规范。
如果原来按文件扫描,现在需要按目录或按主机整体扫描,输入规范要改的是“递归开关”和“排除项的作用范围”。这里最容易出错:排除规则可能只对顶层生效,导致子目录被整体跳过。验证方法是临时移除排除规则跑一次,对比进入扫描的对象数。若数量明显回升,说明问题在排除范围,而不在格式支持。
没有完整样本、没有读取权限时,仍可执行的最小动作是:取一个结构相同但内容可公开的替代样本,只验证“能否被解析并进入扫描”。这个动作的结果只能回答输入规范是否匹配,不能回答以下问题:
当替代样本能正常进入扫描,下一步才是申请最小读取权限并对真实对象重跑;若替代样本也无法进入,应先改输入规范,而不是先怀疑对象本身。具体工具是否支持某种归档格式、是否默认递归、临时目录如何指定,需要以该工具当前版本的说明为准,不能凭旧教程或记忆推断。