在星空游民下过单机游戏的老玩家都见过那个场景:好不容易把几个G的压缩包拖下来,右键解压,Windows Defender立刻弹窗,红色感叹号,提示检测到“Trojan:Win32/Wacatac.B!ml”。赶紧关掉杀软,重新解压,文件还在,但再扫一遍又报一个“严重病毒”。很多人因此认为这个网站的后台被人塞了木马,但事实远比表面上复杂。
首先要弄清楚杀毒软件到底在害怕什么。星空游民里的游戏资源,十有八九都是破解版或免安装版。破解版想绕过正版验证,就必须对程序进行修改,比如替换启动文件、注入动态链接库,或者用注册机生成激活码。这些操作和恶意软件的执行路径高度重合。微软的Windows Defender干脆把这类工具统一识别为HackTool:Win32/KeyGen,卡巴斯基则命名为not-a-virus:RiskTool.Win64.ProcPatcher。注意这里“not-a-virus”这个前缀,卡巴斯基自己也承认这不是病毒,只是“风险工具”,但因为它的行为可以被滥用,杀软仍然默认拒绝运行。
另外,单机破解文件经常会被压缩壳保护。UPX、Themida、VMProtect是常见的选择,目的是防止资源被人反编译篡改。安全软件面对加壳后的文件时,无法识别内部真实内容,只能靠特征匹配和行为模拟。一个加了VMProtect的破解补丁,在扫描引擎眼里就是一串加密乱码,这种不确定性很容易触发“启发式报警”。安全机构AV-TEST在近年的测试报告中一直强调,杀毒软件对加壳合法程序的误报率远高于未加壳程序,而破解补丁既没有数字签名,也没有软件发行商的信誉背书,误报率自然更惊人。在VirusTotal上,一个热门破解补丁经常会被三四款引擎报“Generic”或“RiskTool”,但只有极少数会被真正识别为后门指令。
不过报毒并不全是误报。星空游民这样的免费下载站,靠的是广告和推广挣流量。下载页面里最显眼的“高速下载”按钮,常常不是游戏本体的下载地址,而是捆绑了下载器。这种下载器一个晚上能往你电脑里塞三四个“管家”和“浏览器首页”。它们不会被报成木马,但会被标记为PUP或Adware,也就是“潜在不需要的程序”。所以很多人明明下载的是游戏,却被提示有“木马”,其实那是广告软件在捣鬼。更麻烦的是,有些资源是用户自行上传的,文件从网盘里转来转去,中途有没有被人重新打包过,谁也无法保证。
真正让人头疼的是伪装成破解补丁的恶意程序。早前有安全团队分析过某热销游戏的“免DVD补丁”,外表跟正常破解文件完全一样,体积也差不多,但运行后会向后台发送DNS请求,下载远控模块。这类样本在VirusTotal上通常能获得超过20个引擎的查杀,报毒名称会包含“Backdoor”或“Trojan.Agent”。因为星空游民这类资源站普遍只检查文件大小和标题,并不会深挖样本行为,偶尔混入一个带毒补丁并不奇怪。

想要判断下载的“毒”是真是假,最靠谱的方法是打开VirusTotal网站,把报毒的文件拖上去扫描。如果扫描结果里只有三五个引擎报毒,而且名称里带有“Generic”“RiskTool”“HackTool”之类的字眼,基本可以认定为误报。如果十几个引擎同时报“Trojan.Spy”或“Backdoor.C2”,那就别心存侥幸,直接删掉。还有一个简单技巧:正版破解补丁通常只有几十到几百KB,要是某个补丁文件达到了好几兆,就要怀疑里面裹了其他东西。
值得提醒的是,杀毒软件弹窗本身并不代表电脑已经中毒。它只是在执行预防性动作。对于