运营中的老旧游戏被检测为malware,无法提交文件给厂商,求解决方案
可行解决方案汇总
1. 优先定位报毒原因,无需提前提交完整程序
杀软对可执行文件的报毒基本分为三类,你可以逐一排查缩小范围:
- 特征码误报:如果Virustotal的扫描结果里多数厂商的报毒名称带
Heur.、Gen:Variant.前缀,属于通用启发式特征匹配误报,是老程序的高发问题。你可以采用二分法排查:每次注释/删除一部分非核心逻辑后重新编译,上传Virustotal扫描,逐步缩小触发特征匹配的代码段范围 - 行为特征误报:在开启杀软的虚拟机中运行程序,记录报毒触发的时机:如果是启动即报,优先查程序的入口逻辑、资源段配置;如果是运行到特定功能时报,对应排查该功能的实现,老游戏常见的反作弊内存读写、本地文件修改、自动更新逻辑都极易触发杀软行为检测
- 签名缺失问题:2008年的程序大概率没有有效代码签名,杀软对无签名的冷门可执行文件的误报率极高,你可以先申请正规的EV代码签名对程序签名后重扫,大部分情况下报毒数量会大幅下降
2. 解决附件无法提交的问题
不需要向杀软厂商或者通过gmail发送完整程序文件:
- 先计算程序的
SHA256哈希值,所有主流杀软厂商的误报申诉通道都支持仅提交哈希值+开发者身份证明完成申诉,不需要上传原文件 - 若确实需要传输文件,可将文件后缀改为
.bin、.dat等非可执行后缀,或使用加密压缩包打包,在邮件正文注明压缩密码即可,gmail不会检测加密压缩包的内容
3. 老代码修改优化建议
如果确认是代码逻辑触发误报,优先调整高频风险逻辑:
- 替换掉反作弊、自更新模块中用到的未公开Windows API、内存注入、系统API挂钩等实现,改用微软官方推荐的标准实现方案
- 尽可能使用新版本的编译器重新编译整个项目,老版本编译器生成的二进制结构本身就会被很多杀软的特征库标记为高风险
内容的提问来源于stack exchange,提问作者Shark44
相关产品推荐
相关产品推荐

