深度科普:只看一眼文件管理器里的云盘,它就在运行了,咋做到的

想必大家在日常使用电脑的过程中,一定会遇到某些软件把自己注册到硬盘列表里的情况(我们暂且称之为“虚拟硬盘”)

我在复刻这一功能时,发现了一些不符合直觉的事情,于是写下了这篇文章分享给大家

当你打开文件管理器时,虚拟硬盘已经在运行了

理想情况下,你所看到的云盘图标应该是静态配置,只有你打开文件管理器后,再去点击虚拟硬盘,它才会开始运行

但实际上,只要文件管理器一打开,虚拟硬盘的代码就已经开始执行了

即是不需要用户交互就能运行

注意,这里说的远不只是加载虚拟硬盘的图标或右键菜单那么简单,而是它可以运行任意代码

文件管理器会自动调用虚拟硬盘代码

我在入口代码中加入了一个任务:每隔3秒写一个文件

测试结果证实,只要打开文件管理器,后台任务就会立刻开始执行

那么,如果虚拟硬盘含有恶意代码,它是不是可以调用外部应用,甚至执行更危险的操作?

是的,我示个例

在虚拟硬盘的入口代码中加入:一被调用就打开计算器

打开文件管理器,就自动偷偷打开计算器

也就是说,只要虚拟硬盘愿意,它可以自主联网、打开程序、读写文件等等。

而这一切,只需要你打开一次文件管理器就能完成

右键菜单-扩展菜单是否存在相同问题?

我们写一个自定义菜单来测试一下

同样是纯菜单,没有后台进程

用于测试的菜单

结果如下:

菜单甚至还没显示出来,扩展菜单的内部代码(打开计算器)就已经执行了

扩展菜单内部执行 比打开菜单都快

这意味着什么?

如果一个应用心怀不轨,它甚至不需要申请开机自启,仅通过虚拟硬盘或右键扩展菜单中的任意一种方式,就能让自己在后台持续运行

在此之前,我一直以为它的机制和安卓类似:只是向系统注册一个菜单,只有用户明确选中时才会执行。从测试结果来看,两者的原理完全不同

无论是虚拟硬盘还是右键菜单扩展,它们都可以在用户尚未进行任何交互时就被文件管理器提前加载,其对应的代码也因此获得了执行机会

这也解释了为什么扩展菜单多了后,右键菜单明显卡顿等现象——因为系统并不只是读取一份静态菜单,而是在后台完成了更多工作

好了,本期分享就到这里。如果你喜欢我的文章,别忘了点个赞,你的支持是我保持更新的动力

参考资料

https://learn.microsoft.com/zh-cn/windows/win32/shell/extending-explorer-bumper

更多游戏资讯请关注:电玩帮游戏资讯专区

电玩帮图文攻略 www.vgover.com