0. 背景
鉴于事情尽量表述得简单点,于是:
- 我在 Windows 上使用 PC 版微信。为啥要这样做呢,因为老板们爱用微信。
- 我经常需要开 Fiddler 抓包。为啥我需要抓包呢,因为我是一个优秀的攻城狮。一个优秀的攻城狮一定要善于抓包。
- 然而 Fiddler 我不是常开的,经常需要的时候开一下,不用了就关闭。为啥我要关闭呢,因为我不是一个优秀的攻城狮,我需要不断地划水。
1. 问题来了
不记得是多久之前,渐渐的,渐渐的,我觉得 Fiddler 有点不太对劲。
按理说,Fiddler 启动后会把自己设置为系统代理。然后随着它的关闭,它会把系统代理还原(或者说,无代理)。
然后……
我却经常看到这样的错误

诶?为啥还有代理服务器。
我去 Internet 选项里看的时候,发现不是浏览器抽风,确实勾选着代理服务器。
于是心想,这 Fiddler 啥时候这么昏了,以前是异常退出的时候代理设置没还原,现在咋正常关闭了还这样。
于是便在 Internet 选项里取消了代理。
但是又不定时会出现错误,还是代理服务器无法连接的错误。
之前呢,我也就是满腹狐疑了,心想着我记得我刚才取消过啊,难道我没有取消过吗?……于是再取消一次。
2. 万万没想到系列
今天下午又遇到这情况了。
然后我觉得应该不是我的问题。虽然我年事已高,但还不至于老年痴呆,这么明目张胆地耍我是万万不能接受的。
于是我祭出了万能的Process Monitor,设置只抓注册表、只抓代理服务器是否启用的键值修改操作(RegSetValue)。
然后发现,嗯,张小龙,你们家微信有病啊。

上图是一系列测试步骤……嗯,第一列是时间,第二列是进程,WeChat.exe很明显是微信,iexplore.exe 是 IE,Fiddler.exe是抓包工具。
然后我们来一次看一下每行代表发生了啥事儿。
- IE 取消了代理(这是我做的)
- Fiddler 启动,设置了代理(自身作为系统代理)
- 微信强势现身,关闭了代理( Fiddler:???)
- Fiddler 重新设置了代理(因为 Fiddler 中出现了黄色条警告,见后面附图,然后点击重新启用代理)
- Fiddler 取消代理(退出)
- 重新启动 Fiddler,设置代理
- 微信 UWP 版(忽略)的代理操作,因在沙盒中,不做分析
- Fiddler 退出,取消代理
- 微信再度登场,启用了代理(我:?????)
- 我:???,转身用 IE 关闭了代理
- 微信再度闪亮登场,启用了代理(我:??????)
- 我:????,转身再度在 IE 中关闭了代理
- 微信 UWP 版(忽略)的代理操作,因在沙盒中,不做分析
- Fiddler 启动,设置代理
- 微信又现身,关闭了代理( Fiddler:???????)
- Fiddler 中再度重新应用代理
- 微信 UWP 版(忽略)的代理操作,因在沙盒中,不做分析
- 关闭 Fiddler,取消代理
- 微信又登场,再度启用代理(我:……)
- 我再用 IE 关闭了代理
当微信变更了代理服务器后,Fiddler 的提示如下。

从以上操作可以看出,每当系统代理修改了,微信总会强势现身,把系统代理恢复为上一次修改前的状态。
这也就是为什么我老觉得有人在偷偷改我的代理设置,但是我万万没想到是微信。
微信,你是不是有病?你说你没事儿老改我们家系统代理设置干哈啊?
3. 然而可能没病
我在群里和一些人说的时候,他们说没发现微信这样。
所以咯,要么微信有病,要么微信歧视我,不然这事儿没法解释。