最近一段时间,Windows 11多项性能问题引发大量玩家吐槽。而“Windows 健康与优化体验”这项后台服务 whesvc 的出现,更是在网络上掀起了一场不小的风波。一则流传很广的说法声称,该服务每隔15分钟就收集CPU、温度、电池数据并偷偷回传给微软,一时间“系统内置间谍软件”的说法迅速传开。
为了验证传言真假,逆向工程师 Xusheng Li 对这项服务进行了一次完整深入的反向剖析。最终得出的结论十分清晰:它本质是一款性能故障排查诊断工具,并非大家口中的间谍程序。不过在拆解过程中,工程师也发现这套系统底层实现远比表面看上去复杂,甚至拥有超出诊断工作所需的强大权限。
早在这场舆论风波刚开始发酵时,微软工程师 Scott Hanselman 就曾经做出解释。这项服务的初衷,并不是不间断采集硬件数据上报云端。它只会在系统检测到卡顿、响应迟缓等异常现象的时候,才会抓取对应的性能诊断日志。并且跟踪文件只会保存在你的本地电脑,如果你想要提交给微软,必须手动通过反馈中心主动发送。
这份逆向报告进一步印证了微软官方给出的说法。
whesvc 本体程序代码体量并不大,真正承担诊断逻辑的核心文件是 windiag.dll。令人意外的是,这个动态库当中内置了完整的 Lua 5.4.7 脚本运行引擎。微软随服务附带了 whesvc_assets.dll,里面打包存放着84条预先编译完成的Lua脚本,每一条脚本分别负责一种不同类型的故障诊断场景。
脚本引擎开放了多达79个原生调用函数,这也正是争议的来源。从权限清单来看,脚本具备读写修改注册表、执行文件操作、创建进程、查询系统管理信息、抓取系统性能跟踪日志、读取电源与温度数据、下载调试符号包、生成诊断日志cab压缩包,甚至发起网络HTTP请求等一系列能力。同时还有FFI外部接口,可以直接调用其他系统DLL文件。
单看这份权限列表,很容易让人感到不安。这套引擎所拥有的操作权限,远远超出一项简单性能排查工具的最低需要。不过能力强不等于实际就会滥用权限。工程师逐一核查了微软自带的全部脚本,发现所有功能都被限定在系统故障排查的范畴之内,并没有出现随意篡改文件、扫描用户隐私内容的行为。
脚本对注册表的读写,大多只是用来保存服务自身跨重启所需的运行计数器。其中侵入性最强的一项操作,就是可以在特定环境变量开启的前提下,调整驱动验证程序的配置参数,用来监控内存异常。其余大部分任务都十分常见:调用系统自带powercfg.exe生成睡眠问题报告、运行性能记录工具合并跟踪日志等等。
整套脚本覆盖了非常全面的系统问题场景:程序无响应时抓取日志、监测输入延迟和画面卡顿、找出启动缓慢的软件、排查卡死的后台服务;电源模块可以定位高耗电进程、查找阻止电脑进入休眠状态的元凶;内存泄漏检测脚本还会通过多次采样计数、线性回归算法,区分正常内存上涨和真正的内存泄露故障。
至于大家最关心的15分钟上传传闻,真相也已经水落石出。那个每900秒生成一次的硬件摘要JSON文件,只会存储在本地硬盘,不会自动上传到微软服务器。尽管引擎具备发送HTTP请求的底层能力,工程师遍历84条脚本,没有找到任何一段代码会在零售版系统当中主动向外发送数据。脚本当中唯一出现过的网络地址,指向微软公开的调试符号服务器,而这项下载功能在普通正式版Windows当中默认处于关闭状态。
工程师事后坦言,最开始开展逆向工作时,本来已经做好找到可疑行为的心理准备,但全程并没有捕捉到监控截屏、后台隐秘上传这类间谍软件特征。
总结下来,whesvc是一项以最高系统权限运行的通用诊断引擎。微软给它开放了一套上限很高的能力池,但当前预装脚本都只用来处理性能优化任务。
这也就形成了一个很微妙的局面:现阶段它并不是间谍软件,但强大的底层权限,让很多用户对这项服务的未来更新充满顾虑。如果你感兴趣,可以前往作者的个人博客查看完整的技术分析文档。



0条评论