序言

掐指一算, 从2000年高考结束有了第一台电脑, 我接触计算机已经23年了. 大概前1/3的时间在用Windows (我用过的最后一台Windows是Windows 7), 后面2/3的时间都在用macOS, macOS基本上没什么流氓软件. 所以, 也十多年没用过Windows了, 对Windows的新东西有些生疏 (可怜我当年还是微软的MVP, 当年在微软实习的时候每天打印MSDN背Windows API, 在同济还教了好几年的《Windows程序设计》. 感觉有点对不起微软). 谦谦的笔记本是微软的Surface, 因为我一直给他用普通账户登陆, 又加了家长控制. 所以3-5年了, 一直没有流氓软件. 今年中给我父亲买了台Windows笔记本电脑, 结果忘了跟他说日常用普通用户登陆, 不要用管理员. 结果, 他一直用管理员登陆, 据说借给别的小朋友用了一次, 结果就莫名其妙装了一堆流氓软件. 各种弹窗, 各种自动安装, 各种为你好帮你扫描. 删也删不掉. 我远程指导他删除了一次, 但是删除了又回来了, 一般人真很难删掉.

最近疫情不那么紧张了, 我父母又来了新西兰, 也把他的电脑顺便拿过来, 他希望我帮他重装系统. 但是我还是觉得能不重装就别重装, 我想把流氓软件都卸载了, 系统就正常了. 顺便我也看看流氓软件的招式. 涨涨见识. 毕竟好多年没用Windows了. 接下来就是我与流氓软件的斗争史.

卸载的套路

首先想到的当然是通过Windows的控制面板(或者新的设置)的删除软件功能, 来正当卸载. 但是你是正人君子, 流氓软件可不正人君子. 我慢慢发现了卸载里面的套路. 比较基础的就是卸载按钮藏的很深, 让你不仔细根本发现不了, 更有甚者, 把卸载按钮藏在一堆安装按钮之间, 你一不留神点错了, 不但没卸载, 还安装了更多的流氓软件. 这个是基本套路, 网上还有篇文章, 说外国网友被流氓软件骚扰的例子:

笑哭了!日本网友求助如何卸载360浏览器,过程堪比“ 拆弹 ”...

再无耻一点的就是各种撒泼卖萌. 例如这个:

图 uninstall

图: 这个流氓软件的卸载界面, 你看它多可爱, 你舍得卸载么?

再无耻一点的, 根本没有卸载功能. 你在控制面板里面点卸载, 它直接告诉你不能卸载. 还有的是主程序卸载掉了, 但是还留着一个服务, 不知不觉它又把自己装回来了.

其实这都怪Windows给了开发者太大的权限, 让他们可以自定义安装, 卸载界面. 如果开发者自觉一点, 其实可以造福用户. 但是这个功能被滥用了, 用来套路用户. 如果像macOS一样, 安装就是把程序拖到某个文件夹里, 卸载就是把这个文件夹拖到回收站里, 程序也没权限写这个文件夹之外的东西. 那开发者就没机会套路用户了.

自动启动

这个也是流氓软件常规套路, 开机自动启动. 但是现在Windows做的比较好了, 用户可以很容易的就把自动启动的程序关掉. (在任务管理器里面, 或者设置里面, 具体我就不说了). 但是流氓软件也不是省油的灯, 他们也想到了新的办法. 做成Windows服务, 这样程序依然可以开机启动, 又不在自动启动列表里. 我们看下一项:

Windows服务

服务本来是设计给应该常驻后台, 又不需要跟用户交互的一些程序用的, 譬如网络自动校准时间的程序. 但流氓软件却用它来常驻系统后台. 更有甚者, 有些流氓软件还会把自己的服务名起得跟Windows自带的服务一样, 以便于混淆视听. 或者就起个高深的名字, 吓唬用户, 例如叫: kernel, 叫driver, 叫system之类的. 如果不会看服务程序的数字签名的话, 很容易被蒙骗. 而且服务的另一大问题是它不像其它Windows程序一样有标准的删除方法, 一般用户不知道怎么删除服务 (改注册表或者用sc.exe). 所以, 服务是流氓软件的另一个套路.

更有甚者, 有些流氓软件的服务根本没有实现标准的停止方法. 在服务控制台里面停不掉它. 我第一次清除完了各种流氓软件后, 发现有些软件又回来了, 就是因为服务没删掉.

关于如何删除服务, 可以参考微软的网站:

sc.exe delete

任务计划程序

任务计划程序本来是用来定时在系统里面运行某些特定程序用的, 像Unix / Linux系统里面的cron. 还是挺有用的, 但是流氓软件也会把自己弄成一个任务计划程序. 用它来弹广告, 或者安装自己. 这个一般人想不到, 但是如果想到了, 清除起来还是很容易的. 直接在任务计划程序库中删除就可以了.

浏览器收藏夹和主页

这又是一个老生常谈的问题, IE时代就有的问题. 不知不觉IE首页就被改了. 现在微软的IE完了, 浏览器换成了Chrome内核, 但是问题还是一样的. 流氓软件会把浏览器的收藏夹和主页改成自己的网站. 这个问题也不是很难解决, 但是对于一般用户来说, 还是挺麻烦的.

最简单的更改自然是在你的收藏夹里面加入一大堆假的链接, 告诉你是百度官网, 其实是链接到了不知道什么网站, 然后给你安装更多的流氓软件. 这个直接删除即可.

再那个一点的是直接把浏览器的首页给改了, 你每次打开之后, 就会看到流氓软件的网站. 这个也不难解决, 毕竟是明的, 直接在浏览器的设置里面改回来就可以了. 接下来就有暗的了.

简单一点的, 在桌面上给你建立个快捷方式. 是Edge的图标, 然后你点击的时候, 其实执行的是 "msedge.exe http://liumang.com", 然后就打开了流氓软件的网站. 这个需要重新建立一个新的Edge纯净的快捷方式.

再隐蔽一点的, 会给你装一堆浏览器插件, Edge好像可以用chrome的插件, 这些插件会把浏览器的首页改成流氓软件的网站. 这个就比较难解决了, 你需要把插件都删掉, 然后把浏览器的首页改回来. 估计有些人不知道怎么删插件.

还有隐蔽一点的, 会启动一个后台进程, 然后这个进程在内存里去改浏览器的首页. (金山软件, 就是这个套路, 哎, 难得你还是雷总之前的公司, 没想到这么下作了, 我宁可相信这是山寨的金山软件) 你如果查看edge的设置, 没有任何异常, 但是每次打开edge还是会打开流氓网站, 就是这么来的, 我不知道它用了什么API, 不过既然金山公司都有金山游侠可以改游戏内存, 那改edge的内存改首页也是简单的事情. 这个需要把这个进程杀掉, 然后看看这个进程是怎么启动的, 然后把它连根删掉.

最阴险的, 会使用组策略来安装流氓软件. 如果你打开Edge, 显示“您的浏览器由您的组织管理”, 但是你这台是个人电脑, 并没有登陆公司的账号. 那十有八九就是中招了. 组策略一般是会把一些流氓软件插件添加到允许安装列表里面. 这个需要删除注册表的键. 最简单的做法就是在注册表里面搜索相应的键值, 然后删除.

图 edge

后记

计算机早期发展的时候, 没人知道它后来能发展成人手一台, 算上智能手机手表等, 甚至人手无数台. 所以早期计算机就是在几个大学里面联网, 大家君子之约, 不作恶, 很多安全的东西就像新西兰的门锁, 90%都是防君子不防小人. 但是现在时代变了, 之前的很多所谓的安全机制, 隐私保护都很脆弱. Windows因为其历史原因, 一直在兼容性和向后兼容性上面做文章, 但是这也给了流氓软件可乘之机.

之前我在同济的时候, 一直觉得得给计算机的学生加一门课, 叫《计算机伦理》. 教育学生们不要当黑客, 不要去写病毒, 不要去写流氓软件, 不要去作恶. 但是后来想想, 这个课没人上, 也没人教. 也没人愿意上. 也没人愿意教. 毕竟温饱没解决, 饿着肚子, 老板让你干啥, 你就干啥. 你不干, 别人干了, 你就没饭吃了. 劣币驱逐良币. 所以与流氓软件的斗争, 估计还要长期存在.